회사에서 일을 하다가 받았던 재미있는 것 하나를 적고자 한다. 유저가 url을 통해서 특정 페이지에 접근한다고 했을 때, GET요청으로 던져진 인자들을 Spring Security의 Filter에서 가져다가 인증 절차를 거치고 뒷 로직을 태우는 작업이었다. 먼저 Filter에서 URL을 통해 들어오는 파라미터들 중 필요한 것을 HttpRequest에서 꺼낸 후, 인증 절차를 진행했다. 토큰 비스무리한 것을 사용하는 거였는데, 이건 그냥 유저 인증 절차랑 같다고 보면 된다. 인증이 통과되면 해당 화면을 조회할 수 있도록 SuccessHandler에서 Redirect 시켜주고, 만약 인증이 실패했다면, 해당 실패 이유에 따른 에러 페이지를 호출해야 했다. 나는 따로 페이지를 여러개 두지 않고 한 페이지에서 ..
1. 마이바티스(Mybatis)를 사용할 때 단일 문자(문자열X) 비교하는 상황에서 발생한 이슈 수행 수행 위와 같은 상황에서 입력받은 데이터가 문자 'A'와 같은지를 비교하고 싶다. 근데 난 평소 문자를 비교하던 코드를 복붙 후 처럼 문자열과 문자로 비교하려고 했다. 근데 사실 이래도 상관이 없지 않나? 했지만 바로 타입 에러 발생. 그 뒤 코드를 로 수정하여 문자열에 equals를 사용해서 비교하여 해결했다. 2. 로컬에선 멀쩡히 돌아가던 코드가 GitLab CI에서 빌드 에러 발생시킴 주로 Collections들을 Import할 때 발생했던 것 같은데, GitLab CI 할 때 빌드 에러가 발생했다. 아직 자세한 원인은 모르지만, 추측으로는 GitLab 서버에 설치되어 있는 Java 버전이 문제이지..
도커란 ? 간단하게, 리눅스 컨테이너를 만들고, 사용할 수 있는 컨테이너화 기술 ! HOST - 운영체제가 설치된 메인 컴퓨터 Container - 각각의 호스트에서 격리된 각각의 실행 환경 운영체제 전체가 설치되어 있는 것이 아님 앱이 실행되는데 필요한 lib, bin 같은 파일만 설치되어 있음 Image - 컨테이너 실행에 필요한 파일과 설정 값 등을 포함하고 있는 것 ubuntu 이미지는 ubuntu를 실행하기 위한 모든 파일을 가지고 있음 MySQL 이미지는 debian을 기반으로 MySQL을 실행하는데 필요한 파일과 실행 명령어, 포트 정보 등을 가지고 있음 Layer? 이미지는 여러개의 읽기 전용 레이어로 구성되고, 파일이 추가되거나 수정되면 새로운 레이어 생성 ubuntu 이미지가 A+B+C..