-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
세션 형태 관련 질문
22.03.15 20:24 작성 조회수 251
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
직접 만든 세션에서는 세션id로 UUID를 이용해서 랜덤한 값을 만들어서 세션 보관을 하고 이 세션id를 쿠키의 값으로 전달했는데 HttpSession의 경우는 쿠키가 다음과 같다고 하셨습니다. JSESSIONID=5B78E23B513F50164D6FDD8C97B0AD05 그럼 5B78E23B513F50164D6FDD8C97B0AD05 가 톰캣이 만든 세션id인가요? 다른 글에서 세션들을 보관하는 세션 저장소가 하나 더 있다고 봤는데 위에서 랜덤값인 세션 id가 key 이고 value가 Map(편의상 Map2) 인 Map형태의 세션 저장소가 있고 value인 Map2 또한 세션 저장소로 랜덤한 세션id 로 인증된 특정한 사용자만 사용하는건가요? Map2에서 저희가 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); 등록한게 있는거 같구요. 만약 제가 생각한게 맞다면 굳이 왜 이런 형태를 이용하나요? 직접 만든 Session 처럼 처음부터 랜덤한 값을 세션 키로 이용하면 Map 하나로 해결될것 같아서요.
답변을 작성해보세요.
2
David
2022.03.15
안녕하세요. pj5016님, 공식 서포터즈 David입니다.
잘못 이해하신 부분이 있습니다.
session id를 key로 갖고 session(저장공간)을 value로 갖는 Map이 있습니다.
session id는 tomcat에서 생성합니다.
굳이 표현해보자면
1234, Map<String, Object>
5678, Map<String, Object>
... 이런식으로 관리됩니다.
session id인 1234를 Map에서 가져오면 1234의 value인 Map이 나올테죠. 이런방식으로 사용자별 세션을 관리합니다.
1234의 value인 Map을 들여다보면 Key:SessionConst.LOGIN_MEMBER, Value:loginMember가 들어있을 것입니다.
감사합니다.
답변 1