Computer Science/NetWork
📌Stateful vs Stateless 완전 정복 🔍 서버 설계의 핵심 개념 쉽게 이해하기
추천캐릭터
2022. 10. 30. 22:07
728x90
반응형
📋 본문
오늘은 많은 백엔드/프론트엔드 개발자분들이 헷갈려하는 개념, Stateful과 Stateless의 차이점에 대해 설명드리려 합니다.
서버 아키텍처를 설계할 때 정말 자주 나오는 주제이니, 끝까지 읽어보시면 많은 도움이 되실 거예요!
✅ 1. 정의부터 확실하게!
구분StatefulStateless
| 의미 | 서버가 클라이언트 상태(Session, Cookie 등)을 기억함 | 서버가 클라이언트 상태를 기억하지 않음 |
| 연결 방식 | 지속적인 연결 유지 | 요청마다 연결 후 즉시 종료 |
| 정보 유지 | 이전 요청 상태 저장 | 매 요청 시 모든 정보를 포함해야 함 |
✅ 2. 장단점 비교
🔹 Stateful
- 장점:
- 로그인 상태 유지 등 기능 구현이 쉬움
- MMORPG 같은 실시간 상호작용 서비스에 유리
- 단점:
- 서버에 리소스 부담
- 서버 간 세션 공유 어려움 → Scale-out 불리
🔹 Stateless
- 장점:
- 서버 확장, 로드밸런싱, 캐시 활용 용이
- REST API, 클라우드 환경에 적합
- 단점:
- 매 요청 시 상태 정보 포함 → 네트워크 자원 사용 ↑
- 클라이언트 측 부담 ↑
✅ 3. 서비스 예시로 이해하기
서비스 예시적합한 방식
| MMORPG 게임 서버 | ✅ Stateful |
| REST API 기반 웹 서비스 | ✅ Stateless |
| IoT 실시간 데이터 수신 서버 | ✅ Stateful |
| 블로그, 커머스 등 일반 웹 서버 | ✅ Stateless |
✅ 4. 기술적 이슈 요약
이슈설명
| Scale-out | Stateful은 세션 동기화 어려움 |
| CSRF | 세션 인증 방식의 보안 취약점 |
| CORS | 도메인 간 요청 제약 발생 가능 |
| REST API | Stateless 원칙 준수 필요 |
✅ 5. 마무리 요약
- Stateful: 기능 구현은 쉽지만 서버에 부담, 확장성 떨어짐
- Stateless: 구현 복잡하지만 성능, 확장성, 클라우드에 유리
- 선택 기준: 서비스의 실시간성/확장성/안정성에 따라 결정!
728x90
반응형