Stateful 상태 유지를 예로 들자면
- 고객 : 이 책이 얼마인가요?
- 직원 A : 1000원입니다. (책 상태 유지)
- 고객 : 2권 살게요
- 직원 A : 2000원입니다 현금이나 카드로 결제하시나요?. (책, 2권 상태 유지)
- 고객 : 현금으로 할게요.
- 직원 A : 알겠습니다. (책, 2권, 현금 상태유지)
이 처럼 한 명의 직원에게만 물어보거나 다른 직원에게 인수인계 하는 방식으로 상태가 유지가 될 수 있을 것이다 하지만.
- 고객 : 이 책이 얼마인가요?
- 직원 A : 1000원입니다.
- 고객 : 2권 살게요
- 직원 B : ( 무엇을 2권 산다는 거지? )
- 고객 : 현금으로 할게요.
- 직원 C : ( 무엇을 현금으로 한다는 거지...? ).
고객이 매장을 둘러보다가 전부 다른 직원들에게 이런 말을 한다면 직원들은 물음표가 뜰 것이다 왜냐하면 다른 직원들은 이 고객의 이전
상태가 유지되지 않기 때문이다.
이처럼 Stateful (상태유지)는 중간에 서버가 바뀌어 버리면 오류가 일어난다는 뜻이다.
Stateful (상태유지)를 사용해야 할 때도 있다. 예를 들자면 로그인이다 로그인을 한 사용자라면 서버에 상태를 유지해야 하는데 일반적으로 서버 세션이다 브라우저 쿠키를 사용해서 상태를 유지한다.
Stateful (상태유지)는 최소한만 사용하는것이 좋다.
Stateless 무상태를 예로 들자면
- 고객 : 이 책이 얼마인가요?
- 직원 A : 1000원입니다.
- 고객 : 이 책 2권 살게요
- 직원 B : 2000원입니다 현금이나 카드로 결제하시나요?.
- 고객 : 이 책 2권 현금으로 할게요.
- 직원 C : 알겠습니다.
이와 같이 다른 직원에게 고객이 필요한 데이터를 다 넘겨준다면 직원이 아무리 많이 바뀌어도 직원들은 데이터에 따라 행동할 수 있게 된다.
이런 장점을 (고객 - 클라이언트) (직원 - 서버)로 나눈다면 갑자기 클라이언트의 요청이 증가 해도 서버를 대거 투입해 대규모 트래픽을 해결할 수 있다 응답 서버를 대거 투입할 수 있다는 장점이 있다.
모든 것을 Stateless (무상태)로 설계 할수 있는 것도 있고 아닌 경우도 있다. 또한 클라이언트에서 전송되는 데이터 양이 많을 수 있다.
Stateless (무상태)를 예로 들자면 로그인이 필요 없는 단순한 서비스 소개 화면이 있다.
'HTTP' 카테고리의 다른 글
| HTTP 메서드 - PUT, PATCH, DELETE (1) | 2024.09.30 |
|---|---|
| HTTP 메서드 - GET, POST (0) | 2024.09.30 |
| Connectionless (비 연결성) (2) | 2024.09.28 |
| HTTP 메시지 (1) | 2024.09.28 |