반응형

2025/04 6

JwtAuthenticationFilter를 이용한 Spring Security JWT 인증 필터 설정 방법

Spring Boot와 Spring Security를 사용하여 JWT 토큰을 서버에서 인증하는 방법에 대해서 알아보도록 하겠습니다.1. JwtAuthenticationFilter 이해하기JwtAuthenticationFilter는 JWT 토큰을 검증하여 사용자를 인증하는 역할을 하는 필터입니다. 이 필터는 모든 요청을 가로채어, 요청 헤더에 JWT가 포함되었는지 확인하고 토큰이 유효한 경우 사용자를 인증합니다.2. JwtAuthenticationFilter 클래스 구성JwtAuthenticationFilter는 다음과 같은 주요 작업을 수행합니다:HTTP 요청에서 JWT 추출JWT 유효성 검증사용자 정보 로드 및 인증 처리3. SecurityConfig 설정Spring Security 설정에서 JwtAu..

IT Tech/Java 2025.04.29

MapStruct를 이용한 DTO 매핑 자동화(feat.관심사의 분리)

개발을 하다 보면 '관심사의 분리(Separation of Concerns)'라는 말을 자주 접하게 됩니다. 한 클래스나 컴포넌트는 가능한 하나의 책임만을 담당하도록 설계하는 것이 중요하다는 개념인데요. 프론트엔드 개발에서도 하나의 컴포넌트가 단 하나의 기능만 담당하도록 권장되고, 백엔드 역시 마찬가지 입니다.백엔드, 특히 JPA를 사용할 때 Entity는 도메인의 핵심 로직과 데이터 영속성 관리라는 역할에만 집중하는 것이 좋습니다. 때문에 실제 데이터를 주고받기 위해서는 Entity가 아닌 별도의 DTO(Data Transfer Object)를 만들어 사용하는 경우가 많습니다.DTO로 변환하는 귀찮음저 역시 처음에는 별도의 Mapper 클래스를 만들어서 Entity를 DTO로 변환하는 정적 메서드를 작..

IT Tech/Java 2025.04.29

귤톡 개발일지 - 채팅방 데이터 설계 변경 이야기

귤톡 개발일지 - 채팅방 데이터 설계 변경 이야기우리 팀은 요즘 귤톡이라는 심플(?)한 채팅 앱을 만들고 있다. 사실 심플하진 않다. 여러가지 생각들이 많지만 일단은 채팅 기능을 모바일로 구현하는 것을 목표로 개발중이다. 처음이라 최대한 간다하게 개발하는 것을 목표로 삼았기 때문에 데이터베이스 구조도 MongoDB를 활용해 아주 단순하게 만들었다.기존에는 Chat이라는 컬렉션을 생성했고, 필드는 다음과 같이 네 개로 구성했다.:idchatroomNamemessagesparticipants특히, participants는 처음에는 단순히 사용자들의 아이디를 문자열 리스트로 저장했다. 이 방식은 개발 초반에는 꽤 효율적이었다.그러나 간단한 구조에도 불고하고 예상치 못한 문제가 발생했다. 바로 채팅방에서 유저가..

<독서노트>실리콘밸리의 팀장들(1)

최악의 관리자였던 저자자신이 만든 주스소프트웨어에서 뼈아픈 경험을 하다.이 전 직장에서 별로 좋지 않았던 상사를 만났던 경험이 있던 저자가 Juice Software라는 회사를 차렸다. 일 전의 경험으로 일과 서로를 사랑하는조직을 만들고 싶었던 저자는 그런 꿈을 가지고 회사를 설립했다.거기서 아주 큰 실수를 하게 된다. 일을 제대로 해내지 못한 직원에게 제대로 된 피드백을 주지 못한 것이다. 제대로 된 피드백을 회사의 대표인 자신이 하지않자 다른 직원들도 그 직원을 대할 때 자신처럼 하는 것을 보게 된다. 그리고 그런 피드백을 받지 못한 직원은 계속해서 좋지 못한 성과를 보이고,결국 회사의 실적도 나빠지게 된다. 그래서 어쩔 수 없이 그 직원에게 해고 통보를 하고, 그 직원으로부터 "왜 진작 말씀하지 않..

일상/리뷰 2025.04.29

React Native Expo에서 JWT 토큰 검증하기

React Native에서 JWT 토큰의 클라이언트 검증 로직 추가하기현재 프로젝트에서는 Redux를 통해 인증 토큰을 관리하고 있으며, 토큰이 없는 경우에만 로그인 화면으로 이동하는 간단한 로직을 사용 중이었습니다.const { token } = useSelector((state: RootState) => state.auth);if (token === null) { return ; }그렇지만 위와 같이 토큰을 검증하면 생기는 문제들이 있습니다.:이전에 로그인을 통해 발급받은 토큰이 아직 저장된 상태라면, 실제 로그인 여부나 토큰의 유효성에 상관없이 로그인 화면으로 이동하지 않고 메인 화면을 그대로 보여주게 됩니다.이로 인해서 개발을 하고 있는 팀원들이 지금 로그인 상태인지 확인이 제대로 안돼서 ..

IT Tech/React 2025.04.29

securityFilterChain 설정

스프링 부트 Security 설정법스프링 부트의 Security 설정에 대해서 알아보자.나도 정확하겐 모른다. 그냥 내가 하고 있는 설정에 대해서 알아보자!{: .prompt-tip }먼저 security config의 security filter chain 코드입니다. 개발을 처음 시작했을때 고생한 결과로 얻은 이 필터체인 코드로 인해서 지금은프로젝트의 시작을 꽤 빠르게 할 수 있지만, 처음 security config를 작성했을 당시에는 스프링 부트의 버전이 무엇인지, Spring Security 의 버전이무엇인지 잘 몰라 그냥 최신 버전으로 생성을 했지만, 당시에 스프링 부트 3버전 이후, 그리고 그에따른 스프링 시큐리티 6에 대한 설정 코드를공유가 잘 되지 않고, 옛날 버전으로 세팅하면서 이해도 ..

IT Tech/Java 2025.04.29
728x90
반응형