본문 바로가기

전체 글

(47)
VirtualBox 이용해 Ubuntu 20.04 LTS 환경에 서버 구축 한 업체에서 서버 이전 요청이 들어왔다. 현재 새로운 서버에는 APM(Apache + PHP + MariaDB)이 설치된 상태이고 JDK, Tomcat 등은 따로 설치해야 하는 상황이다. 추가적으로 DB와 우리 쪽 소스도 옮겨야 하는 상황인데 문제는 이러한 작업을 내가 해본 적이 없다는 것이다. 실제 구축에 앞서서 윈도우 환경에서 가상 머신을 통해 리눅스 서버를 구축하는 방법이 있다고 해서 해당 방법을 써보려고 한다. 과정 중에 겪는 시행착오들을 여기에 기록하고자 한다. 1. VirtualBox 및 Ubuntu 설치VirtualBox를 이용해 Ubuntu를 설치하는 방법 나같은 경우에 구글링도 해보고 GPT 선생께도 물어봤는데 유튜브가 가장 직관적이어서 위의 영상을 보고 설치를 했다. 다른 자료들도 아마..
인코딩 설정이 달라 한글 문자열이 깨지는 현상 개선 아래는 GPT 선생의 도움을 받아 임시방편으로 소스 상에서 디코딩하여 값을 넘길 때 만들었던 메소드이다. 아까워서 버리지 않고 여기에 남긴다. // DB에 전송되는 파라미터 ISO-8859-1 문자 집합으로 변환 public static Object convertToISO88591(Object obj) throws UnsupportedEncodingException { // 넘어온 객체에 선언된 필드부를 배열로 정렬 Field[] fields = obj.getClass().getDeclaredFields(); // 각 필드에 접근해서 저장된 값을 변환 for (Field field : fields) { if (field.getType() == S..
지정된 날짜 이후로 팝업을 해제하는 기능 구현 익일 00시부터 팝업을 해제해달라는 요청을 받았다. JavaScript 단에서 setTimeout()을 통해 처리하면 되겠다는 생각이 들었다. 하지만 setTimeout()을 사용하면 설정한 시간이 지난 후에 팝업이 닫히기는 하지만 새로고침을 할 시에는 다시 팝업이 띄워진다는 문제가 있었다. 그도 그럴 것이 현재 팝업창이 동적으로 구현된 것이 아니라 jsp단에 div 태그로 구성이 되어 있었기 때문이다. 따라서 해당 팝업창을 지정된 날짜부터 안 보이게 하려면 해당 날짜에 주석을 하는 것과 같은 기능을 구현해야 했다. 나는 계속 앞단에서의 작업이니까 JavaScript로 구현하면 되겠다는 생각에 사로잡혀서 그쪽으로만 방법을 강구하고 있었다. 그러다가 옆 자리 슨배임께서 비슷한 작업을 이전에 한 적이 있다면..
@Scheduled 활용하여 미출퇴근 알림톡 구현 스프링의 @Scheduled를 활용하여 카카오 알림톡으로 미출퇴근 알림을 보내는 기능을 구현했다. 출근, 퇴근, 외출, 복귀 알림 기능은 슨배임이 진행하셨고, 기본적인 세팅 또한 맡아서 해주셨다. 나는 9시부터 10시까지 15분 간격으로 미출근자에게 출근 권고 알림을 보내는 기능과 17시부터 20시까지 15분 간격으로 미퇴근자에게 퇴근 권고 알림을 보내는 기능을 맡았다. 시간 주기는 cron 표현법을 통해 설정했다. 초          분          시          일          월          요일          년(생략 가능)0~59      0~59     0~23      1~31      1~12     0~6* : 모든 값 (매일, 매주 등)? : 어떤 값이든 가능- : 범..
가비아 SSL 인증서 설치하기 SSL 인증서를 적용하는 방법을 알아보자. 우선, SSL 인증서를 구입해야한다. SSL 인증서를 구입했다면 아래의 방법을 따라해보자. 1. CSR 및 개인키 생성 (Apache 기준)CSR(Certificate Signing Request)이란 인증서 서명 요청을 의미하며, 인증서 발급을 위한 정보(도메인, 회사명, 담당자 등)를 담고 있는 데이터이다.CSR 생성은 서버 호스팅을 통해 하는 방법과 사용하는 서버에서 직접 생성하는 방법이 있다.전자의 경우, 서버 호스팅을 통해 CSR을 생성하고 이를 통해 개인키를 발급받는다.후자(Apache)의 경우, OpenSSL과 mod_ssl이 있다면opensslgenrsa -des3 -out 개인키 파일 2048ex) openssl genrsa -des3 -out ..
MSSQL 함수 톺아보기(getdate(), dateadd(), convert(), LEFT()) 1. getdate() 현재 날짜를 구하는 함수이다. '2024-04-02 19:09:26' 형식으로 표현된다. 2. dateadd(interval, number, date) date 타입에 연도나 월, 일을 추가하는 함수이다. year, yyyy, yy = Year quarter, qq, q = Quarter month, mm, m = month dayofyear, dy, y = Day of the year day, dd, d = Day week, ww, wk = Week weekday, dw, w = Weekday hour, hh = hour minute, mi, n = Minute second, ss, s = Second millisecond, ms = Millisecond ex) dateadd(y..
웹 취약점 조치 방안 1. 시스템 관리 취약점 - 홈페이지 세션 쿠키 설정 시 HttpOnly 설정을 누락한 경우 나의 경우에는 JSESSIONID에 HttpOnly 설정이 누락됐었다. JSESSIONID는 톰캣에서 세션을 유지하기 위해 브라우저에 설정하는 키이다. HttpOnly는 클라이언트에서 쿠키 요청을 했을 때 이에 대한 응답여부를 설정하는 옵션이다. HttpOnly를 설정하면 클라이언트에서 document.cookie로 브라우저의 쿠키에 접근을 하는 것을 막을 수 있다. 최신 버전의 톰캣일 경우에 자동으로 설정이 되어있지만 구 버전을 사용하는 경우에는 직접 설정을 해줘야한다. 톰캣 6 버전 이상인 경우, context.xml에서 context 태크에 useHttpOnly="true"를 추가하면 된다. 적용이 됐는지 ..
대박 에러 해결(하는 거 구경한) 썰 최근 새벽 3시에 퇴근하는 진귀한 경험을 했다. 내가 맡은 유지보수 프로젝트 중에 하나가 로컬이 안 돌아간 지 거의 6개월이 다 되어가는 레거시 프로젝트였다. 입사 후에 인수인계를 받고 틈이 날 때마다 서버를 살려보려고 했지만 안돼서 반쯤 포기하고 업무를 하고 있었다. 해당 프로젝트는 대부분 jsp단에서 처리하면 끝나는 작업들이 많아서 거의 운영에서 작업을 하고 반영을 하는 식으로 진행하고 있었다. 그러던 중에 메인화면에서 게시판 미리보기 기능이 안된다는 연락을 받아서 해당 기능에 대해서 알아보았다. 메인 페이지의 service 단에서 뿌려주는 값을 확인하기 위해서는 디버깅을 해봐야 하는데 로컬 서버가 작동을 안 하니 운영에서 service 페이지만 살짝 바꿔서 달라지는 게 있는지 보려고 했다. 운영은 ..