Back-End/Spring 3

filter 코드 리팩토링 해보기

최근 토비의 스프링 3.1 책을 배우기 시작했다. 김영한 선생님의 강의를 이미 다 들었지만, 뭔가 더 깊게 배우고싶다는 생각이 들었다.  1장 챕터의 내용은 오브젝트와 의존관계로 내가 이해한 바로는 책임, 관심사 분리이다.  해당 부분을 공부하면서 임시로 미리 만든 프로젝트의 필터를 보니 정말 책에서 표현한 대로 난감했다.필터의 역할은 토큰 검증인데 비지니스 로직과, 시큐리티컨텍스트 홀더 저장 로직, 헤더와 토큰 저장 로직등이 들어있었다.이 기회에 배운 내용을 적용해보려한다. 기존 코드@Slf4j@RequiredArgsConstructorpublic class JwtAuthenticationFilter extends OncePerRequestFilter { private final JwtUtils ..

Back-End/Spring 2025.04.07

JWT(Json Web Token)

1. 정의JWT(JSON Web Token) : JSON 기반의 토큰 인증 방식 보안이 필요한 시스템에서 사용자 인증 및 정보를 안전하게 교환하거나세션을 사용하지 않는 무상태(stateless) 인증 시스템 에서 주로 사용 - 별도의 세션 저장소 강제 X   2. 구조JWT는 . 으로 구분된 세가지 부분으로 구성된다. Header.Payload.Verify_Signature(서명) Header 서명 알고리즘 (HMAC SHA256, RSA 등을 사용)토큰의 타입Payload Claim에 대한 property를 key-value 형태로 저장Claim은 일반적으로 사용자 정보 및 토큰에 대한 정보를 포함SignatureHeader와 Payload를 조합한 후 비밀키를 이용해 해싱한 값 해당 서명으로 토큰 위..

Back-End/Spring 2025.03.15

JDBCTemplate

✔️ JdbcTemplateSQL 직접 사용시 JDBCTemplate는 매우 좋다.spring-jdbc 라이브러리에 포함, 별도의 복잡한 설정 없이 바로 사용 가능 반복 문제 해결 템플릿 콜백 패턴 사용개발자는 sql 작성, 전달 파라미터 정의, 응답 값 매핑만 하면 된다. 반복 문제?커넥션 획득statement 를 준비하고 실행결과를 반복하도록 루프 실행커넥션 종료, statement, resultset 종료트랜잭션 다루기 위한 커넥션 동기화예외 발생시 스프링 예외 변환기 실행  단점 : 동적 SQL 해결 어려움  종류JdbcTemplate :  기본이며 순서대로 바인딩  (where name = ?) NamedParameterJdbcTemplate : 이름 지정 바인 (where name = :use..

Back-End/Spring 2025.03.13