본문 바로가기

dev/스프링

Spring Boot Session Store Type JDBC

스프링 부트에서 세션은 주로 메모리에 저장합니다.

 

하지만 이렇게 했을 때 어플리케이션을 재부팅하면 세션이 초기화되는 단점이 있습니다.

 

이런 문제점을 해결하려면 어플리케이션 간의 세션을 클러스터링 하거나

 

RDB 또는 메모리 DB에 저장하는 방법이 있습니다.

 

그중에서 RDB에 저장하는 방법을 포스팅하겠습니다.

 

spring-session-jdbc 라이브러리 추가

 

앞에서 작성한 OAuth 프로젝트에 이어서 spring-session-jdbc 라이브러리를 추가합니다.

https://tiqndjd12.tistory.com/252

 

Spring Boot OAuth2 로그인

스프링 부트에서 OAuth를 사용하여 소셜 로그인 기능 구현하는 방법입니다. OAuth를 지원하는 서비스가 많은데 그중에서 네이버 로그인을 사용하겠습니다. 먼저 네이버 로그인 서비스가 등록되어

tiqndjd12.tistory.com

 

spring-session-jdbc 라이브러리는 앞에서 설명한 스프링 기반 세션 정보를 RDB에 저장하여

 

세션 정보를 유지할 수 있게 지원합니다.

 

application.properties

 

application.properties 파일에서 spring.session.store-type 속성을 jdbc로 바꾸고

 

세션 정보를 저장하는 스키마와 테이블 이름을 지정하고 싶다면

 

spring.session.jdbc.table-name 속성에 "스키마명.테이블명"을 입력하면 됩니다.

 

spring.session.jdbc.table-name 속성의 디폴트 값은 "기본_스키마명.SPRING_SESSION" 입니다.

 

테이블 생성 확인

 

SPRING_SESSION 테이블

 

SPRING_SESSION_ATTRIBUTES 테이블

 

어플리케이션을 실행하면 위와 같이 테이블이 생성되었습니다.

 

그리고 어플리케이션을 재부팅해도 세션이 유지되는 것을 확인할 수 있습니다.

'dev > 스프링' 카테고리의 다른 글

Spring Boot Session Store Type Redis  (0) 2024.01.25
Spring Boot yml 외부 참조  (0) 2023.12.02
Spring Boot OAuth2 로그인  (0) 2023.11.14
Spring WebSocketSession  (0) 2023.08.22
Spring Boot Jasypt  (0) 2023.08.14