DOing
[Spring Boot] 세션저장소 본문
세션저장소에 대해 3가지방법 중 하나를 선택할 수 있다.
1. 톰캣 세션 사용하기
: 디폴트로 선택되는 방식
내장 톰캣(WAS)에 세션을 저장하게 되면 애플리케이션 실행시 항상 초기화가된다.
또 2대 이상의 WAS에서 서비스하고 있다면 톰캣들 간의 세션 동기화를 위한 추가설정이 필요하다.
2. MySQL과 같은 데이터베이스를 세션저장소로 사용하기
: 여러 WAS간의 공용 세션을 사용할 수 있는 가장 쉬운 방법
설정이 간단하지만 결국 로그인 요청마다 DB IO가 발생하여 성능상 이슈가 발생할 수 있다.
보통 로그인 요청이 많이 없는 백오피스, 사내시스템 용도에서 사용한다.
3. Redis와 같은 메모리 DB를 세션저장소로 사용하기
: B2C 서비스에서 가장 많이 사용하는 방식
실제 서비스가 사용되기 위해서는 내장 Redis와 같은 방식이 아닌 외부 메모리 서버가 필요하다.
(하지만 Redis와 같은 서비스는 유료이다)
MySQL과 같은 데이터베이스를 세션저장소로 사용하는 방법
[ build.gradle ]
compile('org.springframework.session:spring-session-jdbc')
[ application.properties ]
: 세션저장소를 jdbc로 선택하도록 설정한다.
spring.session.store-type=jdbc
[h2-console에서 확인]
: JPA로 인해 세션테이블이 자동생성되었다.
스프링을 재실행하면 H2도 같이 재시작하게된다.
아직은 H2를 쓰고 있어 세션이 풀리지만 이후에 AWS의 RDS를 사용하게되면 세션이 풀리지않게된다.
'Spring' 카테고리의 다른 글
[Spring Security] DB를 이용하여 로그인 (0) | 2021.04.28 |
---|---|
[Spring Security] 소셜로그인 - 네이버 (0) | 2021.04.11 |
[Spring Security] 소셜 로그인 - 구글 (0) | 2021.04.10 |
[Spring Security] 로그인 성공, 실패 - 2 (0) | 2021.04.04 |
[Spring Security] 로그인 로그아웃 - 1 (0) | 2021.04.04 |