Express.js는 현재까지 가장 널리 사용되는 NodeJs 프레임워크 중 하나이며, 이에 익숙하다면 쿠키 관리는 그리 어렵지 않은 개념일 것이다.
HTTP 쿠키란 웹 서버에서 생성되어 클라이언트 측에 저장되는 작은 데이터 조각들이다. 서버가 클라이언트 측에 쿠키를 설정하기 위해 'Set-Cookie' 헤더와 함께 응답을 보낸다. 클라이언트는 이 응답을 받고 쿠키를 설정한다. 이후 클라이언트에서 서버로 보내는 모든 요청에는 이 쿠키 정보가 포함된다.

HTTP 쿠키는 웹 서버가 사용자의 웹 브라우저에 저장하는 작은 데이터 조각이다. 이 데이터는 사용자가 동일한 웹사이트를 재방문할 때마다 브라우저를 통해 서버로 다시 전송된다. 쿠키는 세션 관리(로그인, 쇼핑카트), 개인화(사용자 선호, 테마) 및 트래킹(사용자 행동 분석)에 주로 사용된다.
Node.js는 JavaScript를 서버 측 언어로 사용할 수 있게 해주는 환경이다. Express.js는 Node.js를 위한 빠르고 개방적인 웹 프레임워크로, 웹 애플리케이션을 구축할 때 필요한 기능들을 쉽고 효율적으로 사용할 수 있게 해준다.
cookie-parser의 역할cookie-parser는 Express.js의 미들웨어로, 들어오는 요청의 쿠키를 파싱해야 할 때 사용된다. 이 라이브러리는 요청된 쿠키를 쉽게 추출하고 조작할 수 있게 해준다. 사용자 인증, 세션 관리 등에 쿠키가 필요한 경우에 유용하다.
cookie-parser 설치 및 사용cookie-parser는 npm을 통해 쉽게 설치할 수 있다. 터미널에서 다음 명령을 실행한다:
npm install cookie-parser
Express 애플리케이션에 cookie-parser를 통합하는 과정은 매우 간단하다. 먼저, 라이브러리를 임포트하고 애플리케이션에 미들웨어로 추가한다.
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser());
쿠키를 설정하거나 접근하는 것은 Express의 response와 request 객체를 통해 이루어진다.
쿠키 설정 예시:
app.get('/set-cookie', (req, res) => {
res.cookie('name', 'value', { maxAge: 900000, httpOnly: true });
res.send('Cookie is set');
});
쿠키 접근 예시:
app.get('/get-cookie', (req, res) => {
const name = req.cookies.name;
res.send(`Cookie value: ${name}`);
});
쿠키는 사용자 인증에 자주 사용된다. 로그인 후 사용자의 ID나 토큰을 쿠키에 저장하여, 사용자가 사이트에 재방문할 때 자동으로 인증할 수 있다.
웹사이트에서 사용자의 상태(예: 로그인
상태, 장바구니 항목)를 유지하기 위해 세션 쿠키를 사용할 수 있다.
사용자의 선호도(예: 언어 설정, 테마)를 저장하여, 사용자가 사이트를 재방문할 때 개인화된 경험을 제공한다.
httpOnly와 secure 플래그쿠키에 httpOnly 플래그를 설정하면 JavaScript를 통한 접근이 차단된다. 이는 XSS(크로스 사이트 스크립팅) 공격을 방지하는 데 도움이 된다. secure 플래그는 쿠키가 오직 HTTPS를 통해서만 전송되도록 한다.
쿠키에 만료 시간을 설정하여 오래된 쿠키가 사용되지 않도록 한다. 이는 쿠키 탈취 및 오용의 위험을 줄인다.