세션은 MVC 앱에서 유용하게 사용되는 개념으로 사용자의 정보 저장에 사용된다.
npm을 이용하여 모듈을 다운받자.
npm i express-session
npm i -D @types/express-session
app.use
부분을 추가하였으니 그 위주로 확인해보자.
우선, secret
, resave
, saveUninitialized
가 있는데 하나하나 자세히 알아봅시다.
세션 ID 쿠키에서 서명 시 사용되는 문자열입니다. 배열도 가능하지만 문자열을 사용했고 배열을 사용하면 첫 번째 요소만 서명하는데 사용되고 나머지 요소들은 서명 확인 시 사용되는 구조입니다.
활성화(true)로 설정하면 세션이 수정되지 않은 경우에도 세션이 세션 저장소에 다시 저장되게 만드는 옵션입니다.
활성화(true)로 설정하면 초기화 되지 않은 세션을 세션에 저장시킵니다.
만약 비활성화(false)는 로그인 세션을 구현하거나 서버 스토리지 사용량을 줄일 때 사용됩니다.
이 모듈을 사용하고 controller에 코드를 수정하면 세션을 확인할 수 있다.
]
세션 공부한 김에 복습 차원으로 세션과 쿠키 차이점 한번 적어서 기억하는 용도로 사용해봅시다!
세션은 서버 자원 사용, 쿠키는 사용 x
보안 측에선 세션이, 속도 측에선 쿠키가 우수함
왜냐하면 쿠키는 클라이언트 로컬에 저장하여 변질 및 스니핑의 가능성이 있지만 세션은 쿠키에 sessionid만 저장하고 저장된 id를 이용하여 처리하기 때문이다.
쿠키 -> 만료시간 설정을 통해 브라우저가 꺼져도 사용 가능
세션 -> 브라우저 꺼지면 삭제