React, Node.js 웹사이트 개발기_2. 서버

왱구·2024년 12월 21일

개인프로젝트

목록 보기
4/6

1. 서버

개인프로젝트에서 서버에 사용된 패키지들을 정리했다.

1) express

: Node.js환경에서 웹 애플리케이션 및 API를 구축하기 위해 사용되는 프레임워크이다.
HTTP 메서드와 URL 경로를 기반으로 요청을 처리하는 라우팅 기능을 제공한다.

const express = require("express");
const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

2) cors

: 브라우저가 다른 기원(Origin)의 리소스에 접근할 때 보안 상의 제한을 해결하기 위한 미들웨어이다. 예를들어, httpL//localhost:3000에서httpL//localhost:8080의 데이터를 가져오려고 할 때, 두 도메인이 다르므로 브라우저는 보안상의 이유로 요청을 차단한다. cors는 이를 제어하고 허용 여부를 결정할 수 있는 프로토콜이다.

const cors = require("cors");

app.use(cors(corsOptions));

3) express-session

: Node.js의 Express 웹 프레임워크에서 세션 관리를 위한 미들웨어이다.
세션은 클라이언트와 서버 간의 상태를 유지하기 위해 사용되며, 사용자 인증과 같은 작업에서 자주 활용된다. 세션 ID 생성 및 관리, 서버 측 세션 저장소 제공, 상태 유지에 사용된다.

const session = require("express-session");

app.use(
    session({
        resave: false,
        saveUninitialized: true,
        secret: "WG",
        cookie: {
            httpOnly: true,
            secure: false
        }
    })
);

세션이란?

세션은 서버에서 클라이언트와의 상태를 유지하기 위해 사용하는 메커니즘이다.
1. 클라이언트가 서버에 처음 요청을 보내면 서버는 고유한 세션 ID를 생성함
2. 생성된 세션 ID는 클라이언트에게 쿠키 형태로 전달됨
3. 이후 클라이언트는 해당 세션 ID를 사용해 서버와 통신하고, 서버는 이를 기반으로 사용자의 상태를 유지함

상태(State)란?

상태는 애플리케이션의 현재 상황을 나타내는 데이터이다.
프론트엔드는 상태 관리가 중요한데, 예를 들어 도서 관리에서 책 대여를 요청하면 페이지를 불러오는 순간에는 API를 통해 호출하고 있는 중이기 때문에 어떤 상태인지 모른다. 그 책의 상태가 대여 가능한 상태인지 대여 불가능한 상태인지 기억하는 것이다.
클라이언트와 서버 간의 여러 요청이 오가는 동안 사용자별 데이터나 상황 정보를 기억하는것을 상태 유지라고 한다.

profile
늦깎이 애아빠 개발지망생

0개의 댓글