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된 서버에 저장 되어 있지 않다.
따라서 세션 정보를 옮겨주는 등의 부수적인 관리가 필요하다.
그러나 stateless 서비스의 경우 server는 client 세션 관리를 하지 않는다.
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한 성격을 가진 '설계 구조'
로 정리하면 된다.
'IT기술 > CS(ComputerScience)' 카테고리의 다른 글
NAT Gateway 개요 (0) | 2023.11.24 |
---|---|
RTO와 RPO 뭐냐 이게? (0) | 2023.11.24 |
애자일 개발 프로세스 (0) | 2023.08.10 |
소프트웨어 공학의 모든 것 - 유지보수 (0) | 2023.08.07 |
[CS] OOM의 원인과 아주 간단하게 OOM 발생 시키기 (0) | 2023.08.03 |