dev/etc

stateless and stateful

재삐신생 2017. 3. 2. 16:18
반응형

무상태 프로토콜(stateless)은 대표적으로 HTTP가 있다.

상태 프로토콜(stateful)은 TCP Sock 커스텀 프로토콜 등이다.


Stateless

Pros

  • 서버의 수평확장 용이
  • 로드밸런싱 용이
  • 적은 메모리 사용량
  • 연결 지속성이 없음

Cons

  • 요청 헤더가 큼
  • 느리다(DB관련 오버헤드)
  • 단방향 통신

Stateful

Pros

  • 요청 헤더가 작음
  • 빠르다(메모리에 데이터로 대부분 처리가능)
  • 양방향 통신

Cons

  • 서버의 수평확장이 어려움
  • 로드밸런싱이 어려움
  • 많은 메모리 사용량(상대적)
  • 연결에 지속성이 필요하며, 재접속에 대한 오버헤드가 큼


대략 이런 장단점을 가지고 있다고 볼 수 있다. 구글링을 하면 더 자세한 정보가 있을 것이다.


전통적으로 게임서버는 stateful로, 구현되었으나, 모바일 게임에서는 연결을 유지하는게 어렵기 때문에 HTTP 프로토콜을 이용하기도 한다.

저 Bold처리한 연결지속성이 실제로는 가장 큰 이슈이며, stateless가 대세인 이유라고 생각한다. 게다가 다 떠나서, 일단 어렵다!

이쯤되면, 새로운 프로토콜의 필요성이 느껴진다.

아직은 연결 지속성 없이 양방향 통신이 가능하다는 건 어불성설이로구나.

반응형

'dev > etc' 카테고리의 다른 글

php7 캐슁  (0) 2019.10.20
2017년에 꼭 배워야할 언어 프레임웤 툴  (0) 2017.03.02
[OAuth 2.0] Store token and re-authentication  (0) 2017.02.15
git .gitignore 적용 (apply gitignore)  (0) 2016.12.08
ubuntu on docker on windows  (0) 2016.05.17