크래프톤 정글 게임테크랩 3기 합격했습니다.


email

합격했습니다.

근 한 달간은 정말 이 크래프톤 정글 게임테크랩 입학과정에 매진 한 것 같습니다.
하도 매진했다보니 지금은 괜시리 힘이 빠지네요ㅎㅎ;

크래프톤 정글의 “게임테크랩"은 출범된지 얼마 안 된 교육이다보니 인터넷에 정보가 거의 없어서 저는 몇 안되는 글들만으로 추정해나가면서 불안감을 가득 안고 공부를 했었는데요, 다음 기수 준비하는 분들은 저보다는 좀 덜 불안하셨으면 좋겠다는 마음으로 글을 작성해보려고 합니다. 공식적인 정보들보다는 지원자 입장에서 실질적으로 도움될 만한 정보들 위주로 작성하겠습니다. 다소 주관적임을 양해바랍니다.

입학과정은 다음과 같은 과정으로 이루어집니다.

  1. 지원서 작성
  2. 사전학습
  3. 입학시험
  4. 면접

아래는 제 개인적인 생각입니다.

1. 지원서 / 입학시험

지원서와 입학시험에서 제출한 코드의 영향은 꽤 큰 것 같습니다.

저같은 경우 면접을 보고 매우 아쉬움이 남았었습니다. 예상하지 못한 스타일의 면접에 당황해 실수도 몇 했거니와, 개인의 기량을 양껏 뽐낼(?) 기회가 있지 않았기에 제 능력을 다 발휘하지 못했다고 생각했기 때문입니다. (물론 뽑힌 것을 보면 평균은 한 것 같습니다.)

그런데도 선발된 것을 보면 지원서와 입학시험 코드 영향이 아니었을까 싶습니다.

지원서

저는 지원서의 “프로젝트 소개” 문항에 “시스템 프로그래밍 / 성능 및 자원 관리"를 소제목으로 2건, “컴퓨터 그래픽스"를 소제목으로 3건의 프로젝트를 소개해두었는데요, 사실 이 두 소제목에 해당하는 역량이 프로그램 운영 측에서 지원자에게 제일 원하는 역량이었을 것입니다.
소개한 프로젝트 중 하나는 다음과 같습니다:

CPP containers (C++98)
https://github.com/Yonaim/cpp-containers

C++ STL 핵심 컨테이너 3종(vector, map, stack)과 vector의 specialization 구현을 C++98 환경에서 재구현한 개인 프로젝트입니다. 표준(std)과의 입출력 정합성을 맞추는 동시에, 오픈소스(주로 GCC libstdc++ 구현체)를 읽고 설계 의도를 추적하는 연습을 했습니다. 구현 과정에서 SFINAE 기반 오버로드 분기와 EBO(Empty Base Optimization)를 활용한 컴파일 타임 최적화를 익혔고, exception-safety guarantee와 같은 라이브러리 수준의 보장 개념을 체득하고 구현할 수 있게 되었습니다. 특히 vector 특수화를 구현하며 동일한 기능이라도 자원의 특성에 따라 최적화 여지가 크게 달라진다는 점을 실감했고, 문제 상황을 정확히 분석한 뒤 그에 맞는 설계를 선택하는 것이 매우 중요함을 알게 됐습니다.

(간략하게 쓰려고 세부 유틸 구현들에 대한 설명은 뺐는데 지금 생각해보니 allocator 정도는 넣었으면 더 좋았을 것 같군요.)

다른 문항들은 지원자의 열의나 기본적인 협동심을 확인하기 위한 문항들이라고 여겨져서 이 “프로젝트 소개” 문항에 좀더 힘을 주어 작성했었습니다. 공식 홈페이지에서든 설명회에서든 공통적으로 강조하는 역량 중 하나가 “C++“인데요, 그래서 아마 제가 소개한 다섯 개의 프로젝트들 중 제일 결정적으로 작용했을게 이 프로젝트 아니었을까싶네요.

입학시험 코드

아쉽게도 보안 원칙상 시험에 대한 구체적인 내용은 말씀드릴 순 없습니다만, 일단 “모두가 같은 구현 요구사항 하에” 코드를 작성합니다. (시험이니까 어찌보면 당연하죠?)
요구된 구현사항 이상의 추가적인 구현도 참가자 개개인별로 가능합니다만, 제 개인적인 생각으로는 “얼마나 많은 것을, 화려하게 구현했냐"보다는 “원칙을 준수하여 안전하고 탄탄한 코드를, C++스럽게 잘 작성했는가“가 훨씬 중요합니다.

즉 생각없이 생성형 AI를 사용하는 행위는 딱히 합격 가능성을 높이는데 도움이 되지 않는다는 것입니다.
사실 주제에 비해 주어진 시험 시간이 꽤 빡빡하기에 AI는 사용하게 될 수밖에 없습니다(공식적으로 허용합니다. 개발자의 AI 활용이 요즘 트렌드니깐 막는게 더 이상하기도 하죠).
그러나 생각없는 AI 사용은 코드 퀄리티에서 티가 납니다. 구현 자체는 잘 됐겠지만 “게임 엔진"에 들어갈 만한 코드는 아닐겁니다.

전 C/C++만을 원툴로 잘 다루는(…) 사람이고 이게 제가 어필할 수 있는 강점이라고 생각하기에 입학시험 코드도 그 측면에서 세심하게 작성할 수 있도록 노력했는데요, 아마 여기서 좋은 평가를 받았지 않았을까 싶네요.

C++ 이외에도 수학, 물리 등의 지식을 평가하는 것 같습니다만 사실 구현물만 문제 없으면 수학, 물리쪽에서는 문제가 없을 것이고 아마 지원자별로 편차가 제일 클 항목은 C++ 역량이라고 생각합니다.

2. 면접(인터뷰) 형식

1, 2기 후기를 보고 엄청나게 어려운 난이도를 상상했는데 생각보다 그렇진 않았습니다… 오히려 너무 기초적인 것들만 물어보신게 아닌가 생각이 들었는데요, 아마 1,2기 인터뷰의 반응을 보고 난이도를 조정하신 것으로 추정합니다.

다음 기수부터는 또 어떻게 난이도를 조정하실지 몰라서 제가 감히 관련해 말씀드릴 수는 없을 것 같습니다만 확실히 알려드릴 수 있는 건 있습니다.
바로 면접 형식인데요, 크래프톤 정글 공식 홈페이지에 정보가 있습니다.

  1. “공지사항"에서 게임테크랩 인터뷰 안내를 확인하세요. (눈에 띄는 굵고 빨간 글씨가 있습니다.)
  2. “정글 소식>정글 스토리"에서 게임테크랩과 관련된 모든 글을 확인하세요.

면접에 대한 내용은 고작해야 몇 줄뿐입니다만 이거라도 알고가면 조금이라도 덜 당황하실 수 있으실 겁니다. (그래도 당황스럽긴해요…ㅠ)
(직접적으로 적기엔 곤란하니 이렇게라도… 공식 홈페이지에 나와있는 내용을 안내하는 것뿐이니까 저는 무죄입니다. 하하)

3. 저의 공부 방향

(*어디까지나 참고사항으로써 올리는 것으로, 개인의 현재 역량에 알맞게 수정하는 것을 추천)

  • 학습자료 모두를 빠짐없이 읽고 공부했습니다 (지나치게 지엽적인 부분만 제외)
  • 사전학습 프로젝트를 베이스로 이리저리 구현/실험해서 응용해봤습니다
  • CS 지식을 전체적으로 복습하되, ‘기초 단계의 엔진’에서 필요할 내용을 특히 꼼꼼히 봤습니다
  • CS 지식을 단순히 앎에 그치는 것이 아니라 코드와 직접 연관하여 사고했습니다 (특히 비용적 측면)
  • C++의 여러 기능(virtual, reference 등)의 구현 원리와 비용을 복습했습니다
  • 물리가 엄청 약해서… 물리 공부를 열심히 했습니다. (손계산도 꽤 연습했습니다.)

마치며

이상입니다.
저 개인적으로는 이번 입학 과정을 준비하면서 꽤 성장한 것 같아서, 떨어져도 후회는 없겠다싶었는데 이렇게 합격하게 되니 더할 나위없이 기쁘네요. (아싸 휴학한다~)
비록 면접 난이도가 예상했던 것과는 조금 달랐습니다만… 오랜만에 깊이 있게 공부한 것 같아 오히려 좋습니다.

게임테크랩 입학을 위해 이 글을 읽으신 분들 모두 건승하시길 바랍니다.


PS. 지원서를 작성할 때 추천인 코드를 넣으면 가산점이 있다고 하는데 저는 없이도 합격했으니 너무 신경은 안 쓰셔도 될 것 같습니다.

comments