소개
웹 애플리케이션에서 사용자가 상품을 선택하여 장바구니에 담고, 결제를 하기 전까지 선택한 상품을 유지하기 위해 세션을 이용할 수 있습니다. 이 문서에서는 JavaScript와 Express 프레임워크를 사용하여 세션을 이용한 장바구니 기능을 구현하는 방법에 대해 알아보겠습니다.
세션(Session) 이란?
웹 애플리케이션에서 세션이란 특정 사용자에 대한 상태 정보를 서버측에 저장하고 유지하는 메커니즘을 말합니다. 각 사용자별로 별도의 세션을 유지하므로, 장바구니와 같이 사용자에 특화된 정보를 저장하기에 적합합니다.
Express를 사용한 세션 구현
Express 프레임워크를 사용하여 세션을 구현하려면 express-session
미들웨어를 설치해야 합니다.
npm install express-session
이제 Express 애플리케이션에서 express-session
을 사용하여 세션을 활성화하고 구성할 수 있습니다.
const express = require('express');
const session = require('express-session');
const app = express();
app.use(session({
secret: 'mySecret', // 세션을 암호화하기 위한 키
resave: false,
saveUninitialized: true
}));
위 코드에서 secret
은 세션을 암호화하기 위한 키로, 애플리케이션에서 유일해야 합니다. 이제 세션을 사용하여 사용자가 선택한 상품을 장바구니에 추가하고 유지할 수 있습니다.
장바구니 기능 구현
사용자가 상품을 장바구니에 추가할 때마다, 해당 상품을 세션에 저장합니다. Express의 미들웨어를 사용하여 장바구니에 상품을 추가하는 요청을 처리할 수 있습니다.
app.post('/add-to-cart', (req, res) => {
const productId = req.body.productId;
// 장바구니에 상품 추가 로직
if (!req.session.cart) {
req.session.cart = {};
}
if (!req.session.cart[productId]) {
req.session.cart[productId] = 1;
} else {
req.session.cart[productId]++;
}
res.send('Product added to cart');
});
위 코드는 /add-to-cart
엔드포인트로부터 POST 요청이 오면, 해당 상품을 세션의 장바구니에 추가하는 예시입니다.
결론
세션을 이용하여 장바구니 기능을 구현하면 사용자가 선택한 상품을 유지할 수 있어 편리합니다. Express의 express-session
미들웨어를 사용하여 사용자마다 별도의 세션을 유지하고, 상품을 세션에 저장하여 장바구니 기능을 구현할 수 있습니다.