Intro

세션이란 쿠키를 보완한 방식이라고 할 수 있다. 쿠키를 더 안전하고 scalable, 더 많은 데이터를 사용자의 컴퓨터에 저장할 수 있는 방법이다. 쿠키 위에 세션이 있다. 쿠키를 이해할 수 있어야 세션을 동작시킬 수 있다.

  • 쿠키의 문제점 웹 브라우저가 서버에 접속하여 로그인했을 때, 로그인에 대한 모든 쿠키 정보를 웹브라우저의 컴퓨터에 저장하기 때문에 누구든 그 컴퓨터를 사용한다면 쉽게 로그인할 수 있다.

  • 쿠키 데이터와 웹서버의 DB를 조합해서 '세선'을 만들면 훨씬 더 보안 기능이 높일 수 있다

  • 세션은 어떻게 동작하는가? 웹 브라우저가 서버에 접속하면 서버는 사용자의 컴퓨터에 쿠키 방식으로 데이터를 저장한다. 하지만 세션방식은 이 때 사용자를 식별하는 식별id 값만을 컴퓨터에 저장한다. 그리고 그 id에 해당하는 다른 데이터들은 서버 측의 DB나 파일에 저장한다. 사용자가 서버에 접속할 때 식별id를 함께 전송하면 그 id에 따른 데이터를 파일이나 DB에서 읽어와서 사용할 수 있다.

express에는 세션 기능이 없다. 그래서 express-session 모듈을 이용하여 세션에 대한 구체적인 일을 처리할 수 있다. 세션은 기본적으로 메모리에 데이터를 저장하지만, 이 express-session의 옵션을 변경하여 DB나 파일형태로 데이터를 저장할 수 있다.

session-file-store 모듈은 express-session 모듈에 의존하며 세션 데이터를 파일로 저장한다.

var session = require('express-session');
var FileStore = require('session-file-store')(session);
//어플리케이션에 세션을 등록하는 session의 app.use에서 옵션 선택.
app.use(session({
    secret: '130876893465734',
    resave: false,
    saveUninitialized: true,
    store:new FileStore
}));

코드를 실행하면, 'session' 이라는 디렉토리를 생성하여 그 하위에 파일을 만든다.

Last updated