본문 바로가기

spring boot12

로그인과 관련된 용어 정리 | 쿠키 | 세션 | 토큰(JWT) | stateless | 인증 | 인가 | Access token | Refresh Token 팀플 중 팀원이 로그인 기능을 구현하는 과정에서 "세션 방법이 좋을까요? JWT방식이 좋을까요?"라고 물어본 적이 있었습니다.나름 해당 개념들을 알고 있다고 생각했었는데 막상 들어오는 질문에 "요즘 JWT 방식이 많이 쓰이니까 JWT가 더 좋을 거 같아요."라고 명확한 근거 없이 대답할 수밖에 없었습니다. 과거의 배웠던 기억은 전부 사라지고대강 JWT는 토큰방식이라 따로 저장소가 필요 없어 세션방식보다 더 좋고 요즘에는 JWT방식을 선호한다는 기억만이 남아있기 때문에 제대로 된 설명을 할 수 없었습니다. 이를 계기로 항상 헷갈렸던 로그인과 관련된 다양한 용어들에 대해 정리하는 과정을 담아보기로 결정하였습니다.0. 사전 지식일반적으로 통신의 주체는 클라이언트와 서버이며 이 둘은 HTTP 프로토콜을 통해 데.. 2024. 5. 7.
Unable to use auto-configured MockRestServiceServer since MockServerRestTemplateCustomizer has been bound to more than one RestTemplate | RestTemplate 테스트 에러 MockRestServiceServer를 이용하여 RestTemplate 테스트를 진행하던 도중 만나게 된 에러입니다. MockRestServiceServer는 우리에게 테스트를 진행할 수 있도록 가상의 서버를 제공해 줍니다. 하지만 해당 서버는 하나의 RestTemplate만을 바인딩될 수 있으며 하나 이상일 경우 위와 같은 에러가 발생하게 됩니다. 아래는 에러 발생지입니다. @AutoConfiguration @ConditionalOnProperty(prefix = "spring.test.webclient.mockrestserviceserver", name = "enabled") public class MockRestServiceServerAutoConfiguration { //... 생략 ... //.. 2024. 3. 26.
JWT는 어떻게 인증 과정을 처리할 수 있을까? 로그인 기능을 구현하기 위해 대게 JWT 방식을 많이 사용합니다. (특히 spring boot와 react인 경우) 저 또한 JWT를 이용하며 로그인 구현을 하던 도중에 어떻게 안에 내용물을 디코딩(jwt.io)할 수 있는 토큰이 인증 과정을 처리할 수 있는지 궁금증을 가지게 되었습니다. 따라서 이러한 JWT 인증 과정에 대해 알아보고자 합니다. 목차 JWT 란 JWT 동작 과정 JWT는 어떻게 인증 과정을 처리하는가? JWT 문제점 1. JWT 란 JWT는 JSON Web Token의 약자로, 인터넷상에서 정보를 안전하게 전달하기 위한 표준 방법 중 하나입니다. JWT는 JSON으로 인코딩 된 데이터로 구성되어 있으며, 두 개체 사이에서 컴팩트하게 전달할 수 있는 자가 수신된 정보를 검증할 수 있습니다.. 2024. 3. 24.
spring boot의 test db환경에 testcontainers 적용 [삽질 후기] 본 글은 정확하지 않을 수 있습니다. 참고용으로만 봐주시면 감사하겠습니다. TestContainers 쓰게 된 이유 기존 로컬 테스트 db를 사용하였을 때 단점이 있다. CIDI환경에서 테스트 db를 따로 만들어줘야 한다. 빌드를 수행할 때, 테스트 DB가 연결되어 있지 않으면 빌드가 실패한다. 만약 팀원들과 로컬 db설정이 다르다면, 테스트 결과가 서로 일치하지 않을 수 있다. 그래서 해결 방안으로 처음 나온 게 인 메모리 db이다. 인메모리 db의 장점 테스트 속도가 빠르다 설정이 간단하다. (따로 db구축 안 해줘도 됨) 각 팀원의 로컬에서도 같은 결과가 나온다. cicd환경에서 따로 db 구축 안 해줘도 된다. 인메모리 db의 단점(h2) 실제 운영 db랑 다른 결과를 도출할 수 있다. 실제 운영.. 2023. 3. 17.
반응형