게임 · 심화
서버 권위 구조로 만든 대전 게임에서 '특정 유저가 비정상적으로 빠르게 이동한다'는 제보가 들어왔습니다. 스피드핵 여부를 어떤 순서로 검증하고, 서버에 어떤 방어를 넣으시겠어요? 검증에 드는 비용도 함께 고려해 말씀해 주세요.
힌트 · 클라이언트 입력·위치를 신뢰하지 않는 검증(속도 상한, 서버 시계 기준 경과 시간)과, 로그·통계 기반 탐지, 그리고 전수 검증 대신 샘플링으로 비용을 조절하는 판단을 함께 말하면 좋습니다.
서버 권위이동 속도 검증서버 시계/타임스탬프위치 보정(클램프)통계 기반 탐지
모범답안
먼저 서버가 실제로 이동을 검증하고 있는지부터 확인합니다. 서버 권위라면 클라이언트가 보낸 위치를 그대로 반영하지 않고, 서버 시계 기준 경과 시간에 최대 이동 속도를 곱한 허용치와 비교해 초과분을 잘라내야 합니다. 진단은 로그로 합니다. 계정별 단위 시간당 이동 거리, 전송 입력 틱 수 분포를 뽑아 지연이나 패킷 몰림으로 생기는 정상 편차와 구분하고, 누적 초과량이 계속 한쪽으로 쌓이는 계정을 플래그합니다. 다만 매 틱 전체 경로를 재시뮬레이션하는 검증은 CPU 비용이 크므로, 가벼운 속도 상한 검증은 상시로 두고 충돌·경로 재검증은 의심 계정이나 샘플링으로 제한해 비용을 조절하겠습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 게임 개발 면접 질문
- 위치 보간에는 Lerp를, 회전 보간에는 Slerp를 쓰라는 이야기를 하는데 그 이유가 무엇인지 설명해 주시고, 매 프레임 Lerp를 호출해 목표값을 따라가게 만드는 코드의 주의점도 말씀해 주세요.
- 실내 스테이지의 조명을 구성할 때 라이트맵을 구워 쓰는 방식과 실시간 조명을 쓰는 방식의 트레이드오프를 설명해 주세요. 동적으로 움직이는 캐릭터는 어떻게 처리하나요?
- 넓은 필드에 나무와 건물이 많은 맵에서 LOD를 적용한다면 어떤 기준으로 단계를 나누시겠어요? LOD가 줄여주는 비용과 부작용도 함께 설명해 주세요.
- 수만 명이 접속하는 온라인 게임에서 로그인·매치메이킹·세션 서버와 실제 플레이를 처리하는 게임 서버를 분리하는 이유는 무엇인가요? 게임 서버가 플레이 상태를 메모리에 들고 있는 구조에서 확장(스케일 아웃)과 장애 대응을 어떻게 설계하시겠어요?
- 입력 동기화(락스텝) 기반 게임에서 저장한 리플레이가 초반 구간은 정확히 재현되는데 몇 분 지나면 결과가 어긋납니다. 결정론이 깨지는 원인을 어떤 순서로 좁혀 나가시겠어요?
- 잡 시스템에 워커 스레드 수를 늘리고 작업을 병렬화했는데 프레임 시간이 거의 줄지 않았습니다. 어떤 원인들을 의심하고 어떤 지표로 확인하시겠어요?