회원탈퇴 관련 코드를 작성하는 과정에서 해당 회원과 관련된 모든 테이블의 데이터까지 같이 삭제해야 하는 경우가 생겼다 * xml에서 한번에 처리할 수 있는 방법으로 적용 1) xml에 여러 개의 DELETE문을 기입해 주고 2) DELETE문 하나 안에서도 JOIN으로 처리해야 하는 경우 JOIN 된 테이블 데이터를 모두 삭제해 주는 방법을 적용시켜 보았다 user.xml DELETE tpsh, tu FROM tb_user tu LEFT JOIN tb_push_send_hist tpsh ON tu.USER_ID = tpsh.RECV_USER_ID WHERE tu.USER_SN = #{userSn}; DELETE FROM tb_user_noti WHERE USER_SN = #{userSn}; DELETE ..
Windows IntelliJ에서 프로젝트 실행을 시키는데 다음과 같이 java.net.BindException "Address alredy in use: bind" 에러가 발생하여 아래와 같이 해결하였다 1. cmd 실행 (윈도우키 + r) 2. 사용하려는 port의 PID(Process ID) 찾기 $ netstat -ano | find "64932"# 64932는 본인 포트번호 입력 64932 포트를 사용하는 프로세스의 ID(PID)가 17100인 것을 확인 3. PID 종료 $ taskkill /pid 17100 /f * taskkill : 태스크 죽이기, /f : 강제종료 4. 서버 재시작 서버 재시작하면 실행이 잘 됩니다 Linux(Ubuntu) 1. 사용중인 프로세스 아이디(PID) 확인 포..
JWT란? JWT(JSON Web Token)란 인증에 필요한 정보들을 암호화시킨 JSON 토큰 JWT 토큰을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식 JWT 구조 HEADER(헤더), PAYLOAD(내용), SIGNATURE(서명). 을 구분자로 나누어지는 세 가지 문자열의 조합 pom.xml 추가 (JWT, JWK) com.auth0 java-jwt 4.2.2 com.auth0 jwks-rsa 0.21.3 com.nimbusds nimbus-jose-jwt 9.30.1 JWT 생성 및 검증 main : JWT 토큰생성 -> JWT 검증 -> JWK 검증 public static void main(String[] args) throws Exception { // JWT 토큰생성 Strin..
프로젝트를 진행하면서 tomcat 보안취약 검사를 한다고 해서 catalina.jar 파일이 필요한 상황이었다. 외장톰캣의 경우 일반적으로 -> 톰캣설치위치($CATALINA_HOME)/lib/catalina.jar 위치에 파일이 있는데, Spring Boot로 프로젝트를 진행하다 보니 내장톰캣을 사용하게 되어서 catalina.jar 파일을 찾을 수 없었다. ChatGPT에서 찾아본 결과, 내장된 Tomcat 설정에는 독립 실행형 Tomcat 설치에 있는 것처럼 단일 "catalina.jar" 파일이 없을 수 있습니다. 대신 Tomcat의 핵심 구성 요소는 임베디드 시나리오에서 여러 개의 작은 JAR 파일로 분할되는 경우가 많습니다. 임베디드 Tomcat을 사용하는 경우 일반적으로 필요한 Tomcat ..
개발을 하다 보니 url에 쿼리스트링으로 한글이 들어가는 상황이 있어 URL encode를 사용했는데, Base64 url와의 차이점이 갑자기 궁금해져서 찾아보다 아래와 같이 정리해 보았다. URL encode URL 인코딩(퍼센트 인코딩)은 URL의 특수 문자를 인코딩하여 브라우저와 서버에서 특수 문자가 올바르게 해석되도록 하는 데 사용된다. 쿼리 매개변수 및 경로 세그먼트를 포함하여 URL의 다양한 부분을 인코딩하는 데 사용된다. Base64 url Base64 url인코딩은 주로 URL로 데이터를 전송하거나 URL 안전 표현(예: JWT)이 필요한 콘텍스트에 데이터를 저장하는 경우에 바이너리 데이터를 URL 안전 형식으로 인코딩하는 데 사용된다. 차이점 Base64 url 인코딩과 URL 인코딩의 ..
URL 인코딩/디코딩 특수문자, 예약문자, 한글은 URL에 사용할 수 없음 아래 URL에 홍길동은 한글이기 때문에 깨질 수 있어, 홍길동의 값을 인코딩해준다 http://www.test.com/user?name=홍길동 URL인코딩 String s : 인코딩할 url String enc : 인코딩 될 charset (ex. "UTF-8") String encodeStr = URLEncoder.encode(String s, String enc) URL디코딩 String s : 디코딩할 url String enc : 디코딩될 charset (ex. "UTF-8") String decodeStr = URLDecoder.decode(String s, String enc) 예시 import java.io.Unsup..