본문 바로가기
개발공부/Node.js

Express에서 세션을 사용하는 방법

by zing! 2025. 2. 19.
 

세션(Session)과 쿠키(Cookie)

쿠키(Cookie)세션(Session)쿠키 & 세션 작동 방식Express에서 세션 사용 예제쿠키 vs 세션 비교기본 개념웹 서버와 브라우저(클라이언트)는 기본적으로 stateless(무상태성) 을 가진다.→ 즉, 한 번의 요청

zing829.tistory.com

 

왜 세션(session)을 사용할까?

웹 애플리케이션에서 로그인 기능은 필수 요소다. 로그인 후 사용자가 지속적으로 로그인 상태를 유지할 수 있도록 하기 위해서는 세션과 쿠키는 중요한 역할을 한다.

 

세션과 쿠키의 차이

세션과 쿠키는 모두 상태를 저장하는 방법이지만, 저장 위치동작 방식에서 차이가 있다.

🗄️세션

  • 서버 측에 데이터를 저장한다.
  • 클라이언트는 세션 ID만을 저장하고, 실제 데이터는 서버에 보관된다.
  • 세션은 일시적으로, 서버에서 세션이 만료되면 더 이상 사용할 수 없다.
  • 보통 로그인 정보나 사용자 데이터를 서버에 안전하게 저장할 때 사용된다.

🍪쿠키

  • 클라이언트 측에 데이터를 저장한다.
  • 사용자가 브라우저를 닫거나 다시 접속해도 저장된 데이터를 확인할 수 있다. → 전원이 꺼져도 데이터 안사라짐
  • 하지만 쿠키의 크기 제한이 있고, 사용자가 쿠키를 삭제할 수도 있다.

Express에서 세션 미들웨어 구현하기

Express에서 세션을 관리하려면 express-session 미들웨어를 사용해야 한다.

npm install express-session

 

설치한 후, 애플리케이션에 세션 미들웨어를 추가한다.


세션 ID와 쿠키의 역할

브라우저가 첫 번째로 서버에 요청을 보낼 때, 서버는 새로운 세션을 생성하고 세션 ID를 클라이언트의 쿠키에 저장한다. 그 후, 브라우저는 서버에 요청을 보낼 때마다 쿠키에 저장된 세션 ID를 함께 보내게 된다.

이렇게 함으로써, 서버는 클라이언트를 식별하고, 이후 요청에서도 로그인 상태를 유지할 수 있게 된다.
따라서, 쿠키에 저장된 세션 ID를 통해 사용자는 계속 로그인 상태를 유지할 수 있고, 서버는 클라이언트의 세션을 추적할 수 있게 된다.

 

세션 관리 흐름

  1. 첫 번째 요청:
    • 사용자가 서버에 처음 요청 보냄 - 서버는 세션을 생성하고, 세션 ID를 쿠키에 저장하여 브라우저로 응답
  2. 이후 요청:
    • 브라우저는 요청 시 쿠키에 저장된 세션 ID를 함께 보냄 - 서버는 이 세션 ID를 확인하고, 해당 세션을 복원하여 사용자의 로그인 상태를 유지
  3. 세션 만료:
    • 서버에서는 일정 시간이 지난 후 세션을 만료시키거나 사용자가 로그아웃할 때 세션을 삭제할 수 있다. 

 

'개발공부 > Node.js' 카테고리의 다른 글

라우트? 라우터?  (1) 2025.01.24
HTTP method  (3) 2025.01.23
package.json이 왜 중요할까?  (1) 2025.01.22
왓 더 PUG  (0) 2025.01.11
module (import,export)  (0) 2025.01.09