2024.01.17 

김영한의 Spring MVC2 편을 보면서 이해가 가지않은 부분이 있었다.

해당 편의 로그인 처리하기 - Servlet HTTP Session 2  부분이었는데

 

public String homeLogin(@SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false)
            Member loginMember,
            Model model) {

        if (loginMember == null) {
            return "home";
        }

        model.addAttribute("member", loginMember);
        return "loginHome";
    }

 

위 코드에서 @SessionAttribute(name = SessionConst.LOGIN_MEMBER, ...) 부분이다.

 

해당 부분에서 name 값을 상수로 고정하는데

 

해당 부분에 대해 나온 코멘트는 

 

HttpSession 에 데이터를 보관하고 조회할 때, 같은 이름이 중복 되어 사용되므로, 상수를 하나 정의했다.

 

였는데 이 말만으로는 정확하게 이해가 가지 않았다.

 

저렇게 정의해두면 하나의 대상만을 가져오지 않는가?

 

라는 의문이 들었다.

 

이전 코드를 보면 login 의 코드를 보면

 

// create session by HTTPSession
        HttpSession session = request.getSession();
        /**
         * request.getSession(true);
         * 세션이 있으면 기존 세션을 반환
         * 없으면 새로운 세션 생성 및 반환

         * request.getSession(false);
         * 세션이 있으면 기존 세션 반환
         * 없으면 새로운 세션을 생성하지 않고 null 을 반환
         */


        // set login member info in session
        session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);

 

 

위와 같이 session에 상수값을 key, 멤버를 value 로 저장하게 되는데 이러면 동시 로그인에서 문제가 생기진 않을까? 하는 의문이 들었다.

 

해당 부분에 대해서 검색해본 결과 어떤 블로거분의 글을 보게 되었다.

 

해당 글 링크

 

웹 기초] HTTP Session 공부

HttpSession을 공부하게 된 이유. www.youtube.com/watch?v=3ArYMq5AomI 우연히 jojoldu.tistory.com/ 블로그의 주인님(?)이신 조졸두님(향로님)이 나오는 유튭영상을 보고 정리하게 됐습니다. 향로님의 대표적인 질

jjunii486.tistory.com

 

이 부분은 이전 유튜브에서도 나온 질문이라는데 나의 의문에 대한 답변이 나와있다.

+ Recent posts