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

인프러너님의 프로필 이미지
인프러너

작성한 질문수

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

로그인 처리하기 - 직접 만든 세션 적용

session을 DB에 저장하지는 않나요??

작성

·

1.1K

1

session을 생성할 때

public void createSession(Object value, HttpServletResponse response){
//세션 id를 생성하고, 값을 세션에 저장
String sessionId = UUID.randomUUID().toString();
sessionStore.put(sessionId, value);

//쿠키 생성
Cookie mySessionCookie = new Cookie(SESSION_COOKIE_NAME, sessionId);
response.addCookie(mySessionCookie);
}

이 소스에서는 sessionStore에 담아놓았는데..

실제 운영을 할 때도 저렇게 ConcurrentHashMap에만 담아놓고 사용을 하나요?? 아니면 DB에 아이디와 세션값을 따로 저장을 할까요??

 

어차피 새션값은 고유값이기는 하지만 일정 시간이 지나면 변경이 되는 값이라 굳이 DB에 테이블을 만들어서 저장을 하지는 않을 것 같은데

 

실제로 개발을 하고 운영을 할 때도 저렇게 ConcurrentHashMap에만 담아놓고 끝나는지, 아니면 DB까지 저장이 되는지 궁금합니다.

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 아버지님

세션 클러스터링을 검색해보시면 원하시는 답을 찾을 수 있을거에요.

감사합니다.

인프러너님의 프로필 이미지
인프러너
질문자

답변 감사합니다.

세션 클러스터링은 서버가 한대 이상일 때 서로 공유하고, 동기화를 해서 사용을 하기 위해서 사용하는것으로 알고있는데

하나의 서버나 호스팅으로 운영을 할 경우에는 따로 DB나 다른 방법을 사용하지 않고  세션에만 넣고빼고 하면서 운영을 하는걸까요??

한대의 서버나 호스팅으로 운영을 할 경우에 세션 관리가 어떻게 되는지 궁금합니다.

선생님 저도 세션 관련한 질문이 있는데, 혹시 Rest API 방식에서는 Stateless하게끔 하기 위해 세션을 사용하지 않는 것 같은데, Rest API 방식으로 개발하는 경우에는 세션을 사용하지 않나요?

인프러너님의 프로필 이미지
인프러너

작성한 질문수

질문하기