RESTful Stateless

MIN·2025년 4월 13일

weekly

목록 보기
16/31

REST란?

REST(Representational State Transfer)는
자원을 URI 로 표현하고, HTTP 메서드로 해당 자원에 대한 행위를 정의
웹 아키텍처 이다.

• /users → 사용자 자원
• GET /users → 사용자 조회
• POST /users → 사용자 생성

이렇게 예를 들 수 있다.

RESTful은

REST를 잘 지킨 API 자체를 뜻한다.

RESTful한 API를 작성하기 위한 기준에는 6가지 항목이 있다.
그중에 무상태성 (Stateless)가 있다.

Stateless 란?

Stateless는 서버가 클라이언트의 이전 요청 상태를 저장하지 않음.
각 요청은 독립적이고, 어떤 요청을 처리하려면 필요한 모든 정보는 요청 안에 포함되어 있어야 함.


RESTful API의 URI 설계 예시 REST 예시

Stateless 구조를 왜 사용하게 될까

  1. 서버 확장성(Scalability)이 좋아짐
    요청 간 상태를 저장하지 않고, 서버가 더 빠르게 처리 가능하다.
    서버를 여러 대로 확장할 때도 유리함.

  2. 서버와 클라이언트가 독립적으로 동작할 수 있음
    클라이언트는 매번 필요한 정보를 보내고, 서버는 그 정보만 가지고 응답하면 되니까 유지 보수에 있어서 유리하다.

  3. 요청 간 의존성 X
    이전 요청이 성공했는지 실패했는지 몰라도 다음 요청을 보낼 수 있어. REST의 독립적인 리소스 접근 방식과 동일하게 작동

정리

사용자가 로그인을 하게되면
REST API에서는 서버가 로그인 상태를 기억하지 않는다.
대신 클라이언트는 매 요청마다 JWT 같은 토큰을 헤더에 담아서 보내함.

예시)

> GET /user/profile
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR...
// Stateless(무상태성) 구조

반면, Stateful한 구조에서는 서버가 로그인 상태를 직접 기억하게됨.
대표적인 방식: 세션 로그인 - 서버가 세션을 생성하고 클라이언트는 해당 세션 ID를 쿠키로 가지고 다님.

각 방식마다 위험 요소가 다르고, 보완 방법이 있다.

0개의 댓글