우문현답
愚 問 賢 答
회사별 면접직군별진행 방식
    홈›회사별›컨트롤나인›게임 개발 일반›질문 상세
    問
    컨컨트롤나인게임 개발 일반직무 역량2026년 출제

    C++로 객체지향 프로그래밍을 할 때, 어떤 패턴을 주로 사용하고 그 이유는 무엇인가요?

    답변 미리보기

    C++로 게임 시스템을 개발할 때 가장 자주 활용한 패턴은 컴포넌트 기반 설계와 옵저버 패턴입니다. 수업 프로젝트에서 캐릭터 행동을 이동, 전투, 애니메이션…

    예상 답변 시간
    60~90초
    예상 꼬리질문
    3회
    난이도
    난이도 중상
    출제 빈도
    높음
    INTERVIEWER'S INTENT · 면접관의 의도

    이 질문, 네 갈래로 뜯어봅니다.

    면접관이 이 한 문장으로 확인하려는 것들. 각 갈래를 알면 답의 뼈대가 잡혀요.

    問
    01
    어떤 패턴을 쓰는가?
    본인이 자주 쓰는 패턴과 보조로만 본 결을 가른 답이 강한 결로 통합니다. 이름 나열만 적은 답은 깊이가 얕은 자리입니다.
    骨
    02
    왜 그 패턴인가?
    작업 목적과 패턴 선택을 연결한 흔적이 답에 나타납니다. 단순 친숙함만 적은 답은 의도가 흐릿한 결입니다.
    語
    03
    본인 손에 쥔 결은 무엇인가?
    본인이 직접 한 자리와 학습으로만 안 결을 가른 답이 강합니다. '안다'로만 묶은 답은 검증 자리가 빈 자리입니다.
    本
    04
    한계도 함께 짚는가?
    패턴이 닿지 못하는 자리를 인정한 답이 통합니다. 모두 풀린다는 답은 시야가 좁은 결입니다.
    말로 해봐야 는다
    읽는 것과 말하는 건 다릅니다.
    이 질문, 소리 내어 답해 볼까요?
    컨트롤나인 면접관 페르소나가 이 질문을 던지고, 당신의 답에 꼬리질문으로 되물어요.
    음성으로 답해보기
    경험 기반 솔직한 접근약 90초실패 경험 회고약 120초낯선 역할 코드 리뷰 제공 시점약 150초
    예시 답변 1
    약 90초

    경험 기반 솔직한 접근

    C++로 게임 시스템을 개발할 때 가장 자주 활용한 패턴은 컴포넌트 기반 설계와 옵저버 패턴입니다. 수업 프로젝트에서 캐릭터 행동을 이동, 전투, 애니메이션 컴포넌트로 분리해 독립 수정이 가능하도록 설계했습니다. 상속보다 합성을 선호하는 방향이 코드 재사용성과 유지보수성을 동시에 높인다는 것을 경험했습니다. 옵저버 패턴은 이벤트 기반 시스템 — 체력 감소 시 UI 업데이트, 사망 시 트리거 — 에 활용해 결합도를 낮췄습니다.

    게임 루프 최적화를 위해 불필요한 객체 생성을 줄이고 오브젝트 풀링도 적용했습니다. 패턴은 도구이고 문제를 먼저 이해한 후 적합한 패턴을 선택하는 것이 더 중요하다고 생각합니다.

    이 결의 특징
    컴포넌트 기반 설계로 이동·전투·애니메이션을 분리하고 옵저버 패턴으로 체력 감소·사망 이벤트를 처리한 구체적 사례가 담긴 흔적이 있습니다. '상속보다 합성', '문제를 먼저 이해한 후 패턴을 선택'이라는 감각이 경험으로 뒷받침된 결이 자주 보입니다.
    이 결이 통하는 자리
    오브젝트 풀링 적용 이유가 GC 스파이크 방지라는 구체적 목적으로 연결되고, 패턴 선택의 근거가 문제 분석에서 나온 것임이 드러날 때 통합니다. 도구로서의 패턴 감각이 살아 있는 자리에서 면접관의 꼬리질문이 줄어드는 결이 보입니다.
    예시 답변 2
    약 120초

    실패 경험 회고

    C++ 프로젝트에서 패턴 없이 구현하다 상속 구조가 무너진 경험이 있습니다. 기능이 추가될 때마다 기존 클래스를 수정하면서 결합도가 높아져 테스트 하나를 바꾸면 연관된 클래스 여러 개가 영향을 받는 구조가 됐습니다. 기능 추가가 두려워지는 시점에 설계의 경직성이 생산성을 막는다는 것을 처음 실감했습니다. 이후 Strategy 패턴을 적용해 변하는 부분을 인터페이스 뒤로 분리하고, 기존 클래스는 그 인터페이스만 알도록 재구조화했습니다. 같은 기능이라도 교체와 확장이 쉬운 구조로 만드는 것이 설계의 목적이라는 것을 배웠습니다.

    코드 품질은 현재 동작이 아니라 변경 용이성으로 판단해야 한다는 원칙이 이 경험에서 생겼습니다. 지금은 클래스 설계 전 변경 가능성이 높은 부분을 먼저 분리합니다.

    이 결의 특징
    기능 추가 때마다 기존 클래스를 수정하면서 결합도가 높아져 테스트 하나를 바꾸면 연관 클래스 여러 개가 영향받는 구조를 직접 경험한 흔적이 있습니다. Strategy 패턴으로 변하는 부분을 인터페이스 뒤로 분리해 재구조화한 결이 자주 보입니다.
    이 결이 통하는 자리
    코드 품질을 현재 동작이 아닌 변경 용이성으로 판단해야 한다는 원칙이 '기능 추가가 두려워지는 시점'이라는 구체적 전환점에서 나왔을 때 통합니다. 설계 경직성이 생산성을 막는다는 인식이 살아 있는 자리에서 면접관의 꼬리질문이 줄어드는 결이 보입니다.
    예시 답변 3
    약 150초

    낯선 역할 코드 리뷰 제공 시점

    팀원의 C++ 코드를 처음으로 리뷰하는 역할을 맡으면서 본인 코드의 패턴을 설명하는 것과 남의 코드에서 패턴을 읽는 것이 다르다는 것을 경험했습니다. 리뷰 대상 코드가 작동하지만 어떤 설계 원칙으로 구조화됐는지 파악하기 어려워서 개선 제안을 만들기가 쉽지 않았습니다.

    코드는 기능을 말하지만 설계 의도는 문서와 네이밍이 말한다는 것을 그때 이해했습니다. 이후 클래스명과 메서드명에 적용한 패턴 의도를 드러내는 네이밍 가이드를 팀 문서에 추가하고 본인 코드에도 적용했습니다. 리뷰를 받는 것보다 리뷰를 하는 경험이 본인 코드 설계 기준을 더 명확하게 만든다는 것을 배웠습니다.

    좋은 코드 리뷰어는 더 좋은 코드 설계자라는 것이 이 경험의 핵심이었습니다. 지금은 코드 작성 시 리뷰어 눈으로 미리 읽어보는 습관을 유지합니다.

    이 결의 특징
    남의 코드를 리뷰할 때 설계 의도를 파악하기 어렵다는 경험을 통해 '클래스명·메서드명에 패턴 의도를 드러내는 네이밍'을 팀 문서에 추가한 흔적이 있습니다. 리뷰를 하는 경험이 본인 설계 기준을 더 명확하게 만든다는 역방향 통찰이 담긴 결이 자주 보입니다.
    이 결이 통하는 자리
    코드는 기능을 말하지만 설계 의도는 문서와 네이밍이 말한다는 인식이 리뷰 역할에서 나왔을 때 통합니다. 좋은 리뷰어가 더 좋은 설계자가 된다는 결론이 낯선 역할 경험으로 뒷받침된 자리에서 면접관의 꼬리질문이 줄어드는 결이 보입니다.
    !
    위 답변은 여러 풀이 중 한 가지 예시입니다. 정답이 아니며, 외워서 그대로 말하면 면접관이 다음 질문을 그 자리에서 시작하는 경우가 많습니다. 본인의 프로젝트·기준·숫자로 다시 짜는 자리로만 쓰세요.
    ✕자주 빠지는 자리

    같은 실수가 반복돼요. 이것만 피해도 절반은 갑니다.

    • ✕떨어뜨린 옵션이 1개라도 있는가? "이게 답이었어요"만으로는 의사결정이 아니라 그냥 선택입니다.
    • ✕선택 기준이 그 프로젝트에 한정되는가? "성능이 좋아서"는 일반론, "우리 트래픽이 X 패턴이라서"가 본인의 답입니다.
    • ✕결과 숫자 1개를 정확히 말할 수 있는가? P95·QPS·적중률 — 무엇이든 1개. 숫자가 없으면 직감으로 한 일처럼 들리기 쉽습니다.
    • ✕지금 다시 한다면 어떻게 할지 답할 수 있는가? "잘했다"보다 "이건 다르게 했을 것 같다"가 더 깊은 인상을 남깁니다.
    ▶이어질 꼬리질문

    진짜 면접은 두 번째 질문부터예요. 이 답 뒤에 따라올 법한 것들.

    壹본인 적용이 빗나간 경험은 없었나요?
    貳다른 패턴이 더 적합했을 자리는 없었나요?
    參지금 가장 약한 결은 어디라고 보시나요?
    이제, 직접 답해볼 차례예요.
    눈으로 읽은 답은 면접장에서 나오지 않아요. 컨트롤나인 면접관과 이 질문으로 한 번 대화해 보세요.
    이 질문으로 모의면접 해보기
    또는, 다음 질문으로

    같은 흐름에서 자주 이어지는 질문들이에요.

    에피드게임즈 · 게임 클라이언트
    C#과 객체지향 프로그래밍(OOP)에 대한 이해도를 구체적으로 어떻게 증명할 수 있나요?
    이 질문 보기
    이스트소프트 · 보안 엔지니어
    Modern C++(C++11 이상) 문법을 사용할 때 어떤 점을 가장 중요하게 생각하나요?
    이 질문 보기
    삼성전자 · 임베디드·펌웨어
    C/C++ 프로그래밍 경험에 대해 구체적으로 설명해 줄 수 있나요?
    이 질문 보기
    안내 · 이 페이지의 질문·답변·꼬리질문은 유사 직군 채용 시장의 공개된 면접 후기·커뮤니티 게시물을 분석해 구성한 학습 자료입니다. 실제 출제·회사 공식 입장과는 무관하며, 정정 요청 시 24시간 내 반영합니다. 자세히
    개인정보처리방침이용약관문의
    © 2026 우문현답. All rights reserved.
    이 페이지 목차
    01면접관의 의도02답변의 결03실수·꼬리질문04관련 질문
    말로 해봐야 는다
    이 질문, 컨트롤나인 면접관과
    음성으로 답해볼까요?
    모의면접 해보기
    첫 회 무료 · 종료 즉시 음성 폐기