[javascript] 세션을 이용한 장바구니 기능 구현

소개

웹 애플리케이션에서 사용자가 상품을 선택하여 장바구니에 담고, 결제를 하기 전까지 선택한 상품을 유지하기 위해 세션을 이용할 수 있습니다. 이 문서에서는 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 미들웨어를 사용하여 사용자마다 별도의 세션을 유지하고, 상품을 세션에 저장하여 장바구니 기능을 구현할 수 있습니다.