본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/CS(ComputerScience)

Stateful | Stateless 서비스

by 미노드 2023. 11. 24.

Stateful | Stateless 서비스의 개념을 알아보자.

 

1. Stateful 서비스

Client의 정보나 세션 정보를 server에 저장하는 서비스를 통틀어 Stateful 서비스 라고 한다.

TCP 기반 통신이 대표적인 예시

 

2. Stateless 서비스

Client의 정보와 Server의 정보가 완전히 독립적인 서비스를 통틀어 Stateless 서비스 라고 한다.

Server는 단순히 요청이 오면 응답을 보내는 역할만 수행하며, client가 능동적으로 요청해야 한다.

UDP와 HTTP 같은게 대표적인 예시

 

3. Stateless 서비스가 주목받는 이유

Statelss 구조가 Stateful 구조 대비 갖는 몇가지 장점들로 인해
 최근의 웹서비스 구조는 모두 Stateless 구조 기반을 따르고 있다.

흔히 API서비스도 이런식으로 기반이 잡히는 것 같다.

Stateless 서비스 바로 Scaling이 자유롭다는 것이며, AutoScaling기능도 이에 포함된다.

트래픽의 급증으로 서버가 scale out된 상황에서 Stateful 서비스의 경우,
client의 세션 정보가 새로 scale out된 서버에 저장 되어 있지 않다.
따라서 세션 정보를 옮겨주는 등의 부수적인 관리가 필요하다.

Scaling Out of Stateful Service

 

 

그러나 stateless 서비스의 경우 server는 client 세션 관리를 하지 않는다.

Scaling Out of Stateless Service

 

scaling은 최근 웹 서비스들이 요구하는 중요한 기능이며 serverless 구조의 서비스 구현에서 유용하다.
따라서 최근 웹 서비스 트렌드 동향에 발맞춰, scaling이 자유로운 Stateless 서비스 구조가 각광받고 있다.

 

4. Stateless Service 및 HTTP, REST

stateless service를 검색하면 나오는 연관 검색어들이 HTTP, REST 이다.

Stateless 와 Representational State Transfer (REST)는 '구조(Architecture)' 의 이름 인데, HTTP는 프로토콜 이름이다.

HTTP는 Stateless한 프로토콜 이다.

그리고 REST는 이러한 HTTP 프로토콜 상에 구현된 Resource Oriented Architecture (ROA) 설계 구조 이다.

따라서 HTTP와 REST 모두 Stateless한 성격을 가진 녀석들이며,
HTTP는 Statelss한 성격을 가진 '프로토콜' ,
REST는  Stateless한 성격을 가진 '설계 구조' 
로 정리하면 된다.