Stateful 과 Stateless

songtofu·2022년 9월 25일
0

1. 앞서,,,

  • Stateful 과 Stateless는, 클라이언트와 서버간의 네트워크 통신이 어떻게 이루어지는지에 대한 개념. 즉, 네트워크 프로토콜이다.

2. 세션 상태 및 세션 정보?

  1. 세션 상태
    • 클라이언트와 서버간 통신 인증이 된 상태 의미.
    • 인증된 상태에서 데이터 송수신이 가능하다.
  2. 세션 정보
    - 한 세션 내에서, 클라이언트가 서버에 전송할 데이터 정보
    • 서버는 세션 유지 시간이 지나거나, 클라이언트가 전송하려했던 데이터를 모두 수신할 때 까지 클라이언트와의 세션 상태를 유지한다.

    3. Stateful

  • 세션이 종료될 때까지, 클라이언트의 세션 정보를 저장하는 네트워크 프로토콜.
    ex) TCP 프로토콜, 온라인뱅킹

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

  • 단점: 확장성이 좋지 않다(클라이언트의 세션 정보가 새로 scale out된 서버에 저장 되어 있지 않다.-> scale out시, 클라이언트의 세션 정보를 새로운 서버에 옮겨주는 등의 부수적인 관리가 요구기 때문)

    scale out?
    인프라 확장(서버를 운영하는 중 이용자 증가, 사업 확장 등의 이유를 많은 서버 용량과 성능을 필요로 하게되므로) 을 위한 방법 중 한가지.
    서버를 여러대 추가하여 시스템을 확장하는 것 -> 서버가 여러대로 나뉘기 때문에 서버에 걸리는 부하를 균등하게 '로드밸런싱'을 동반한다.
    여러 대의 서버로 나눠 시스템을 확장하기 때문에 수평 스케일로 불린다.
    + scale up : 기존 서버의 사양을 업그레이드해 시스템을 확장. CPU나 RAM등을 추가, 교체하는 방법으로 하나의 서버 사양을 업그레이드 하기 때문에 수직 스케일로 불린다.

4. Stateless

  • 서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않는 네트워크 프로토콜. 즉, 요청에 대한 응답만 처리하는 방식(각 통신은 선행, 후속으로 따라오는 통신과 관련) -> 클라이언트가 송신하려 했던 모든 데이터가 서버쪽에 수신되었는지 확인하지 않습니다.
    ex) UDP 프로토콜, 온라인 검색
  • 장점: 확장성이 좋다. (서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않기 때문에)
  • 단점: 서버가 세션 상태 및 세션 정보를 저장하지 않기 때문에, 클라이언트 측에서 송신할 데이터의 양이 많아진다.

출처

profile
읽으면 머리에 안들어와서 직접 쓰는 중. 잘못된 부분 지적 대환영

0개의 댓글