게임 · 심화
잡 시스템에 워커 스레드 수를 늘리고 작업을 병렬화했는데 프레임 시간이 거의 줄지 않았습니다. 어떤 원인들을 의심하고 어떤 지표로 확인하시겠어요?
힌트 · 스레드 타임라인으로 워커 점유율과 메인 스레드 대기 구간을 먼저 보고, 잡 단위 크기·의존성 체인·락 경합·메모리 대역폭 같은 후보를 나눠 설명하세요.
스레드 타임라인 프로파일링잡 단위(granularity)동기화·락 경합메인 스레드 병목암달의 법칙
모범답안
먼저 스레드 타임라인 프로파일링으로 워커가 실제로 일하고 있는지, 아니면 메인 스레드가 기다리고 있는지부터 봅니다. 흔한 원인은 세 가지입니다. 첫째, 잡 단위가 너무 잘게 쪼개져 스케줄링·동기화 오버헤드가 작업 시간보다 큰 경우. 둘째, 잡 사이 의존성 체인이 길어 결국 직렬 구간이 남는 경우로, 병렬화되지 않는 구간이 한계를 정합니다. 셋째, 공유 자료구조에 락이 걸려 경합하거나 렌더 커맨드 생성처럼 메인 스레드에서만 가능한 일이 남아 있는 경우입니다. 확인 후에는 잡 크기를 키우고 의존성을 줄이며, 공유 쓰기를 스레드별 버퍼로 분리해 병합하는 방향으로 손보겠습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 게임 개발 면접 질문
- 서버 권위 구조로 만든 대전 게임에서 '특정 유저가 비정상적으로 빠르게 이동한다'는 제보가 들어왔습니다. 스피드핵 여부를 어떤 순서로 검증하고, 서버에 어떤 방어를 넣으시겠어요? 검증에 드는 비용도 함께 고려해 말씀해 주세요.
- 수만 명이 접속하는 온라인 게임에서 로그인·매치메이킹·세션 서버와 실제 플레이를 처리하는 게임 서버를 분리하는 이유는 무엇인가요? 게임 서버가 플레이 상태를 메모리에 들고 있는 구조에서 확장(스케일 아웃)과 장애 대응을 어떻게 설계하시겠어요?
- 입력 동기화(락스텝) 기반 게임에서 저장한 리플레이가 초반 구간은 정확히 재현되는데 몇 분 지나면 결과가 어긋납니다. 결정론이 깨지는 원인을 어떤 순서로 좁혀 나가시겠어요?
- 라이브 서비스 중 핫픽스를 배포했는데 일부 유저에게서만 텍스처가 깨지거나 특정 콘텐츠 진입 시 크래시가 난다는 제보가 옵니다. 에셋 번들 버전 관리 관점에서 어떤 원인을 의심하고 어떤 순서로 대응하시겠어요?
- 크래시 리포트 대시보드에 재현이 안 되는 크래시가 낮은 빈도로 꾸준히 올라오고, 콜스택은 엔진 내부에서 끊겨 있습니다. 어떻게 접근해서 원인을 좁혀 나가시겠어요?
- 클라이언트 예측을 적용한 액션 게임에서 평소에는 부드럽게 움직이는데, 특정 상황에서만 내 캐릭터가 뒤로 순간이동하듯 튕기는 고무줄 현상이 보고됐습니다. 원인을 어떻게 추정하고 어떤 방향으로 개선하시겠어요?