728x90
반응형

📋 본문

오늘은 많은 백엔드/프론트엔드 개발자분들이 헷갈려하는 개념, StatefulStateless의 차이점에 대해 설명드리려 합니다.
서버 아키텍처를 설계할 때 정말 자주 나오는 주제이니, 끝까지 읽어보시면 많은 도움이 되실 거예요!


✅ 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
반응형

+ Recent posts