웹서버 vs 게임서버

Jaemyeong Lee·2025년 1월 13일

게임 서버1

목록 보기
129/220

먼저 정리: "웹 vs 게임"은 역할 분리 문제

핵심 비교

항목웹 서버 계열 (HTTP 중심)게임 실시간 서버 (TCP/UDP 세션)
주요 패턴요청-응답(Request/Response)연결 유지 + 지속 상호작용
상태 관리보통 무상태(토큰/세션 저장소 기반)보통 상태 유지(세션/월드/룸)
지연 목표ms~수백 ms도 허용되는 경우 많음프레임 단위 저지연 요구
대표 업무로그인, 상점, 결제, 랭킹 API이동/전투/스킬/동기화

단순화의 함정

  • "웹서버는 무조건 요청-응답만 가능"은 과도 단순화입니다.
  • WebSocket/SSE/Long Polling을 쓰면 웹 계열도 서버 푸시가 가능합니다.
  • 다만 실시간 게임 로직은 상태 동기화/지연 요구 때문에 전용 게임 서버 구조가 여전히 유리합니다.

용어 재정의

용어실무 해석
Stateless요청마다 독립 처리(필요 시 외부 저장소로 상태 조회)
Stateful연결/세션/월드 상태를 메모리에서 지속 관리

웹 서버가 잘하는 일

적합한 업무

  • 인증/계정 관리, 결제/주문, 공지/랭킹 조회, 로그 수집 API
  • 캐시/CDN/로드밸런서 등 웹 생태계 활용이 쉬운 업무
  • 요청 단위 멱등 처리와 확장(Scale-out)이 중요한 업무

장점

장점설명
운영 성숙도프록시, 캐시, 모니터링 도구가 풍부
확장성수평 확장 패턴이 비교적 표준화
생태계인증/결제/관측 도구 연동이 쉬움

한계

  • 실시간 프레임 동기화 같은 고빈도 상태 갱신에는 구조적 부담이 큽니다.
  • 클라이언트별 지속 세션 상태를 웹 계층만으로 처리하면 복잡도가 급증합니다.

게임 서버가 잘하는 일

적합한 업무

  • 플레이어 위치/행동/전투 판정
  • 룸/채널/월드 상태 유지
  • 서버 권한(authoritative) 기반 게임 규칙 적용

장점

장점설명
지속 연결서버->클라 푸시와 빠른 상태 전파에 유리
상태 일관성세션/월드 상태를 한 컨텍스트에서 관리 가능
실시간성지연 민감 로직에 맞춘 전용 설계 가능

비용

  • 상태 관리, 샤딩, 장애 복구, 동기화 전략까지 직접 설계해야 합니다.
  • 웹 API 서버보다 운영 난도가 높을 수 있습니다.

실무 정답: 하이브리드 아키텍처

역할 분담 예시

도메인권장 계층
로그인/인증, 결제, 상점, 랭킹 조회웹/API 서버
이동/전투/스킬/매치 실시간 동기화게임 실시간 서버
로그/분석/배치백엔드 데이터 파이프라인

연결 포인트

  • 웹 계층에서 발급한 인증 토큰을 게임 서버 세션과 매핑
  • 결제/상점 결과를 이벤트나 RPC로 게임 상태에 반영
  • 공통 계정 ID를 키로 여러 시스템 상태를 정합성 있게 연결

운영 관점

  • 웹과 게임 서버를 분리하면 배포/스케일/장애 대응 전략을 독립적으로 가져갈 수 있습니다.

브로드캐스팅 용어 정리

네트워크 브로드캐스트

  • L2/L3 브로드캐스트는 같은 네트워크 구간의 다수 호스트에 뿌리는 전송 방식입니다.

게임 브로드캐스트

  • 게임에서 말하는 브로드캐스트는 보통 "관심 대상(시야/존) 플레이어 목록에 개별 전송"입니다.
  • 즉, 실제 네트워크 브로드캐스트와 동일 개념이 아닙니다.

실무 의미

  • 관심영역(AOI) 기반 fan-out 최적화가 성능 핵심입니다.

강의 시 유의사항

강조 포인트

  • 웹 vs 게임을 "누가 우월한가"가 아니라 "업무 분리" 관점으로 설명하세요.
  • WebSocket/SSE를 언급해 단순 오해를 줄이되, 실시간 게임 요구와의 차이를 분명히 하세요.
  • 하이브리드 구조가 왜 현실적인지(운영/확장/장애 대응)까지 연결하세요.

자주 하는 오해

오해바로잡기
웹서버는 서버 푸시가 절대 불가능WebSocket/SSE 등으로 가능하나 목적과 비용이 다름
게임 서버는 모든 기능을 다 가져야 한다인증/결제/랭킹 등은 웹 계층 분리가 일반적
브로드캐스트=UDP 브로드캐스트게임 브로드캐스트는 관심 대상 개별 전송

체크 질문 (스스로 답해보기)

  • 왜 결제/상점은 웹 계층으로 분리하는 경우가 많은가?
  • 실시간 위치 동기화는 왜 게임 서버 계층에 두는가?
  • WebSocket을 쓸 수 있어도 별도 게임 서버가 필요한 이유를 설명할 수 있는가?

profile
李家네_공부방

0개의 댓글