인프런 커뮤니티 질문&답변

김민성님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

로그인 처리하기 - 세션 직접 만들기

세션 로직 질문입니다.

작성

·

85

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
세션 생성 로직은 UUID로 랜덤한 값 만들어서 sessionStore.put(sessionId, value);하고 new Cookie(SESSION_COOKIE_NAME, sessionId);해서 mySessionId인 SESSION_COOKIE_NAME과 sessionId를 응답할 때 담아서 보내는 것까지는 이해했는데 조회와 만료하는 로직, findCookie메서드에서 request로 넘어온 쿠키 이름과 cookieName(SESSION_COOKIE_NAME)이 일치하면 findAny()로 반환된 값이 sessionCookie에 담기고 sessionCookie.getValue()로 값을 꺼내서 sessionStore에서 .get()으로 조회하고 .remove()로 삭제하는 로직이 맞는건지 제가 제대로 이해한게 맞는지 궁긍합니다. 항상 친절하게 답변해주셔서 감사합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

김민성님께서 질문하신 세션 생성, 조회 및 만료 로직에 대한 이해가 맞는지 확인하고 싶으신 부분에 대해, 세션과 쿠키의 동작 원리 및 관리에 관련된 기존 답변을 참고하실 수 있는 정보를 제공드리겠습니다.

  • 세션 생성과 관리에 대한 이해는 맞으시며, 세션 ID를 생성하여 세션 저장소에 저장하고 해당 세션 ID를 쿠키에 담아 클라이언트에 전달하는 과정까지 이해하신 것으로 보입니다.
  • 조회 과정에서 request로부터 전달받은 쿠키 중에 세션 ID를 나타내는 특정 쿠키(예: “mySessionId”)를 찾아 해당 쿠키의 값을 이용하여 세션 저장소에서 세션 데이터를 조회하는 로직이 맞습니다.
  • 만료 혹은 삭제 로직에서는 세션 저장소에서 해당 세션 ID에 해당하는 세션 데이터를 .remove() 메소드를 통해 제거함으로써 세션을 만료시키는 방법도 올바릅니다.

세션과 쿠키의 상세한 동작 방식에 대한 추가적인 이해를 돕기 위해 관련된 답변 링크를 추천드립니다:
- “쿠키와 세션”
- “세션의 동작 원리와 코드에 대해서 질문드립니다”
- “세션 형태 관련 질문”

위 링크들은 세션과 쿠키의 관계, 세션 저장 및 관리 방법에 대해 추가적인 정보와 설명을 제공합니다. 질문하신 부분과 관련하여 세션의 생명주기 관리(생성, 조회, 삭제)에 대해 더 깊이 있는 이해를 할 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.