회사/면접

[NDC] 넥슨 신입 게임 프로그래머가 되는 법

셩잇님 2020. 8. 13. 20:49
반응형

 

 

신입 게임 프로그래머가 되는법 - 넥슨 채용 프로세스 단계별 분석

 

목차

1. 발표를 하게 된 이유

생략

 

2. 게임 프로그래머 채용 프로세스

2.1. 서류 심사

2.2. 과제 심사 (온코테)

2.3. 직군 면접

2.4. 팀 면접

2.5. 인사 면접

 

2.1. 서류 심사는 크게 1. 이력서와 자기소개서, 2. 포트폴리오 나누어짐

2.1.1.1 이력서 자기소개서에서 면접관이 원하는 것

2.1.1.1. 프로젝트 관련 경험

2.1.1.2. 의사 결정에 관한 경험

2.1.1.3. 지원자의 관심 분야 

 

2.1.1.1. 프로젝트 관련 경험

개인적으로 연구한 분야, 결과물

팀 프로젝트라면

주어진 과제

과제를 해결 하기 위해 사용한 기술

> 현재 팀에서 필요한 인력 수요와 교집합이 많은 지 판단하고, 채용후에 어떤 업무를 부여할수 있는지 판단하는 요소

 

예시) 퍼즐 주주 프로젝트에 두 가지 목표

1. 다양한 수요에 대응

2. 서버 비용을 최소화

위 목표를 달성하기 위해 Scale - in / out 구조로 서버를 설계, AWS EC2 Auto Scaling Group를 사용해 목표 달성

이 내용을 바탕으로 AWS를 필요할 시 채용 진행

 

2.1.1.2. 의사 경험에 관한 경험은

개인 / 팀 프로젝트에서 의사 결정을 한 경험

예시) 일정이 부족할 때, 구현이 어려운 목표가 주여졌을 때

의사 결정을 한 과정과 이유, 그로 인해 얻은 경험

> 현업에서도 비슷한 의사 결정을 통해 업무가 진행되므로 이러한 경험을 공유하는 것이 좋다.

 

2.1.1.3. 지원자의 관심 분야는

앞으로 하고 싶은 업무 분야

기술적 관심 분야

열정적인 취미 (게임 개발과 관련이 없어도 상관 없다)

> 채용 후에 지원자의 성장 모습 또한 조직에서는 중요하기 때문에 관심이 많다.

 

2.1.2 포트폴리오에서 면접관이 원하는 것

1.2.1. 지원자가 연구한 과정, 결과물

1.2.2. 팀 프로젝트에서 지원자가 기여한 부분

1.2.3. 구현 스타일, 코딩 스타일

 

면접관의 불만

1. 본인이 작업한 부분을 알기 어렵다

2. 다른 회사에서 작업한 프로젝트 소스가 온다 

3. 읽는 사람을 고려하지 않음

예) 코드파일만 있거나, 보안 정책상 실행하기 힘든 EXE, HWP, ALZ, EGG 파일 등

 

이렇게 준비하면 좋다.

본인이 작성한 코드를 읽을 수 있는 형태로 전달

1. 깃허브 프로젝트 링크

2. 오픈소스 기여한 부분에 관한 링크

3. 본인이 작업한 코드 위치와 간략한 설명

4. 시연이 가능하다면 동영상으로 준비

4.1 본인이 작업한 부분을 유튜브 영상 링크로 준비

4.2 위 작업을 구현한 코드

4.3 예) 3D 팀 프로젝트에서 카메라를 구현했다면 카메라 구현 영상을 올리고 카메라 코드를 첨부

5. 결과뿐만 아니라 과정에 대한 설명도 포함

5.1 구현을 하기까지의 작업들

5.2 시행착오를 겪은 부분

5.3. 이슈 발생시 의사 결정 과정

 

정리

자기소개서

프로젝트와 관련된 기술과 의서 결정 경험을 공유

관심 분야와 하고 싶은 롤을 표현

포트폴리오

본인이 작업한 분야를 명확하게 표현

면접관이 알아보기 편한 형태로 준비

 

2.2.1. 지원자가 연구한 과정, 결과물

2.2.2. 팀 프로젝트에서 지원자가 기여한 부분

2.2.3. 구현 스타일, 코딩 스타일

-생략-

 

2.2. 과제심사는 알고리즘 문제 해결 능력을 보기 위한 절차로써 넥슨 뿐만 아니라 다른 회사도 프로그래머를 채용하기 위해 실시, 이러한 테스트를 처음 접하면 실력 발휘가 어려우므로 연습 삼아 미리 푸는것을 추천

국내 사이트로는

1. NYPC 공개 문제(http://nypc.giyhub.io/2018/)

2. 카카오 공채 코딩테스트(http://www.welcomekakao.com/learn/challenges)

3. 백준 온라인(http://www.acmicpc.net)

해외 사이트로는 Codility, LeetCode, HackerRank 등이 있음.

 

2.3. 직군 면접

게임 프로그래머의 직군의 능력을 평가 

게임 엔진 외에 전반적인 전산학 지식을 폭넓게 요구한다.

 

상상해보기

예시) 드래곤 하운드 프로그래머라고 가정하고

기술 스택으로는 언리얼 엔진, 실버바인서버엔진2 사용

언리언 엔진으로는 그래픽스 관련 지식(3D 행렬, 카메라, 좌표계, 렌더링 파이프라인, 관련 수학 지식) 등

엔진에서 쓰이는 C++에 대한 지식(OOP의 개념(상속, 다형성, 가상함수), 템플릿, STL) 등

메모리 관련 지식(스택, 힙 메모리 풀, 스마트 포인터) 등

 

서버 실버바인서버엔진2

C#에 대한 이해 VM(GC), Generic, C# Colletion들 - List, Dictonary 등

서버에서 여러 개의 요청을 동시에 처리하기 위한 방법 Thread(Lock, DeadLock), Microthread(coroutine, fiber)

서버에서 여러 연결을 효울적으로 처리하는 방법 IOCP, epoll 등

DB에 대한 지식 트랜잭션, SQL, Stored Procedure, Nosq(redis) 등

 

게임 로직 관련으로는

서버 클라이언트 통신(TCP, UDP), 어떻게 동기화를 할 것인가?, 메시지를 어떤 방식으로 보낼것인가 (Serialization) 등

알고리즘, 자료구조

게임에 많은 데이터를 보관, 처리 하는 방법들

요구 상황마다 어떤 방식이 효율적인지 알아야 함

결론은 각각 자료구조, 알고리즘의 특징을 알아야함 

 

정리

언어(C++, C#), 그래픽스, 네트워크, 알고리즘, 자료구조, DB, 서버-클라이언트 동기화, Thread

 

왜 게임 만드는데 전산학 지식이 필요한가요?

사용하는 엔진은 몇 년 지나면 바뀔 수 있다.

엔진이 바뀌어도 기초가 되는 전산학 지식은 변하지 않음

SW 개발은 기반 기술로 쌓아 올리는 것이라 기초 지식을 모르면 잘 만들기 어렵다

 

어떻게 배우나요?

책을 추천

책은 중요도가 높은 지식을 바탕으로 요점 정리가 잘 되어 있음

추가적인 지식도 책에서 관련된 키워드를 습득해서 공부하면 좋음

책에서 습득한 지식을 기반으로 실습을 진행하여 본인의 지식으로 만드는 과정이 필요함

 

-알고리즘 

C로 배우는 알고리즘

Introduction to algorithms

 

-언어

C++ : 이펙티브 C++

C# : C# in Depth, inside C#

 

-그래픽스

DirectX 11을 이용한 3D 게임 프로그래밍 입문

Real-Time rendering

 

-면접 대비

프로그래밍 면접 이렇게 준비한다. (넥슨 직원 추천)

 

2.4. 팀 면접

팀의 방향성과 일치하는지 평가

팀마다 원하는 방향성, 인재성이 다름

채용공고, 팀 인터뷰, 게임 등을 통한 파악

파악한 팀의 방향성이 본인과 맞는지 확인

 

2.5. 인사 면접

발표자 생략

 

3. 준비 전략

2.3 직군 면접 준비가 제일 중요

이유 : 프로그래머로 업무 수행을 하기 위한 필수 지식

이는 게임 업계 뿐만 아니라 IT 업계에서도 요구하는 지식

기초지식을 쌓는 경험 도중에 잘하는 분야/관심 분야를 파악할 수 있음

 

이력서, 포폴, 팀 면접은 전문 분야를 만들어서 표현

본인이 잘하거나 흥미있는 분야를 선정

전문 분야의 경험을 만들어서 표현

연구 분야에 대한 PT, 동영상, 소스코드

오픈 소스 프로젝트 참여

완수 후 얻은 경험

 

4. 많이 받았던 질문과 답

Q1.  포폴 어떻게 준비해야 할까요?

A. 앞에서 정리해 드린 것이 답.

본인이 작업한 분야를 명확히 표현

면접관이 쉽게 확인할 수 있는 형래토 준비

 

Q2. 저는 언리얼 하는데 유니티 해야하나요? 혹은 그 반대

A. 팀마다 다르지만 엔진 경험을 선호하는 팀이 있음

직군 면접에 영향은 크지 않음

직군 면접은 게임 프로그래머의 직군의 능력을 평가하는 자리

기초적인 엔진 지식은 실무 적응에 도움이 됨 

 

Q3. 직군 면접에서 탈락했는데 포폴을 더 준비해야 할까요?

A. 직군 면접에서 탈락했으면 직군 면접을 다시 준비하는것이 좋음

직군 면접에서 탈락한 이유는 포폴의 미흡함 때문은 아님

각 단계별로 평가 기준이 다다르고 통과했다면 그 단계에 평가 기준은 통과했다고 보는것이 좋음

 

Q4. 면접에서 떨어졌습니다. 실력이 없는 것인가요? 

A. 만약 서류나 팀 면접에서 떨어졌으면 단순히 해당 팀에서 현재 필요로하는 인재상과 맞지 않을 뿐 너무 낙담하지 말것. 과제 심사나 직군 면접에서 탈락했다면 앞에 정리한 방법으로 실력을 쌓고 다시 도전 

 

5. 정리

크게 3가지를 준비

게임 개발에 필요한 전산학 지식을 습득

본인의 전문 분야를 준비하여 결과물로 표현

프로젝트 진행 중 얻은 결정 겸헝을 공유 

 

출처 : YOUTUBE NDC

 

NDC

The NDC started out as an in-house conference in 2007 to share knowledge and experience gained from the various projects being developed at Nexon. The first NDC was a small conference of only 33 presentation sessions. Yet every year it grew in size until t

www.youtube.com

 


2022.10.04 수정

 

현재 보고 계신 글은 '어디 회사 신입 게임 프로그래머 되는 법'입니다.

여기서 어디 회사는 현재 해당 글을 보고 계시는 모든 분이 다 아실겁니다.

아래 포스팅은 '어디 회사'에 2021년 클라이언트 프로그래머 기술면접 질문 & 답변 포스트입니다.

https://shung2.tistory.com/264?category=1120929 

 

게임회사 기술면접 질문 & 답변 25

판교에 위치한 'ㄴ'회사 2021년 클라이언트 프로그래머 면접 목록입니다. 1. 1차 온라인 코딩 테스트 2. 2차 기술면접 3. C++ 캐스팅 연산자란 무엇인가? 4. static_cast가 실패하는 경우가 있는가? 5. dynam

shung2.tistory.com

 

2022.10.11 수정

마찬가지로 아래 포스팅은 '어디 회사' 2018년 서버 프로그래머 기술면접 질문 & 답변 포스트입니다.

https://shung2.tistory.com/191?category=1120929 

 

게임회사 기술면접 질문 & 답변 9

판교에 위치한 'ㄴ'회사 2018년 서버 면접 목록입니다. 1. 포트폴리오에 대해 이해가 있는지, 사용된 라이브러리등에 대한 질문 2. 퀵소트의 동작 원리를 설명하시오. 3. boost 라이브러리란 무엇인

shung2.tistory.com

 

2022.10.26 수정

마찬가지로 아래 포스팅은 '어디 회사'의 계열사 중 하나입니다.
2021년 10월 클라이언트 프로그래머 기술면접 질문 & 답변 포스트입니다.

https://shung2.tistory.com/367

 

게임회사 기술면접 질문 & 답변 45

강남구에 위치한 '구)ㄴㄱㅇㅈ, 현)ㄴㅅㄱㅇㅈ'회사 2021년 클라이언트 프로그래머 면접 목록입니다. * 코딩 테스트 1. map find보다 vector find의 빠른 경우가 무엇이며, 왜 그런지 설명하시오. 2. 펜 8

shung2.tistory.com

 

반응형