Stateful, Stateless 차이

서규범·2022년 10월 16일
0

무상태 프로토콜 스테이스리스(Stateless)

• 서버가 클라이언트의 상태를 보존X
• 장점: 서버 확장성 높음(스케일 아웃)
• 단점: 클라이언트가 추가 데이터 전송

Stateful, Stateless 차이

상태 유지 - Stateful

• 고객: 이 노트북 얼마인가요?
• 점원: 100만원 입니다.
• 고객: 2개 구매하겠습니다.
• 점원: 200만원 입니다. 신용카드, 현금중에 어떤 걸로 구매 하시겠어요?
• 고객: 신용카드로 구매하겠습니다.
• 점원: 200만원 결제 완료되었습니다.

Stateful, Stateless 차이

상태 유지 - Stateful, 점원이 중간에 바뀌면?

• 고객: 이 노트북 얼마인가요?
• 점원A: 100만원 입니다.
• 고객: 2개 구매하겠습니다.
• 점원B: ? 무엇을 2개 구매하시겠어요?
• 고객: 신용카드로 구매하겠습니다.
• 점원C: ? 무슨 제품을 몇 개 신용카드로 구매하시겠어요?

Stateful, Stateless 차이

상태 유지 - Stateful, 정리

• 고객: 이 노트북 얼마인가요?
• 점원: 100만원 입니다. (노트북 상태 유지)
• 고객: 2개 구매하겠습니다.
• 점원: 200만원 입니다. 신용카드, 현금중에 어떤 걸로 구매 하시겠어요?
(노트북, 2개 상태 유지)
• 고객: 신용카드로 구매하겠습니다.
• 점원: 200만원 결제 완료되었습니다. (노트북, 2개, 신용카드 상태 유지)

Stateful, Stateless 차이

무상태 - Stateless

• 고객: 이 노트북 얼마인가요?
• 점원: 100만원 입니다.
• 고객: 노트북 2개 구매하겠습니다.
• 점원: 노트북 2개는 200만원 입니다. 신용카드, 현금중에 어떤 걸로 구매 하시겠어요?
• 고객: 노트북 2개를 신용카드로 구매하겠습니다.
• 점원: 200만원 결제 완료되었습니다.

Stateful, Stateless 차이

무상태 - Stateless, 점원이 중간에 바뀌면?

• 고객: 이 노트북 얼마인가요?
• 점원A: 100만원 입니다.
• 고객: 노트북 2개 구매하겠습니다.
• 점원B: 노트북 2개는 200만원 입니다. 신용카드, 현금중에 어떤 걸로 구매 하시겠어요?
• 고객: 노트북 2개를 신용카드로 구매하겠습니다.
• 점원C: 200만원 결제 완료되었습니다.

Stateful, Stateless 차이

정리

• 상태 유지: 중간에 다른 점원으로 바뀌면 안된다.
(중간에 다른 점원으로 바뀔 때 상태 정보를 다른 점원에게 미리 알려줘야 한다.)
• 무상태: 중간에 다른 점원으로 바뀌어도 된다.
• 갑자기 고객이 증가해도 점원을 대거 투입할 수 있다.
• 갑자기 클라이언트 요청이 증가해도 서버를 대거 투입할 수 있다.
• 무상태는 응답 서버를 쉽게 바꿀 수 있다. -> 무한한 서버 증설 가능

따라서, Stateful은 항상 같은 서버가 유지되어야 하며, 중간에 서버에 장애가 발생할 경우, 기존 진행 프로세스에 영향을 미친다.
반면 Stateless의 경우, 아무 서버나 호출 가능하며, 중간에 서버에 장애가 발생해도 상태를 보관하지 않기 때문에 영향을 미치지 않는다.
하지만 실무에서 모든 것을 무상태로 설계할 수 있는 경우도 있고 없는 경우도 있다.
• 무상태
• 예) 로그인이 필요 없는 단순한 서비스 소개 화면
• 상태 유지
• 예) 로그인
• 로그인한 사용자의 경우 로그인 했다는 상태를 서버에 유지
• 일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지
• 상태 유지는 최소한만 사용 !

profile
하려 하자

0개의 댓글