Server

[Session] Spring Boot에서의 세션 관리

Raconer 2024. 2. 28. 00:39
728x90

🧭 서버에서의 세션 관리 역할

Spring Boot는 기본적으로 아래와 같은 세션 흐름을 관리합니다.

  1. 세션 생성

    • 클라이언트 요청 시 세션이 없으면 서버가 새로운 세션 생성
    • 응답에 Set-Cookie: JSESSIONID=... 헤더로 세션 ID를 전달
  2. 세션 이용

    • 이후 요청 시 JSESSIONID 쿠키를 기반으로 세션을 조회하여 해당 사용자 정보 접근
  3. 세션 삭제

    • 일정 시간 동안 요청이 없거나, 명시적으로 로그아웃하면 세션 무효화

모든 요청에 대해 서버는 쿠키에서 JSESSIONID를 파싱하여 처리합니다.


⚙️ 세션 관리를 쉽게 해주는 도구: HttpSession

✔️ 특징

  • Java Servlet API에서 제공하는 세션 인터페이스
  • Spring Boot에서도 그대로 사용 가능
  • 세션 ID는 UUID로 생성되며, JSESSIONID라는 이름으로 쿠키 설정

💡 코드 예시

@GetMapping("/hello")
public String hello(HttpSession session) {
    // 세션에 데이터 저장
    session.setAttribute("user", "user1");

    // 세션에서 데이터 조회
    String username = (String) session.getAttribute("user");

    // 세션에서 데이터 제거
    session.removeAttribute("user");

    return "hello";
}

HttpSession 객체는 컨트롤러 메서드 파라미터에 바로 주입할 수 있으며, Spring Boot가 내부적으로 처리해줍니다.

728x90

'Server' 카테고리의 다른 글

[Redis] Pub/Sub  (0) 2024.03.01
[Caching] 캐싱의 원리 와 목적  (0) 2024.02.29
Session 이란?  (0) 2024.02.24
동시성 제어  (0) 2024.02.18
[낙관적락/Optimistic Lock]_기본 개념 (비관적 락/PESSIMISTIC 짧은 설명 포함)  (0) 2024.02.15