세션은 어디에 저장될까? (HttpSession, Cookie and Session)

    쿠키와 더불어 Session은 웹에서  널리 사용된다.

    주로 유저의 로그인 정보를 다른 페이지로 넘어가서도 유지하기 위해 사용한다.

     

    쿠키와 세션을 비교하는게 그다지 옳바른 방법같지는 않아보이나, 매번 그렇게 설명한다.

    사실 이번 포스팅엔 그게 중요한게 아니고 '쿠키는 클라이언트에, 세션은 서버에 데이터를 저장한다'가 핵심이다.

     

    그래. 

    쿠키는 브라우저에 누구나가 확인할 수 있는 방법으로 저장된다. 

    반면에 세션 방식은 데이터를 서버에 저장하고 브라우저는 세션ID만 쿠키로 저장한다. 

    브라우저는 서버에 요청을 보낼 때 쿠키 정보를 함께 보내고, 서버는 쿠키에 담긴 세션 ID를 이용해 세션 정보를 조회한다.

     

    근데, 그래서 세션은 서버 '어디에' 저장되는데?

    서버 구성에 따라 달라지겠지만, 크게 두 가지 선택이 있다. 

     

    1. 메모리 위에 저장한다. In-Memory Data Grid (메모리 기반 분산 데이터 스토리지)

    많은 기업과 개발자들이 DB에 대한 요청/접근을 줄이기 위해 노력한다.

    DB를 안정적으로 운영하기 위한 기술들이 많이 발전했지만, 여전히 서버에 문제가 터지면 많은 경우가 DB가 원인이 된다.

    그래서 메모리 위에 저장한다. 메모리에 저장하면 빠른 읽기/쓰기가 가능하고 무엇보다 DB 접근횟수가 줄어든다.

     

    2. 데이터베이스에 저장한다.

    RDB, NoSQL 모두 저장할 수 있지만 빠른 속도와 확장성, 유연한 구조라는 장점을 위해 NoSQL을 많이 사용하는듯 하다.

    특히나 키-밸류 구조의 NoSQL이 선호된다.

    '개발 > 짧 지식' 카테고리의 다른 글

    클래스 분리 시, #include 문의 위치  (0) 2022.11.18
    콜백 메소드(Callback Method)는 뭘까.  (0) 2022.11.16
    Android Lifecycle  (0) 2022.11.14
    캐리지 리턴(CR)과 라인피드(LF)  (0) 2022.11.08

    댓글