무상태성 = 서버가 대화 상태를 보관하지 않음

그래서 클라는 요청을 보내야만 바뀐 자원(A′)을 얻고, 각 요청은 필요한 정보를 전부 포함해야 함

그 보상으로 확장성·캐싱·독립성이 좋아지고, 실시간 푸시는 별도 채널로 보완

스크린샷 2025-09-24 오전 9.46.29.png

시나리오 설명 해결방법
🧱 Stateful 서버 (세션 저장) A 서버가 로그인 정보를 기억하고 있는데, 다음 요청이 B 서버로 가면 로그인 상태를 몰라서 오류 (세션이 A에만 있음) 해결하려면 모든 서버가 세션을 공유해야 해서
Redis 같은 “세션 스토리지”를 추가해야 함 (복잡해짐)
🌐 Stateless 서버 (JWT 사용) 사용자가 JWT 토큰을 갖고 있으므로, 어떤 서버(A든 B든 C든)에게 요청해도 동일하게 인증됨 서버는 매번 토큰 검증만 하면 됨 서버는 그냥 “토큰 유효한지”만 확인하면 되니까
서버 개수를 늘려도 아무 문제 없음

서버가 여러 대로 나뉘어도(=인스턴스 확장)

사용자 상태가 서버에 묶이지 않아 → 부하 분산과 **수평 확장(Scale Out)**이 쉬움

REST의 기본 원리 (무상태성)

REST API는 요청(Request)이 있을 때만 응답(Response)을 보낸다.

즉,

스크린샷 2025-09-22 오전 10.13.57.png

왼쪽(클라이언트)이 A를 요청해야,

오른쪽(서버)에서 A를 받아올 수 있는 구조죠.