
게임 회사 프로그래머 채용에서는 코딩 테스트와 함께 직접 만든 프로젝트를 봅니다. 수업 중에 자료구조와 알고리즘 문제를 꾸준히 풀고, 동시에 캐릭터 조작, 물…
과제 코드와 포트폴리오 코드는 다르게 봐야 합니다
컴퓨터공학이나 게임공학 전공 대학생은 과제로 만든 코드가 많습니다. 하지만 과제는 정해진 요구 사항을 채우는 데 목적이 있어서, 그대로 모으면 '시키는 것을 할 수 있는 사람'으로만 보이기 쉽습니다. 포트폴리오는 스스로 목표를 정하고, 구조를 설계하고, 문제를 해결한 과정을 보여 줘야 합니다.
평가자는 실행 결과뿐 아니라 코드도 봅니다. 클래스와 함수가 역할별로 나뉘어 있는지, 이름만 보고도 무엇을 하는지 알 수 있는지, 같은 코드가 여기저기 복사되어 있지 않은지를 확인합니다. 기능이 많은 프로젝트보다 구조가 깔끔한 프로젝트가 더 좋은 인상을 주는 경우가 많습니다.
과제 중에서도 자료구조나 그래픽스 수업처럼 깊이 있는 과제는 보조 자료로 쓸 수 있습니다. 다만 중심은 게임 프로젝트여야 합니다.
개인 프로젝트와 팀 프로젝트, 각각 보여 줄 것
개인 프로젝트는 혼자서 처음부터 끝까지 구조를 설계하고 완성할 수 있다는 증거입니다. 규모는 작아도 괜찮지만 시작 화면, 플레이, 결과 화면, 저장과 불러오기처럼 하나의 게임으로서 완결되어 있어야 합니다. 캐릭터 조작, 카메라, 충돌 처리, UI 연결, 간단한 적 AI 같은 클라이언트의 기본 요소가 고르게 들어가면 좋습니다.
팀 프로젝트는 협업 능력을 보여 줍니다. 기획자, 아티스트와 함께 만든 경험, 버전 관리 도구로 다른 사람과 코드를 합쳐 본 경험은 실무와 직접 이어집니다. 팀 프로젝트를 정리할 때는 내가 구현한 기능을 분명히 표시하고, 다른 사람의 코드와 내 코드가 어떻게 연결되었는지 설명하세요.
여유가 있다면 엔진 없이 그래픽 라이브러리로 만든 작은 프로젝트를 더해도 좋습니다. 엔진이 대신 해 주던 게임 루프와 렌더링을 직접 다뤄 봤다는 것은 기초 이해를 보여 주는 자료가 됩니다.
프로젝트마다 정리할 자료
- 플레이 영상: 핵심 기능이 앞부분에 나오도록 짧게 편집
- 실행 빌드: 다른 컴퓨터에서도 바로 실행되는지 확인한 파일
- 소스 코드 저장소: 커밋 기록이 남아 있는 버전 관리 저장소 주소
- 구조도: 주요 클래스와 시스템이 어떻게 연결되는지 그린 그림
- 기능 설명: 핵심 기능 몇 가지의 구현 방식과 그 이유
- 문제 해결 기록: 막혔던 버그나 성능 문제와 해결 과정
이 중 문제 해결 기록이 특히 중요합니다. '캐릭터가 빠르게 움직이면 벽을 통과하는 문제를 충돌 검사 방식을 바꿔 해결했다', '적이 많아지면 프레임이 떨어져 오브젝트를 재사용하는 방식으로 바꿨다'처럼 구체적인 사례는 면접에서도 그대로 질문으로 이어집니다. 해결 전후의 차이를 수치나 영상으로 보여 주면 더 좋습니다.
구조도는 복잡할 필요가 없습니다. 입력, 캐릭터, 전투, UI, 데이터 관리처럼 큰 덩어리를 상자로 그리고 화살표로 관계를 표시하는 정도면 충분합니다. 이 그림 한 장이 코드 전체를 읽지 않아도 설계 방향을 이해하게 해 줍니다.
학기별로 포트폴리오와 코딩 테스트를 병행하는 순서
- 학기 중: 자료구조와 알고리즘 문제를 꾸준히 풀며 코딩 테스트 기초 쌓기
- 학기 중: 엔진 하나를 정해 작은 기능 단위 실습 반복하기
- 방학: 개인 프로젝트 하나를 기획부터 완성까지 진행하기
- 다음 학기: 팀 프로젝트나 졸업 작품에서 클라이언트 핵심 기능 맡기
- 다음 방학: 개인 프로젝트를 리팩터링하고 문제 해결 기록과 구조도 정리하기
- 졸업 학기: 두 프로젝트의 자료를 다듬고 코딩 테스트 실전 연습에 집중하기
리팩터링은 동작은 그대로 두고 코드 구조를 더 깔끔하게 고치는 작업을 말합니다. 처음 만든 코드를 몇 달 뒤에 다시 보면 고칠 곳이 많이 보이는데, 이 과정을 기록해 두면 성장 과정을 보여 줄 수 있습니다. 코딩 테스트는 짧은 시간에 늘지 않으므로 학기 중에 조금씩 꾸준히 하는 것이 효과적입니다.
대학생 포트폴리오에서 감점되기 쉬운 부분
가장 흔한 문제는 강의나 튜토리얼을 따라 만든 게임을 그대로 올리는 것입니다. 평가자는 유명한 튜토리얼 결과물을 쉽게 알아봅니다. 튜토리얼로 시작했더라도 나만의 기능을 더하고 구조를 바꿔, 무엇을 직접 했는지 분명히 해야 합니다.
두 번째는 실행되지 않는 빌드와 정리되지 않은 저장소입니다. 빌드가 실행되지 않거나 저장소에 설명이 하나도 없으면 아무리 좋은 프로젝트도 제대로 평가받기 어렵습니다. 저장소 첫 화면에 프로젝트 소개, 실행 방법, 사용 기술, 내가 맡은 부분을 정리해 두세요.
세 번째는 커밋 기록이 한두 번뿐인 경우입니다. 작업을 꾸준히 나눠 기록해 두면 개발 과정이 자연스럽게 드러납니다.
졸업 학기에 다듬을 것
졸업 학기에는 새 프로젝트를 시작하기보다 기존 두 프로젝트의 완성도를 높이는 데 집중하세요. 지원 회사가 쓰는 엔진과 언어를 확인해 그에 맞는 프로젝트를 앞에 두고, 기능 설명 문서를 짧고 읽기 쉽게 다듬는 것이 좋습니다. 면접에서 코드를 보며 질문받을 수 있으니, 내가 짠 코드의 핵심 부분은 다시 읽어 두세요.
프로젝트는 몇 개 있는데 무엇을 중심에 둬야 할지, 코드 정리가 실무 기준에 맞는지 확인이 필요하다면, SBS아카데미게임학원 게임프로그래밍 과정 상담에서 지금의 저장소와 빌드를 함께 보며 졸업 전까지의 보완 순서를 정할 수 있습니다.
자주 묻는 질문
포트폴리오 프로젝트는 2D와 3D 중 어느 쪽이 좋을까요?
어느 쪽이든 구조와 완성도가 더 중요합니다. 지원 회사가 3D 게임을 주로 만든다면 3D 프로젝트를 하나 포함하는 것이 유리합니다.
학점이 낮으면 포트폴리오로 만회할 수 있나요?
게임 회사는 포트폴리오와 코딩 테스트 비중이 큰 경우가 많아 충분히 보완할 수 있습니다. 다만 전공 기초 지식은 면접에서 확인되므로 핵심 과목 내용은 다시 정리해 두는 것이 좋습니다.
가까운 캠퍼스에서 게임프로그래밍 알아보기
사는 곳과 가까운 캠퍼스를 고르면 수업 내용, 오시는 길, 상담 신청을 한 번에 볼 수 있습니다.