Web/General
실시간 대전 게임에서 TCP 서버 대신 웹 서버를 선택한 이유
엘키
2016. 9. 27. 21:17
TCP 서버
장점
성능이 좋다. (=빠르다)
커넥션 기반
stateful 기반
가용성을 확보하기 어려움.
코딩은 용이함.
notify가 가능. (클라이언트의 요청없이 서버가 패킷 전달)
단점
커넥션 기반이라, 커넥션 유실/복구 이슈
로직간 결합도가 높아지는 경우가 자주 발생한다.
서버 크래시에 대한 높은 리스크.
웹 서버
장점
stateless 기반
가용성 확보가 쉬움.
state는 모두 db에 존재.
오픈소스 프레임워크가 많고, 검증되어있음.
프레임워크 내에서도, 다양한 기능들이 오픈소스로 배포되고 쉽게 사용 가능.
로직간 결합도가 낮다.
state가 없음으로
서버 크래시에도 큰 장애는 없다.
어지간해서는 서버 크래시도 없다.
부하로 인한 timeout이나, 스크립트 오류가 발생할 뿐.
단점
모든 데이터는 요청마다 db를 조회해야해서 성능이 떨어진다.
notify가 어려움. (1-request, 1-response 구조)
다른 피어와 통신용으로 사용하기 위해선 polling이 필요하다. [like ajax]