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

우디님의 프로필 이미지
우디

작성한 질문수

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

로그인 처리하기 - 서블릿 HTTP 세션1

session이 null이 될 수 있나요

작성

·

2.6K

0

위에서 로그인이 된 상태면 세션 값이 있을 텐데 null 체크를 왜 하는건가요? (제 생각에는 세션 시간이 만료되면 저렇게 구현 할 수 있을거 같긴해요. 이 강의에서는 그런 코드는 없구요)

 

답변 2

3

제 생각에는 원질문자님이 댓글달아주신 것처럼 차후 기능 확장될 때를 고려해서 null체크를 추가하신 것 같습니다.

당장은 로그인 상태에서 세션이 없는 경우가 없지만, 나중에 시간이 지나서 만료되는 기능을 추가하면 null값이 반환될 수 있으니까요

실제 개발환경에서도 지금 당장은 문제가 되지 않더라도 시간이 지나 기능을 확장할 때 문제가 될 수 있는 부분에 대해서는 미리 체크하고 넘어가는 느낌으로 이해하시면 될 것 같습니다.

0

안녕하세요, 우디 님. 공식 서포터즈 codesweaver 입니다.
.

로그아웃의 경우 1) 사용자의 세션을 삭제하고, 2) 화면을 루트로 포워딩하는 작업을 진행합니다.

 

1) 에서 만약 사용자가 세션이 없을 경우 2)만 진행하면 됩니다. 그래서 getSession()의 파라미터로 false를 전달한 것입니다. 그런데 getSession(false);와 같이 호출하면, 이 함수는 null을 반환할 수 있기에 이에 대한 처리 코드를 추가한것입니다.

.

보통 로그아웃은 로그인 한 뒤 작동하는것이 일반적이기에, 세션이 없는 경우는 거의 없다고 봐도 무방하나, getSession()의 스펙이 null을 반환할 수 있다고 명시되어 있으므로 이에 대한 처리 코드를 담는것이 좋습니다.

.

감사합니다.

우디님의 프로필 이미지
우디

작성한 질문수

질문하기