Spring/모든 개발자를 위한 HTTP 웹 기본 지식
8. 클라이언트 서버 구조 | 무상태 프로토콜 스테이스 리스 (Stateless)
DEV-HJ
2023. 8. 20. 22:04
반응형
클라이언트 서버 구조
- Request, Response (요청, 응답) 구조
- 클라이언트는 서버에 요청을 보내고, 응답을 대기한다.
- 서버가 요청에 대한 결과를 만들어서 응답해주고 응답값으로 클라이언트는 UI를 그린다
무상태 프로토콜
스테이스 리스 (Stateless)
- 서버가 클라이언트의 상태를 보존하지 않음
- 장점 : 서버 확장성 높음 (스케일 아웃)
- 단점 : 클라이언트가 추가 데이터 전송
Stateful, Stateless 차이
상태 유지 - Stateful
Stateful, Stateless 차이
상태 유지 - Stateful, 점원이 중간에 바뀌면?
Stateful, Stateless 차이
상태 유지 - Stateful, 정리
Stateful, Stateless 차이
무상태 - Stateless
포인트 - 점원은 고객의 마지막 대화만으로도 결재를 완료할수 있다.
Stateful, Stateless 차이
무상태 - Stateless, 점원이 중간에 바뀌면?
점원이 중간에 바뀌어도 다 고객요청을 알아들을수 있다.
Stateful, Stateless 차이 정리
상태유지 : 중간에 다른 점원으로 바뀌면 안된다
(중간에 다른 점원으로 바뀔때 상태 정보를 다른 점원에게 미리 알려줘야한다)
무상태 : 중간에 다른 점원으로 바뀌어도 된다.
- 갑자기 고객이 증가해도 점원을 대거 투입할 수 있다.
- 갑자기 클라이언트 요청이 증가해도 서버를 대거 투입할 수 있다.
- 무상태는 상태유지를 안하기 때문에 응답 서버를 쉽게 바뀔 수 있다 → 무한한 서버 증설 가능
Stateless 실무 한계
- 모든것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다
- 무상태 (예: 로그인이 필요 없는 단순한 서비스 소개 화면)
- 상태유지 (예: 로그인)
- 로그인한 사용자의 경우 로그인 했다는 상태를 서버에 유지
- 일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지
- 상태 유지는 최소한만 사용
Stateless 단점
- Stateful보다 데이터를 너무 많이 보냄
반응형