Development(개발)/개발 Core
stateful, stateless 구분짓기
버터젤리
2025. 7. 13. 14:56
✅ 명확한 정의를 내리고 기억하자!
Stateful (상태 저장) vs Stateless (상태 비저장)
stateful | stateless | |
정의 | 이전 요청에서의 상태를 기억하고 다음 요청에 반영함 | 이전 요청과 관계없이 모든 요청을 독립적으로 처리함 |
특징 | 세션/컨텍스트를 유지함 | 요청마다 필요한 모든 정보를 포함해야 함 |
예시 | 로그인 후 세션 유지, DB 연결 세션, TCP | REST API, DNS, HTTP, UDP |
이전 요청에 대한 정보를 들고있는지 아닌지에 따른 구분.
관념적인 개념이고 때문에 여러 상황에서 응용되어 사용됨. -> 반드시 개념적의미를 구분지어 알고 있어야한다.
🛠 실무 적용 예시
✅ 1. 웹 애플리케이션
- Stateful: 로그인 세션을 서버에서 저장하고, 이후 요청마다 사용자 정보 유지 (예: JSP + Tomcat 세션 기반)
- Stateless: JWT 기반 인증처럼 클라이언트가 매 요청에 토큰을 보내 서버는 상태를 저장하지 않음 (예: REST API)
✅ 2. 네트워크 프로토콜
- Stateful: TCP
→ 연결을 설정하고 패킷의 순서, 재전송 등을 관리하며 상태를 유지함 -- 채팅, 요청/응답 - Stateless: UDP
→ 연결 없이 메시지를 전송하며, 전달 여부나 순서를 관리하지 않음
✅ 3. 클라우드 인프라
- Stateful 서비스: 데이터베이스, 캐시, 세션 서버 등
→ VM이 재시작되면 상태 복구 필요 - Stateless 서비스: 웹 프론트엔드 서버, API 서버 등
→ 서버 교체나 재배포에도 영향을 최소화 (Kubernetes Pod 교체 등)