제목은 Spring Session 도입기로 하겠습니다. 근데 이제 Redis를 곁들인
백엔드
제목은 Spring Session 도입기로 하겠습니다. 근데 이제 Redis를 곁들인
두줄요약
분산 환경의 회원 서비스에서 세션 저장소를 Aerospike에서 Redis로 교체하며 Spring Session을 도입한 과정을 정리했습니다. 모듈별 ID 생성과 직접 호출 문제를 캐시, 헤더 전달, Nginx 설정으로 개선했습니다.
문제 상황
- 분산 환경의 회원 서비스에서 세션 동기화와 저장소 교체 필요성 대두
- 기존 Aerospike 기반 세션 저장 방식의 유지보수 부담과 모듈별 ID Generator 분산 문제
- 세션 서버 직접 호출 서비스 존재로 인한 변경 전파 위험
원인 분석
- 모듈마다 동일한 세션 아이디 생성 로직을 보유해 재배포 범위 확대
- 세션 조회 시마다 네트워크 I/O 발생으로 응답 비용 증가
- 쿠키 기반 세션 전달만으로는 서버 간 요청과 다른 도메인 대응에 제약
해결 방법
- 세션 저장소를 Aerospike에서 Redis로 전환하고 Spring Session 도입
- 세션 아이디 발급을 단일 모듈로 집중하고 Redis로 세션 정보 관리
- Look-aside 캐시 적용과 헤더 기반 세션 아이디 전달로 성능과 유연성 개선
- Nginx에서 기존 엔드포인트 요청을 가로채어 헤더로 세션 아이디 전달
