Stateful, Stateless 정리

DoooongDong·2022년 11월 19일
0

UMC 3기 스터디

목록 보기
1/6
post-thumbnail

Stateful, Stateless 무엇인가?

이 둘은 네트워크 프로토콜로서 클라이언트와 서버간의 네트워크 통신이 어떻게 이루어지는 지에 대한 개념입니다.

세션 상태

  • 클라이언트/서버 세션은 단일 클라이언트와 서버 간에 일정한 기간 동안 발생하는 일련의 관련 상호작용입니다.

  • 확립된 세션이 있으면 서버는 각 요청과 연관된 클라이언트를 식별합니다.

  • 무수한 요청에 대해 특정 클라이언트를 기억할 수 있습니다.

세션 정보

  • 한 세션 내에서, 클라이언트가 서버에 전송할 데이터 정보를 의미합니다.

  • 서버는 세션 유지 시간이 지나거나, 클라이언트가 전송하려했던 데이터를 모두 수신할 때 까지 클라이언트와의 세션 상태를 유지합니다.

Stateful

세션이 종료될 때 까지, 클라이언트의 세션 정보를 저장하는 네트워크 프로토콜입니다. 다음은 stateful의 예시들입니다.

  • TCP 프로토콜
    TCP는 클라이언트와 서버간 3-way handshaking (연결 확정, 데이터 전송, 연결 종결)로 이루어져 있습니다.
    클라이언트와 서버간 연결 확정 후, 데이터를 전송하고 데이터 전송이 끝나면 연결이 종결됩니다.

  • 온라인 뱅킹
    은행(서버)은 고객(클라이언트)의 인증 정보(세션 상태)와 결제 내역(세션 정보)을 가지고 있습니다.

장점

  • 서버는 클라이언트의 세션 정보를 저장하므로, 갑자기 통신이 중단되더라도 중단된 곳 부터 다시 시작할 수 있습니다.

단점

  • 확장성이 좋지 않습니다.
  • 클라이언트의 세션 정보가 새로 Scale-out 된 서버에 저장 되어 있지 않습니다.
  • 따라서, Scale-out 시, 클라이언트의 세션 정보를 새로운 서버에 옮겨주는 등의 부수적인 관리가 요구되므로, 확장성이 좋지 않습니다.

scale-up과 scale-out에 대한 정보 알아보기

Stateless

서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않는 네트워크 프로토콜입니다. 즉, 요청에 대한 응답만 처리하는 방식입니다. 각 통신은 선행되거나 후속으로 따라오는 통신과 관련이 없습니다. 클라이언트가 송신하려 했던 모든 데이터가 서버 쪽에 수신 되었는지 확인하지 않습니다.

  • UDP 프로토콜
    UDP는 서버가 클라이언트의 세션 상태 및 세션 정보 없이 요청에 대한 응답만을 수행하는 네트워크 프로토콜입니다.

  • 온라인 검색
    검색창에 질문을 입력하다가 요청이 중단되어도 다시 검색하면 됩니다.

장점
확장성이 좋습니다. 서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않기 때문에 확장성이 좋습니다.

단점
서버가 세션 상태 및 세션 정보를 저장하지 않기 때문에 클라이언트 측에서 송신할 데이터의 양이 많아집니다.





[참고]
https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%83%81%ED%83%9C_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
https://wooono.tistory.com/366
https://www.ibm.com/docs/ko/sva/9.0.6?topic=overview-session-state-concepts
https://tecoble.techcourse.co.kr/post/2021-10-12-scale-up-scale-out/
https://jjy0821.tistory.com/36

profile
꺾이지 말자 :)

0개의 댓글