티스토리 뷰

TCP 서버

  • 장점

    • 성능이 좋다. (=빠르다)

    • 커넥션 기반

    • stateful 기반

      • 가용성을 확보하기 어려움.

      • 코딩은 용이함.

    • notify가 가능. (클라이언트의 요청없이 서버가 패킷 전달)

  • 단점

    • 커넥션 기반이라, 커넥션 유실/복구 이슈

    • 로직간 결합도가 높아지는 경우가 자주 발생한다.

    • 서버 크래시에 대한 높은 리스크.

웹 서버

  • 장점

    • stateless 기반

      • 가용성 확보가 쉬움.

      • state는 모두 db에 존재.

    • 오픈소스 프레임워크가 많고, 검증되어있음.

    • 프레임워크 내에서도, 다양한 기능들이 오픈소스로 배포되고 쉽게 사용 가능.

    • 로직간 결합도가 낮다.

      • state가 없음으로

    • 서버 크래시에도 큰 장애는 없다.

      • 어지간해서는 서버 크래시도 없다.

        • 부하로 인한 timeout이나, 스크립트 오류가 발생할 뿐.

  • 단점

    • 모든 데이터는 요청마다 db를 조회해야해서 성능이 떨어진다.

    • notify가 어려움. (1-request, 1-response 구조)

    • 다른 피어와 통신용으로 사용하기 위해선 polling이 필요하다. [like ajax]


댓글