Spring/응용 3

Spring 로그 레벨(Log Level)

로그 레벨(Log Level)이란?로그 레벨은 로그 메시지의 중요도 또는 심각도를 나타내는 분류 기준로그 레벨을 설정하면 원하는 수준의 로그만 출력하거나 저장할 수 있다.로그 레벨 종류 레벨 설명 사용 예시 TRACE- 가장 낮은 수준의 로그로, 모든 내부 동작 정보를 출력 - 성능 저하가 발생할 수 있어 운영 환경에서는 비추천메소드 진입/종료, 루프 내부 처리 등DEBUG- 개발 중에 사용하는 대표적인 로그 레벨 - 흐름 확인, 조건 분기, 주요 변수 값 등을 기록할 때 사용설정 값 확인, 흐름 제어 상태, 내부 변수 값 등INFO- 서비스 상태 변화나 사용자가 이해해도 되는 수준의 메시지 - 운영 환경에서 기본적으로 켜져 있는 경우가 많음서버 시작, 요청 수신, 완료 메시지 등WARN- 심각하지는..

Spring/응용 2025.06.18

[코드 개선 과제] Interceptor vs AOP, 어떤 방식이 더 적합할까?

이번 코드 개선 과제에서"어드민 사용자만 접근할 수 있는 특정 API에 접근할 때마다 접근 로그를 기록해야 한다"는 요구사항이 주어졌다. 구현 가능 방식은 두가지인데 Interceptor AOP(Aspect-Oriented Programming)두 방식 모두 공통 관심사를 분리할 수 있는 기술이지만, 적용 범위와 방식에는 명확한 차이가 있다. 두 기술 중 어떤 방식이 이번 과제 더 적합한지 분석하여 정리해보고자 한다. 참고: https://gajicoding.tistory.com/374 Interceptor vs AOP(Aspect Oriented Programming)Spring에서는 공통 기능을 모듈화하기 위한 여러 방법을 제공한다.그 중 많이 사용되는 두 가지가 바로 Interceptor와 AOP..

Spring/응용 2025.06.11

Spring Boot 프로젝트에서 Redis 연동 하기

1. 왜 Redis를 도입했는가?JWT 로그아웃 기능을 구현하기 위해 Redis를 도입하게 됐다. JWT는 기본적으로 서버 상태를 저장하지 않는 Stateless 방식이기 때문에, 발급된 토큰을 서버에서 직접 "무효화"하는 것이 어렵다. 이로 인해 사용자가 로그아웃을 해도 기존 토큰은 만료되기 전까지 유효하게 동작한다. 이를 해결하기 위해 로그아웃 시 사용한 JWT를 Redis에 저장하고,이후 요청마다 해당 토큰이 Redis에 존재하는지를 확인하는 방식으로 블랙리스트를 관리했다. * 블랙리스트 관리에 Redis 를 사용한 이유 In-memory 기반으로 빠르게 블랙리스트 조회 가능TTL(Time To Live) 기능을 활용해 JWT 만료 시점과 동일하게 자동 제거 가능간단한 Key-Value 저장 구조..

Spring/응용 2025.06.04