스프링 부트에서 세션은 주로 메모리에 저장합니다.
하지만 이렇게 했을 때 어플리케이션을 재부팅하면 세션이 초기화되는 단점이 있습니다.
이런 문제점을 해결하려면 어플리케이션 간의 세션을 클러스터링 하거나
RDB 또는 메모리 DB에 저장하는 방법이 있습니다.
그중에서 RDB에 저장하는 방법을 포스팅하겠습니다.
앞에서 작성한 OAuth 프로젝트에 이어서 spring-session-jdbc 라이브러리를 추가합니다.
https://tiqndjd12.tistory.com/252
spring-session-jdbc 라이브러리는 앞에서 설명한 스프링 기반 세션 정보를 RDB에 저장하여
세션 정보를 유지할 수 있게 지원합니다.
application.properties 파일에서 spring.session.store-type 속성을 jdbc로 바꾸고
세션 정보를 저장하는 스키마와 테이블 이름을 지정하고 싶다면
spring.session.jdbc.table-name 속성에 "스키마명.테이블명"을 입력하면 됩니다.
spring.session.jdbc.table-name 속성의 디폴트 값은 "기본_스키마명.SPRING_SESSION" 입니다.
어플리케이션을 실행하면 위와 같이 테이블이 생성되었습니다.
그리고 어플리케이션을 재부팅해도 세션이 유지되는 것을 확인할 수 있습니다.
'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 |