Session

Session

사전적 의미

  1. (특정한 활동을 위한) 시간
  2. (의회 등의) 회기; (법정의) 개정 (기간)

실질적 의미

시작 조건종료 조건이 있는 시간, 또는 회기

정보 교환이 지속되는 시간, 또는 회기

세션의 예

HTTP session
요청 - 응답
로그인 세션
로그인 - 로그아웃
Google Analytics 세션
페이지 접속 - 30분간 접속이 없으면 종료로 간주 (커스터마이징 가능)

웹 서비스를 위한 세션의 구현

  1. 세션이 시작되면, 세션이 시작되었다는 사실쿠키에 저장
  2. 세션에 대한 정보를 여러 요청에 걸쳐서 지속시키기 위해, 정보를 어딘가에 저장
  3. 세션이 만료되면, 세션이 만료되었다는 사실쿠키에 반영

* 위 방식은 널리 사용되는 방식일 뿐, 반드시 위와 같이 구현해야 하는 것은 아닙니다.

세션 스토어

세션에 대한 정보를 저장하는 어딘가

  • 쿠키
  • 데이터베이스
  • 파일
  • 기타 정보를 저장할 수 있는 곳 어디든

세션 스토어의 선택

서비스의 요구사항에 맞춰서
적절한 저장소를 선택하면 됨

  • 정보의 형태가 간단하고 자주 바뀔 일이 없으면 쿠키
  • 저장해야 할 정보의 양이 많으면 데이터베이스
  • 정보가 굉장히 자주 변경되면 메모리 기반 저장소

세션? 세션 스토어?

'세션''세션 스토어'는 엄연히 다른 말이지만 혼용되는 경우가 많습니다.

'세션에 정보를 저장한다'는 말은 '세션 스토어에 정보를 저장한다'는 말과 같은 뜻이라고 생각하면 됩니다.

Express + Session

cookie-session
쿠키에 모든 정보를 저장하는 세션 스토어.
첫 방문시 무조건 세션 시작
express-session
쿠키에는 세션 식별자만 저장하고 실제 정보의 저장은 외부 저장소(데이터베이스 등)를 이용하는 세션 스토어. 외부 저장소에 대한 별도의 설정 필요

cookie-session 예제

Link

인증/인가 실습

Link

수고하셨습니다