쿠키(cookie) 세션(session) 토큰(token)(JWT) 그리고 캐시(cache)
2021. 10. 15. 13:18
CS
쿠키, 세션, 캐시, 그리고 토큰에 대해 알아보기 전에 우선 이것들이 왜 필요한지부터 알아보자. 📖 HTTP 프로토콜의 특징 Connectionless(비연결지향) : 클라이언트가 서버에게 요청을 한 후 그에 맞는 응답을 받으면 그 연결을 끊는 특징이다. HTTP는 먼저 클라이언트가 요청을 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 응답을 보내고 접속을 끊는 특성이 있다. Stateless(상태 정보 유지 X) : 연결을 끊는 순간 통신이 끝나며 상태 정보는 유지하지 않는 특징 비연결 지향의 특성 때문에 계속해서 통신 연결을 유지하지 않아 리소스 낭비가 줄어드는 장점(특히 불특정 다수를 대상으로 할 때)이 있는 동시에 통신할 때마다 새로 커넥션을 열기 때문에 클라이언트는 인증을 계속해야 하는 단점..
로그인 API 구축 중 정지된 회원 Validation( == 과 equals 의 차이) 이슈 해결
2021. 10. 14. 21:28
YouTube Project 트러블슈팅
🚨 이슈 발생 로그인 API를 구축 중에 정지된 유저를 걸러주는 의미적 Validation을 Provider에서 처리하는 중에 분명 Validation처리를 해주었지만 정상 작동하지 않는 이슈를 겪었다. 다음 코드가 Validation이 정상 작동하지 않은 코드이다. // 정지된 유저 validation 처리 if(checkStatus(postLoginReq.getId()) == "Ban"){ throw new BaseException(POST_USERS_DISABLED_USER); } 아래 코드는 해당 BaseException(POST_USERS_DISABLED_USER)이다. POST_USERS_DISABLED_USER(false,2011,"정지된 유저입니다."), 👌 이슈 해결 뭐가 문제인지 몰라 ..
JDK 11에서 java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 에러
2021. 10. 14. 16:47
YouTube Project 트러블슈팅
🚨 에러 발생 로그인 API에서 JWT를 이용해서 회원 인증을 구현하는 중에 다음과 같은 에러와 마주쳤다. javax.xml.bind.DatatypeConverter 를 찾지 못하면서 발생한 에러였다. JDK 11 이 되면서 Java EE와 CORBA Module이 제거되었다고 한다.(http://openjdk.java.net/jeps/320) base64Codec.java 파일이 javax.xml.bind.DatatypeConverter을 리턴하고 있었는데 여기서 에러가 발생한 것이었다. 👌 에러 해결 필자의 경우 스프링 부트를 사용 중에 있기 때문에 implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.2' 다음..
형식적 Validation(회원가입 API 작성 시 POST에서 null과 공백의 차이를 인지하지 못하는 이슈)
2021. 10. 13. 14:30
YouTube Project 트러블슈팅
🚨 이슈 발생 /** * 회원가입 API * [POST] /users * @return BaseResponse */ @ResponseBody @PostMapping("") public BaseResponse createUser(@RequestBody TestPostUserReq testpostUserReq) { //닉네임 입력을 안했을 때 if(testpostUserReq.getUserNickname() == null){ return new BaseResponse(POST_USERS_EMPTY_NICKNAME); } try{ TestPostUserRes postUserRes = userService.createUser(testpostUserReq); return new BaseResponse(postUs..
YouTube 클론 프로젝트 - API 리스트업 및 기능 구현 (Spring Boot)
2021. 10. 11. 18:18
YouTube Clone Project
📌 API란? API에 관해서는 별개의 포스트에 기록해 놓았다. https://jminie.tistory.com/120?category=1008953 API란? (SOAP API, REST API) 📌 API란? 우리가 레스토랑에 있다고 가정해보자. 우리는 점원이 가져다준 메뉴판을 보면서 음식을 고르면, 점원이 주문을 받아 요리사에 요청을 한다. 그러면 요리사는 음식을 만들어 점원에게 jminie.tistory.com 📗 REST API와 HTTP 메서드 REST API는 HTTP 메서드를 사용한다. 메서드(method) : 동사 의미. - ex) GET, POST URI: 행위의 목적 -ex) /users/userId/springboot 메서드의 종류 GET : 자료를 요청할 때 사용 POST : 자료..