• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

안녕하세요. 스프링 로그인 유지 관련 질문입니다.

22.03.15 19:06 작성 조회수 238

0

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

[질문 내용]
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요.
 
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 들은 학생입니다.
 
이번에 스프링 인터셉터 - 인증 체크를 듣고 개발을 해보았는데요.

김영한 강사님께서 만드신 로그인 세션 기능은 유저 한명일 때 잘 작동하는 것은 알 수 있는데, 궁금한 점은 유저가 여러명일 때는 작동이 잘되는가 라는 점입니다.

세션은 서버의 메모리상에서 공유되는데
if( session == null || session.getAttrivute(SessionConst.LOGIN_MEMBER) == null ) ....
위와 같은 코드 부분에서 session이 있다고 하더라도 만약 다른 유저가 이미 로그인 되어 있다면(로그인을 했다면), session과 세션의 SessionConst.LOGIN_MEMBER 키에 대한 값은 이미 존재합니다.
따라서 저는 이번에 예시로 작성해주신 로그인 세션 유지 기능이 유저 한명이 일 때만 작동한다고 생각합니다.
아직 제가 많이 부족하고 많이 모자랍니다. 나쁜 의도로 질문한 것이 아니라 너무 궁금하고 아무리 찾아봐도 모두 강사님처럼 코딩을 하셔서 질문남겨봅니다.
 
항사 강사님께서 쉽고 친절하게 설명해주신 덕분에 쉽게쉽게 스프링을 이해하고 잘 배워갑니다. 감사합니다.

답변 1

답변을 작성해보세요.

2

David님의 프로필

David

2022.03.15

안녕하세요. 이현성님, 공식 서포터즈 David입니다.

사용자별로 서로 다른 세션을 제공하기 위해 세션들만 관리하는 저장공간이 별도로 있습니다.

sessionId를 key로, session을 value로 하는 저장공간입니다.

sessionId에 따라 별도의 세션이 제공되므로 유저가 여러명이더라도 세션을 구분하여 제공 가능합니다.

감사합니다.

David님의 프로필

David

2022.03.17

해당 부분은 tomcat의 session manager 관련 코드에서 확인한 내용입니다.

이현성님의 프로필

이현성

질문자

2022.03.17

감사합니다. David님