SlideShare a Scribd company logo
1 of 69
데브캣 스튜디오 프로젝트 DH팀
윤석주
넥슨 채용 프로세스 단계별 분석
신입 게임 프로그래머가 되는 법
발표자 소개
• 데브캣 스튜디오 프로젝트 DH팀(드래곤 하운드)
서버 프로그래머
• 2012:서울, 퍼즐 주주, …
발표자 소개
• NDC 발표 경험
• NDC2013
<AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례>
• NDC2018
<인하우스 웹 프레임 워크 Jul8 제작기>
주의
이 [발표]는 넥슨의 게임 프로그래머 채용 프로세스에 대하여
다루고 있으나
개인의 의견/분석일 뿐 회사의 공식적인 의견이 아닙니다.
발표를 하게 된 이유
게임 프로그래머 채용 프로세스
준비 전략
많이 받았던 질문과 답
정리
목차
커리어 클럽
• 넥슨컴퍼니 오프라인 채용 설명회
• 취업 특강, 직군 상담, 채용 상담
• 저의 경우 직군 상담을 진행
발표를 하게 된 이유
• 커리어 클럽 2년간 상담 진행 결과
• 지원자의 질문이 거의 비슷한 편이다
• 현업에선 당연한 것이라도
지원자의 시선에서는 알 수 없는 경우가 대부분이다
직접 찾아 보았더니
직접 찾아 보았더니
결과는
• 정보가 많지 않다
• 대부분 학원 광고 이거나,
• 추상적인 내용들
• 업계 안에서 보는 시각으로 쓴 글은 더욱 적다
정리해서 발표하면 좋지 않을까?
• 실무에 필요한 스킬에 대한 가이드 라인
• 지원자는
• 실제 필요한 스펙에 대비할 수 있다
• 막연한 고민을 해결할 수 있다
• 회사는
• 준비된 인재를 채용할 수 있다
이렇게 준비했습니다
1. 넥슨 코리아에서 채용에 관여한 면접관 인터뷰 진행
2. 인터뷰 내용을 기반으로 초안으로 정리
3. 초안을 검토 받고 피드백 반영
4. 슬라이드로 제작
넥슨 코리아의 채용 프로세스에 맞춰진 내용
발표를 하게 된 이유
게임 프로그래머 채용 프로세스
준비 전략
많이 받았던 질문과 답
정리
목차
1. 서류 심사
2. 과제 심사 ( 온라인 코딩 테스트 )
3. 직군 면접
4. 팀 면접
5. 인사 면접
게임 프로그래머 채용 프로세스
1. 서류 심사
2. 과제 심사 ( 온라인 코딩 테스트 )
3. 직군 면접
4. 팀 면접
5. 인사 면접 직군 채용에 관한 발표이므로 다루지 않음
게임 프로그래머 채용 프로세스
1. 서류 심사
2. 과제 심사 ( 온라인 코딩 테스트 )
3. 직군 면접
4. 팀 면접
게임 프로그래머 채용 프로세스
서류 심사
• 이력서, 자기소개서
• 포트폴리오
이력서, 자기소개서 – 면접관이 원하는 것
• 프로젝트 관련 경험
• 의사 결정에 관한 경험
• 지원자의 관심 분야
이력서, 자기소개서 - 프로젝트 관련 경험
• 개인적으로 연구한 분야, 결과물
• 팀 프로젝트라면
• 주어진 과제
• 과제를 해결 하기 위해 사용한 기술
 현재 팀에서 필요한 인력 수요와 교집합이 많은지 판단하고,
채용 후에는 어떠한 업무를 부여 할 수 있는지 판단하는 요소
이력서, 자기소개서 – 프로젝트 관련 경험 예시
<퍼즐 주주> 프로젝트에서 두가지 목표가 있었습니다.
1. 다양한 수요에 대응하는 것
2. 서버 비용을 최소화 하는 것
위의 목표를 달성하기 위해 Scale-in/out이 가능한 구조로
서버를 설계하였고 AWS EC2 Auto Scaling Group을
사용하여 목표를 달성하였습니다.
이력서, 자기소개서 – 의사 결정에 관한 경험
• 개인/팀 프로젝트에서 의사 결정을 한 경험
• 예시
• 프로젝트 일정이 부족 했을 때
• 구현이 어려운 목표가 주어졌을 때
• 의사 결정을 한 과정, 이유
• 의사 결정으로 얻은 경험
 현업에서도 비슷한 의사 결정을 통해 업무가 진행되므로
이러한 경험을 공유하는 것이 좋다
이력서, 자기소개서 – 지원자의 관심 분야
• 앞으로 하고 싶은 업무 분야
• 기술적 관심 분야
• 열정적인 취미 ( 게임 개발과 관련이 없어도 괜찮다 )
 채용 후에 지원자의 성장 모습 또한 조직에서는 중요하기
때문에 관심이 많다
서류 심사
• 이력서, 자기소개서
• 포트폴리오
포트폴리오 – 면접관이 원하는 것
• 지원자가 연구한 과정, 결과물
• 팀 프로젝트에서 지원자가 기여한 부분
• 구현 스타일, 코딩 스타일
포트폴리오 – 면접관의 불만
• 팀 프로젝트에서 본인이 작업한 부분을 알기 어렵다
• 회사에서 작업한 프로젝트 소스가 온다
• 읽는 사람을 고려하지 않는다
• 코드 파일만 있거나
• 회사 보안 정책상 실행하기 힘든 EXE
• HWP, ALZ, EGG, …
포트폴리오 – 이렇게 준비하면 좋음
• 본인이 작성한 코드를 읽을 수 있는 형태로 전달
• GitHub 프로젝트 링크
• 오픈소스 기여한 부분에 관한 링크
• 본인이 작업한 코드 위치와 간략한 설명
포트폴리오 – 이렇게 준비하면 좋음
• 시연이 가능하다면 동영상으로 준비
• 본인이 작업한 부분 유튜브 영상 링크
• 위 작업을 구현한 코드
• 예시
• 3D 팀 프로젝트에서 카메라를 구현 했다면
카메라 구현영상을 유튜브에 올리고 카메라 코드를 첨부함
포트폴리오 – 이렇게 준비하면 좋음
• 결과뿐 아니라 과정에 대한 설명도 포함
• 구현을 하기까지의 작업들
• 시행착오를 겪은 부분
• 이슈 발생 시 의사 결정 과정
정리하자면
• 자기소개서는
• 프로젝트 관련 된 기술과 의사 결정 경험을 공유
• 관심 분야와 하고 싶은 롤을 표현
• 포트폴리오는
• 본인이 작업한 분야를 명확하게 표현
• 면접관이 알아보기 편한 형태로 준비
1. 서류 심사
2. 과제 심사 ( 온라인 코딩 테스트 )
3. 직군 면접
4. 팀 면접
게임 프로그래머 채용 프로세스
과제 심사(온라인 코딩 테스트)
• 알고리즘 문제 해결능력을 보기 위한 절차
• 넥슨 뿐 아니라 다른 IT회사도 프로그래머를 채용하기 위해 실시
• 이러한 테스트를 처음 접해보면 실력발휘가 어려울 수 있으므로 연
습 삼아 미리 풀어보는 것을 추천
과제 심사(온라인 코딩 테스트) – 미리 해볼만 한 곳
• 국내 사이트
• NYPC 공개 문제 ( https://nypc.github.io/2018/ )
• 카카오 공채 코딩 테스트
( https://www.welcomekakao.com/learn/challenges )
• 백준 온라인 저지 ( https://www.acmicpc.net/ )
과제 심사(온라인 코딩 테스트) – 미리 해볼만 한 곳
• 해외 사이트
• Codility ( https://app.codility.com/programmers/ )
• LeetCode ( https://leetcode.com/ )
• HackerRank ( https://hackerrank.com/ )
1. 서류 심사
2. 과제 심사 ( 온라인 코딩 테스트 )
3. 직군 면접
4. 팀 면접
게임 프로그래머 채용 프로세스
직군 면접
• 게임 프로그래머 직군의 능력을 평가
• 게임 엔진(유니티, 언리얼)외에 전반적인 전산학 지식을 폭넓게
요구함
한번 상상해봅시다
• 여러분들이 <드래곤 하운드> 프로그래머라고 가정
• 기술 스택
• 언리얼 엔진 ( C++ )
• 실버바인서버엔진2 ( C# )
뭐가 필요한지 한번
생각해봅시다
클라이언트 - 언리얼 엔진
• 그래픽스 관련 지식
• 3D 행렬
• 카메라
• 좌표계
• 렌더링 파이프라인
• 관련 수학 지식
클라이언트 - 언리얼 엔진
• 엔진에서 쓰이는 C++에 대한 지식
• OOP개념
• 상속
• 다형성
• 가상함수
• 템플릿
• STL
클라이언트 - 언리얼 엔진
• 메모리 관련 지식
• 스택
• 힙
• 메모리 풀
• 스마트 포인터
서버 - 실버바인서버엔진2
• C#에 대한 이해
• VM
• GC
• Generic
• C# Collection들 - List, Dictionary, …
서버 - 실버바인서버엔진2
• 서버에서 여러 개의 요청을 동시에 처리하기 위한 방법
• Thread
• Lock
• DeadLock
• Microthread(coroutine, fiber)
서버 - 실버바인서버엔진2
• 서버에서 여러 연결을 효율적으로 처리하는 방법
• IOCP
• epoll
서버 - 실버바인서버엔진2
• DB에 대한 지식
• Transaction
• SQL
• Stored Procedure
• NoSQL
• Redis
게임 로직 관련
• 서버 클라이언트 통신
• TCP, UDP
• 어떻게 동기화를 할 것인가?
• 메시지를 어떤 방식으로 보낼 것인가? (Serialization)
게임 로직 관련
• 알고리즘, 자료구조
• 게임에 많은 데이터를 보관, 처리 하는 방법들
• 요구 상황마다 어떤 방식이 효율적인지 알아야 함
• 결론은 각각 자료구조, 알고리즘의 특징을 알아야 함
정리하면
• 언어 ( C++, C# )
• 그래픽스
• 네트워크
• 알고리즘, 자료구조
• DB
• 서버-클라이언트 동기화
• Thread
왜 게임 만드는데 전산학 지식이 필요한가요?
https://twitter.com/minjang_kim/status/749548500774293504
왜 게임 만드는데 전산학 지식이 필요한가요?
• 사용하는 엔진은 몇 년 지나면 바뀔 수 있다
• 엔진이 바뀌어도 기초가 되는 전산학 지식은 변하지 않는다
• 소프트웨어 개발은 기반 기술로 쌓아 올리는 것이라
기초지식을 모르면 잘 만들기 어렵다.
어떻게 배우나요?
• 책을 추천
• 책은 중요도가 높은 지식을 바탕으로 요점 정리가 잘 되어있음
• 추가적인 지식도 책에서 관련 키워드를 습득해서 공부하면 좋음
• 책에서 습득한 지식을 기반으로 실습을 진행하여 본인의 지식으로
만드는 과정이 필요함
어떻게 배우나요? – 알고리즘
• C로 배우는 알고리즘
• Introduction to algorithms
어떻게 배우나요? – 언어
• Effective C++
• C# in Depth
• Inside C#
어떻게 배우나요? – 그래픽스
• DirectX 11을 이용한 3D 게임 프로그래밍 입문
• Real-Time Rendering
어떻게 배우나요? – 면접 대비
• <프로그래밍 면접 이렇게 준비한다>
1. 서류 심사
2. 과제 심사 ( 온라인 코딩 테스트 )
3. 직군 면접
4. 팀 면접
게임 프로그래머 채용 프로세스
팀 면접
• 팀의 방향성과 일치하는지 평가
• 팀 마다 원하는 방향성, 인재상이 다름
• 채용 공고, 팀 인터뷰, 게임 등을 통한 파악
• 파악한 팀의 방향성이 본인과 맞는지 확인
발표를 하게 된 이유
게임 프로그래머 채용 프로세스
준비 전략
많이 받았던 질문과 답
정리
목차
준비 전략
• 프로그래머는 직군 면접 준비를 소홀히 해서는 안 된다
• 프로그래머로 업무 수행을 하기 위한 필수 지식
• 게임업계 뿐 아니라 IT업계에서 요구하는 지식
• 기초 지식을 쌓는 경험 도중에 잘하는 분야/관심 있는 분야를
파악할 수 있음
준비 전략
• 이력서, 포트폴리오, 팀 면접은 전문 분야를 만들어서 표현
• 본인이 잘 하거나 흥미 있는 분야를 선정
• 전문 분야의 경험을 만들어서 표현
• 연구 분야에 대한 PT, 동영상, 소스 코드
• 오픈 소스 프로젝트 참여
• 완수 후 얻은 경험
발표를 하게 된 이유
게임 프로그래머 채용 프로세스
준비 전략
많이 받았던 질문과 답
정리
목차
포트폴리오를 어떻게 준비해야 될까요?
• 앞에서 정리해 드린 그것이 답
• 본인이 작업한 분야를 명확히 표현
• 면접관이 쉽게 확인할 수 있는 형태로 준비
저는 언리얼 하는데 유니티 배워야 하나요?
저는 유니티 하는데 언리얼 배워야 하나요?
• 팀마다 다르지만 엔진 경험을 선호하는 팀도 있음
• 직군면접에서 영향은 크지 않은 듯 함
• 직군 면접은 게임 프로그래머 직군의 능력을 평가하는 자리
• 기초적인 엔진 지식은 실무에 적응에 도움이 됨
저는 직군 면접에서 탈락하였는데
포트폴리오를 더 잘 준비해야 될까요?
• 직군 면접에서 탈락하였다면 다시 직군 면접 준비를 하는 것이 좋
음
• 직군 면접에서 탈락한 이유가 포트폴리오 미흡함 때문은 아님
• 각 단계 별로 평가 기준이 다르고 통과 했다면
그 단계의 평가 기준은 통과 했다고 보는 것이 좋음
면접에서 떨어졌습니다. 실력이 없는 것 인가요?
• 만약 서류나 팀 면접에서 떨어졌다면
단순히 해당 팀에서 현재 필요로 하는 인재상과 맞지 않을 뿐
너무 낙담하지 않아도 됨
• 과제 심사나 직군면접에서 탈락 했다면
• 앞에 정리한 방법으로 실력을 쌓고 다시 도전
발표를 하게 된 이유
게임 프로그래머 채용 프로세스
준비 전략
많이 받았던 질문과 답
정리
목차
정리
• 크게 3가지를 준비
• 게임 개발에 필요한 전산학 지식을 습득
• 본인의 전문 분야를 준비하여 결과물로 표현
• 프로젝트 진행 중 얻은 의사 결정 경험을 공유
도움을 주신 분들
• 프로젝트DH 팀원분들
• 데브캣 스튜디오 기반개발팀 이승재님, 홍성우님
• 왓 스튜디오 김찬웅님
• 넷게임즈 MX 스튜디오 김용하님
Thank You.
Twitter - @noricube
Email - noricube@gmail.com

More Related Content

What's hot

홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템Chaeone Son
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011devCAT Studio, NEXON
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할Hoyoung Choi
 
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011devCAT Studio, NEXON
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능Yongha Kim
 
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점Jubok Kim
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?Lee Sangkyoon (Kay)
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현Bongseok Cho
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해Seungmo Koo
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화Jaeseung Ha
 

What's hot (20)

홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할
 
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해게임제작개론 : #6 게임 시스템 구조에 대한 이해
게임제작개론 : #6 게임 시스템 구조에 대한 이해
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
 

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

어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇민건 주
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료WonJongOh1
 
DevOps 2년차 이직 성공기
DevOps 2년차 이직 성공기DevOps 2년차 이직 성공기
DevOps 2년차 이직 성공기Byungho Lee
 
devops 2년차 이직 성공기.pptx
devops 2년차 이직 성공기.pptxdevops 2년차 이직 성공기.pptx
devops 2년차 이직 성공기.pptxByungho Lee
 
신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비인서 박
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기Seokjae Lee
 
H사 개인화 Approach
H사 개인화 ApproachH사 개인화 Approach
H사 개인화 Approachssuser9a50211
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Aree Oh
 
나의 8년 (2012~2019)
나의 8년 (2012~2019)나의 8년 (2012~2019)
나의 8년 (2012~2019)Yungon Park
 
2015 한양대 직무특강 IT 개발자 이야기
2015 한양대 직무특강 IT 개발자 이야기2015 한양대 직무특강 IT 개발자 이야기
2015 한양대 직무특강 IT 개발자 이야기junghyun choi
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법MinGeun Park
 
백엔드 개발자로 1인분하기
백엔드 개발자로 1인분하기백엔드 개발자로 1인분하기
백엔드 개발자로 1인분하기민건 주
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)Sungmin Kim
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스Hee Jae Lee
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 iFunFactory Inc.
 

Similar to 윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019 (20)

어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
 
DevOps 2년차 이직 성공기
DevOps 2년차 이직 성공기DevOps 2년차 이직 성공기
DevOps 2년차 이직 성공기
 
devops 2년차 이직 성공기.pptx
devops 2년차 이직 성공기.pptxdevops 2년차 이직 성공기.pptx
devops 2년차 이직 성공기.pptx
 
신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
 
Approach
ApproachApproach
Approach
 
H사 개인화 Approach
H사 개인화 ApproachH사 개인화 Approach
H사 개인화 Approach
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
나의 8년 (2012~2019)
나의 8년 (2012~2019)나의 8년 (2012~2019)
나의 8년 (2012~2019)
 
2015 한양대 직무특강 IT 개발자 이야기
2015 한양대 직무특강 IT 개발자 이야기2015 한양대 직무특강 IT 개발자 이야기
2015 한양대 직무특강 IT 개발자 이야기
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
백엔드 개발자로 1인분하기
백엔드 개발자로 1인분하기백엔드 개발자로 1인분하기
백엔드 개발자로 1인분하기
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
 
About Programmer 2021
About Programmer 2021About Programmer 2021
About Programmer 2021
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 

More from devCAT Studio, NEXON

이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019devCAT Studio, NEXON
 
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019devCAT Studio, NEXON
 
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019devCAT Studio, NEXON
 
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019devCAT Studio, NEXON
 
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019devCAT Studio, NEXON
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019devCAT Studio, NEXON
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018devCAT Studio, NEXON
 
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018devCAT Studio, NEXON
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018devCAT Studio, NEXON
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018devCAT Studio, NEXON
 
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012devCAT Studio, NEXON
 
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011devCAT Studio, NEXON
 
백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010devCAT Studio, NEXON
 
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017devCAT Studio, NEXON
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017devCAT Studio, NEXON
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017devCAT Studio, NEXON
 
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017devCAT Studio, NEXON
 

More from devCAT Studio, NEXON (20)

이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
 
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
 
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
 
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
 
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
 
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
 
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
 
백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010
 
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #2, NDC2017
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
 
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
 

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

  • 1. 데브캣 스튜디오 프로젝트 DH팀 윤석주 넥슨 채용 프로세스 단계별 분석 신입 게임 프로그래머가 되는 법
  • 2. 발표자 소개 • 데브캣 스튜디오 프로젝트 DH팀(드래곤 하운드) 서버 프로그래머 • 2012:서울, 퍼즐 주주, …
  • 3. 발표자 소개 • NDC 발표 경험 • NDC2013 <AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례> • NDC2018 <인하우스 웹 프레임 워크 Jul8 제작기>
  • 4. 주의 이 [발표]는 넥슨의 게임 프로그래머 채용 프로세스에 대하여 다루고 있으나 개인의 의견/분석일 뿐 회사의 공식적인 의견이 아닙니다.
  • 5. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  • 6. 커리어 클럽 • 넥슨컴퍼니 오프라인 채용 설명회 • 취업 특강, 직군 상담, 채용 상담 • 저의 경우 직군 상담을 진행
  • 7. 발표를 하게 된 이유 • 커리어 클럽 2년간 상담 진행 결과 • 지원자의 질문이 거의 비슷한 편이다 • 현업에선 당연한 것이라도 지원자의 시선에서는 알 수 없는 경우가 대부분이다
  • 10. 결과는 • 정보가 많지 않다 • 대부분 학원 광고 이거나, • 추상적인 내용들 • 업계 안에서 보는 시각으로 쓴 글은 더욱 적다
  • 11. 정리해서 발표하면 좋지 않을까? • 실무에 필요한 스킬에 대한 가이드 라인 • 지원자는 • 실제 필요한 스펙에 대비할 수 있다 • 막연한 고민을 해결할 수 있다 • 회사는 • 준비된 인재를 채용할 수 있다
  • 12. 이렇게 준비했습니다 1. 넥슨 코리아에서 채용에 관여한 면접관 인터뷰 진행 2. 인터뷰 내용을 기반으로 초안으로 정리 3. 초안을 검토 받고 피드백 반영 4. 슬라이드로 제작 넥슨 코리아의 채용 프로세스에 맞춰진 내용
  • 13. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  • 14. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 5. 인사 면접 게임 프로그래머 채용 프로세스
  • 15. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 5. 인사 면접 직군 채용에 관한 발표이므로 다루지 않음 게임 프로그래머 채용 프로세스
  • 16. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 게임 프로그래머 채용 프로세스
  • 17. 서류 심사 • 이력서, 자기소개서 • 포트폴리오
  • 18. 이력서, 자기소개서 – 면접관이 원하는 것 • 프로젝트 관련 경험 • 의사 결정에 관한 경험 • 지원자의 관심 분야
  • 19. 이력서, 자기소개서 - 프로젝트 관련 경험 • 개인적으로 연구한 분야, 결과물 • 팀 프로젝트라면 • 주어진 과제 • 과제를 해결 하기 위해 사용한 기술  현재 팀에서 필요한 인력 수요와 교집합이 많은지 판단하고, 채용 후에는 어떠한 업무를 부여 할 수 있는지 판단하는 요소
  • 20. 이력서, 자기소개서 – 프로젝트 관련 경험 예시 <퍼즐 주주> 프로젝트에서 두가지 목표가 있었습니다. 1. 다양한 수요에 대응하는 것 2. 서버 비용을 최소화 하는 것 위의 목표를 달성하기 위해 Scale-in/out이 가능한 구조로 서버를 설계하였고 AWS EC2 Auto Scaling Group을 사용하여 목표를 달성하였습니다.
  • 21. 이력서, 자기소개서 – 의사 결정에 관한 경험 • 개인/팀 프로젝트에서 의사 결정을 한 경험 • 예시 • 프로젝트 일정이 부족 했을 때 • 구현이 어려운 목표가 주어졌을 때 • 의사 결정을 한 과정, 이유 • 의사 결정으로 얻은 경험  현업에서도 비슷한 의사 결정을 통해 업무가 진행되므로 이러한 경험을 공유하는 것이 좋다
  • 22. 이력서, 자기소개서 – 지원자의 관심 분야 • 앞으로 하고 싶은 업무 분야 • 기술적 관심 분야 • 열정적인 취미 ( 게임 개발과 관련이 없어도 괜찮다 )  채용 후에 지원자의 성장 모습 또한 조직에서는 중요하기 때문에 관심이 많다
  • 23. 서류 심사 • 이력서, 자기소개서 • 포트폴리오
  • 24. 포트폴리오 – 면접관이 원하는 것 • 지원자가 연구한 과정, 결과물 • 팀 프로젝트에서 지원자가 기여한 부분 • 구현 스타일, 코딩 스타일
  • 25. 포트폴리오 – 면접관의 불만 • 팀 프로젝트에서 본인이 작업한 부분을 알기 어렵다 • 회사에서 작업한 프로젝트 소스가 온다 • 읽는 사람을 고려하지 않는다 • 코드 파일만 있거나 • 회사 보안 정책상 실행하기 힘든 EXE • HWP, ALZ, EGG, …
  • 26. 포트폴리오 – 이렇게 준비하면 좋음 • 본인이 작성한 코드를 읽을 수 있는 형태로 전달 • GitHub 프로젝트 링크 • 오픈소스 기여한 부분에 관한 링크 • 본인이 작업한 코드 위치와 간략한 설명
  • 27. 포트폴리오 – 이렇게 준비하면 좋음 • 시연이 가능하다면 동영상으로 준비 • 본인이 작업한 부분 유튜브 영상 링크 • 위 작업을 구현한 코드 • 예시 • 3D 팀 프로젝트에서 카메라를 구현 했다면 카메라 구현영상을 유튜브에 올리고 카메라 코드를 첨부함
  • 28. 포트폴리오 – 이렇게 준비하면 좋음 • 결과뿐 아니라 과정에 대한 설명도 포함 • 구현을 하기까지의 작업들 • 시행착오를 겪은 부분 • 이슈 발생 시 의사 결정 과정
  • 29. 정리하자면 • 자기소개서는 • 프로젝트 관련 된 기술과 의사 결정 경험을 공유 • 관심 분야와 하고 싶은 롤을 표현 • 포트폴리오는 • 본인이 작업한 분야를 명확하게 표현 • 면접관이 알아보기 편한 형태로 준비
  • 30. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 게임 프로그래머 채용 프로세스
  • 31. 과제 심사(온라인 코딩 테스트) • 알고리즘 문제 해결능력을 보기 위한 절차 • 넥슨 뿐 아니라 다른 IT회사도 프로그래머를 채용하기 위해 실시 • 이러한 테스트를 처음 접해보면 실력발휘가 어려울 수 있으므로 연 습 삼아 미리 풀어보는 것을 추천
  • 32. 과제 심사(온라인 코딩 테스트) – 미리 해볼만 한 곳 • 국내 사이트 • NYPC 공개 문제 ( https://nypc.github.io/2018/ ) • 카카오 공채 코딩 테스트 ( https://www.welcomekakao.com/learn/challenges ) • 백준 온라인 저지 ( https://www.acmicpc.net/ )
  • 33. 과제 심사(온라인 코딩 테스트) – 미리 해볼만 한 곳 • 해외 사이트 • Codility ( https://app.codility.com/programmers/ ) • LeetCode ( https://leetcode.com/ ) • HackerRank ( https://hackerrank.com/ )
  • 34. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 게임 프로그래머 채용 프로세스
  • 35. 직군 면접 • 게임 프로그래머 직군의 능력을 평가 • 게임 엔진(유니티, 언리얼)외에 전반적인 전산학 지식을 폭넓게 요구함
  • 36. 한번 상상해봅시다 • 여러분들이 <드래곤 하운드> 프로그래머라고 가정 • 기술 스택 • 언리얼 엔진 ( C++ ) • 실버바인서버엔진2 ( C# ) 뭐가 필요한지 한번 생각해봅시다
  • 37. 클라이언트 - 언리얼 엔진 • 그래픽스 관련 지식 • 3D 행렬 • 카메라 • 좌표계 • 렌더링 파이프라인 • 관련 수학 지식
  • 38. 클라이언트 - 언리얼 엔진 • 엔진에서 쓰이는 C++에 대한 지식 • OOP개념 • 상속 • 다형성 • 가상함수 • 템플릿 • STL
  • 39. 클라이언트 - 언리얼 엔진 • 메모리 관련 지식 • 스택 • 힙 • 메모리 풀 • 스마트 포인터
  • 40.
  • 41. 서버 - 실버바인서버엔진2 • C#에 대한 이해 • VM • GC • Generic • C# Collection들 - List, Dictionary, …
  • 42. 서버 - 실버바인서버엔진2 • 서버에서 여러 개의 요청을 동시에 처리하기 위한 방법 • Thread • Lock • DeadLock • Microthread(coroutine, fiber)
  • 43. 서버 - 실버바인서버엔진2 • 서버에서 여러 연결을 효율적으로 처리하는 방법 • IOCP • epoll
  • 44. 서버 - 실버바인서버엔진2 • DB에 대한 지식 • Transaction • SQL • Stored Procedure • NoSQL • Redis
  • 45. 게임 로직 관련 • 서버 클라이언트 통신 • TCP, UDP • 어떻게 동기화를 할 것인가? • 메시지를 어떤 방식으로 보낼 것인가? (Serialization)
  • 46. 게임 로직 관련 • 알고리즘, 자료구조 • 게임에 많은 데이터를 보관, 처리 하는 방법들 • 요구 상황마다 어떤 방식이 효율적인지 알아야 함 • 결론은 각각 자료구조, 알고리즘의 특징을 알아야 함
  • 47. 정리하면 • 언어 ( C++, C# ) • 그래픽스 • 네트워크 • 알고리즘, 자료구조 • DB • 서버-클라이언트 동기화 • Thread
  • 48.
  • 49. 왜 게임 만드는데 전산학 지식이 필요한가요? https://twitter.com/minjang_kim/status/749548500774293504
  • 50. 왜 게임 만드는데 전산학 지식이 필요한가요? • 사용하는 엔진은 몇 년 지나면 바뀔 수 있다 • 엔진이 바뀌어도 기초가 되는 전산학 지식은 변하지 않는다 • 소프트웨어 개발은 기반 기술로 쌓아 올리는 것이라 기초지식을 모르면 잘 만들기 어렵다.
  • 51. 어떻게 배우나요? • 책을 추천 • 책은 중요도가 높은 지식을 바탕으로 요점 정리가 잘 되어있음 • 추가적인 지식도 책에서 관련 키워드를 습득해서 공부하면 좋음 • 책에서 습득한 지식을 기반으로 실습을 진행하여 본인의 지식으로 만드는 과정이 필요함
  • 52. 어떻게 배우나요? – 알고리즘 • C로 배우는 알고리즘 • Introduction to algorithms
  • 53. 어떻게 배우나요? – 언어 • Effective C++ • C# in Depth • Inside C#
  • 54. 어떻게 배우나요? – 그래픽스 • DirectX 11을 이용한 3D 게임 프로그래밍 입문 • Real-Time Rendering
  • 55. 어떻게 배우나요? – 면접 대비 • <프로그래밍 면접 이렇게 준비한다>
  • 56. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 게임 프로그래머 채용 프로세스
  • 57. 팀 면접 • 팀의 방향성과 일치하는지 평가 • 팀 마다 원하는 방향성, 인재상이 다름 • 채용 공고, 팀 인터뷰, 게임 등을 통한 파악 • 파악한 팀의 방향성이 본인과 맞는지 확인
  • 58. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  • 59. 준비 전략 • 프로그래머는 직군 면접 준비를 소홀히 해서는 안 된다 • 프로그래머로 업무 수행을 하기 위한 필수 지식 • 게임업계 뿐 아니라 IT업계에서 요구하는 지식 • 기초 지식을 쌓는 경험 도중에 잘하는 분야/관심 있는 분야를 파악할 수 있음
  • 60. 준비 전략 • 이력서, 포트폴리오, 팀 면접은 전문 분야를 만들어서 표현 • 본인이 잘 하거나 흥미 있는 분야를 선정 • 전문 분야의 경험을 만들어서 표현 • 연구 분야에 대한 PT, 동영상, 소스 코드 • 오픈 소스 프로젝트 참여 • 완수 후 얻은 경험
  • 61. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  • 62. 포트폴리오를 어떻게 준비해야 될까요? • 앞에서 정리해 드린 그것이 답 • 본인이 작업한 분야를 명확히 표현 • 면접관이 쉽게 확인할 수 있는 형태로 준비
  • 63. 저는 언리얼 하는데 유니티 배워야 하나요? 저는 유니티 하는데 언리얼 배워야 하나요? • 팀마다 다르지만 엔진 경험을 선호하는 팀도 있음 • 직군면접에서 영향은 크지 않은 듯 함 • 직군 면접은 게임 프로그래머 직군의 능력을 평가하는 자리 • 기초적인 엔진 지식은 실무에 적응에 도움이 됨
  • 64. 저는 직군 면접에서 탈락하였는데 포트폴리오를 더 잘 준비해야 될까요? • 직군 면접에서 탈락하였다면 다시 직군 면접 준비를 하는 것이 좋 음 • 직군 면접에서 탈락한 이유가 포트폴리오 미흡함 때문은 아님 • 각 단계 별로 평가 기준이 다르고 통과 했다면 그 단계의 평가 기준은 통과 했다고 보는 것이 좋음
  • 65. 면접에서 떨어졌습니다. 실력이 없는 것 인가요? • 만약 서류나 팀 면접에서 떨어졌다면 단순히 해당 팀에서 현재 필요로 하는 인재상과 맞지 않을 뿐 너무 낙담하지 않아도 됨 • 과제 심사나 직군면접에서 탈락 했다면 • 앞에 정리한 방법으로 실력을 쌓고 다시 도전
  • 66. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  • 67. 정리 • 크게 3가지를 준비 • 게임 개발에 필요한 전산학 지식을 습득 • 본인의 전문 분야를 준비하여 결과물로 표현 • 프로젝트 진행 중 얻은 의사 결정 경험을 공유
  • 68. 도움을 주신 분들 • 프로젝트DH 팀원분들 • 데브캣 스튜디오 기반개발팀 이승재님, 홍성우님 • 왓 스튜디오 김찬웅님 • 넷게임즈 MX 스튜디오 김용하님
  • 69. Thank You. Twitter - @noricube Email - noricube@gmail.com

Editor's Notes

  1. 안녕하세요. 신입 게임 프로그래머가 되는법, 넥슨 채용 프로세스 단계별 분석 이라는 주제로 NDC 발표를 진행하려고 합니다
  2. 우선 간단하게 제 소개를 하도록 하겠습니다. 저는 데브캣 스튜디오 프로젝트 DH팀에서 서버를 담당하고 있는 윤석주라고 하고요. DH팀은 작년 지스타때 발표한 드래곤 하운드를 개발하고 있습니다. 이전에는 넥슨에서 2012:서울, 퍼즐 주주 등의 게임을 만들었고요.
  3. NDC 발표는 여러번 하였는데 그중 2개만 소개해드리자면 2013년에 게임업계에서 AWS 도입 초기에 퍼즐 주주 서버를 AWS를 활용해서 개발한 것을 발표 했었구요. 작년에는 팀 내에서 직접 만든 웹 프레임워크에 대해서 발표 했었습니다. 이제 발표를 진행하려고 합니다.
  4. 먼저 이 발표는 넥슨의 게임 프로그래머 채용 프로세스에 대해서 다루고 있긴 하지만 회사의 공식적인 의견이 아닌 저의 개인적인 분석일뿐임을 알아주셨으면 합니다.
  5. 발표 순서는 발표를 하게 된 이유 -> 게임 프로그래머 채용 프로세스 분석 -> 준비 전략 -> 많이 받았던 질문과 답 -> 정리 순서로 진행 하려고 합니다
  6. 넥슨에서는 공채 시즌에 커리어 클럽이라는 채용 박람회를 진행하고 있습니다. 여기서 취업 특강, 직군 상담, 채용 상담을 진행하고 있는데 저의 경우 직군 상담을 진행하였습니다
  7. 2년 정도 직군 상담을 해보니 대부분 질문이 비슷한 편이더군요. 그리고 현업에서는 당연하게 생각하는 부분도 지원자의 시선에서는 잘 모르는 부분도 꽤 많았습니다. 그래서 왜 그럴까. 이러한 정보가 별로 없나? 궁금증이 들어서 직접 좀 찾아보았는데요
  8. 구글에서도 검색 해보고
  9. 네이버에서도 검색해보았는데
  10. 결과는 정보가 많지 않더라구요. 대부분 학원 광고이거나. 글을 찾아서 보아도 추상적으로 포트폴리오 준비 하라는 이야기 정도 있고 특히 업계 안에서 어느정도 경력 있으신 분의 시각으로 쓰여진 글은 찾기 어렵더라구요.
  11. 그래서 이런걸 정리해서 발표하면 좋지 않을까 하는 생각이 들었습니다. 실제로 실무에서 필요한 스킬에 대해서 가이드라인을 제시하여 지원자 입장에서는 실제 필요한 스펙에 대비할 수 있고 막연한 고민을 해결 할 수 있을 것이라 생각이 되었구요. 회사 입장에서도 실무에서 필요한 스킬을 갖춘 준비된 인재를 채용 할 수 있게 되어 지원자, 회사 전부 윈-윈 할 수 있을 것 같았습니다.
  12. 넥슨 코리아 분들을 인터뷰 하다 보니 넥슨 코리아 외에 다른 법인의 채용 프로세스와는 조금 다를 수 있는 것을 감안해주시고 들으시면 될 것 같습니다.
  13. 게임 프로그래머 채용 프로세스에 대해서 하나씩 살펴보면
  14. 서류 심사, 과제 심사, 직군 면접 , 팀 면접 ,인사 면접 이렇게 5단계로 진행됩니다.
  15. 이 발표에서는 인사 면접 내용은 직군 채용에 관한 발표이므로 다루지 않고요.
  16. 우선 서류 심사부터 살펴보자면
  17. 크게 이력서, 자기소개서 부분과 포트폴리오로 나눌 수 있을 것 같습니다 우선 이력서, 자기 소개서 부터 살펴보자면
  18. 면접관분들에게 물어보니까 이렇게 3가지를 원하시더라구요 프로젝트 관련 경험, 의사 결정에 관한 경험, 지원자의 관심 분야 하나씩 자세하게 살펴보자면
  19. 프로젝트 관련 경험은 개인적으로 연구한 분야와 결과물 그리고 팀 프로젝트라면 본인에게 주어진 과제와, 그 과제를 해결하기 위해 사용한 기술에 대해서 알고 싶어했습니다. 면접관 입장에서 생각해보면 채용공고를 낼 때 팀에서 원하는 기술을 가진 인재가 있을탠대 이력서를 보고 지원자가 이러한 기술과 교집합을 가졌는지 판단하고 채용을 진행하게 될태구요 만약 채용을 진행한다면 어떤 업무를 부여 할 수 있는지 판단하는 요소가 되겠죠
  20. 제가 퍼즐 주주에서 했던 경험을 예로 들자면 <슬라이드 내용 읽기> 이렇게 프로젝트에서 주어진 과제와, 과제를 해결 하기 위해 사용한 기술에 대해서 언급하면 될 것 같습니다. 이런 내용을 보고 면접관은 제가 scale-out이 가능한 구조로 서버를 만든 경험이 있다는것과 Aws ec2를 사용해본 경험이 있다는것을 알게 되겠죠. 이런 내용을 바탕으로 aws 관련 경험이 필요하다면 채용을 진행하게 될태구요.
  21. 다음으로 의사 결정에 관한 경험인데요 개인/팀 프로젝트에서 의사 결정을 한 경험을 공유하면 될 것 같습니다. 예를들면 프로젝트에 구현할 기능은 많은데 일정이 부족했을때나, 구현이 어려운 목표가 주어졌을때 의사 결정 과정, 그리고 이유, 그 이후에 얻은 경험을 공유하시면 될 것 같아요. 이러한 부분을 면접관 분들이 원하는 이유는 현업에서도 개인 프로젝트, 팀 프로젝트에서 문제 됐던 경험이 똑같이 생기거든요. 그런 상황이 발생할 때 현업에서도 비슷한 의사 결정을 통해서 업무가 진행되기때문에 지원자가 이러한 의사 결정을 어떻게 수행하는지에 대해서 관심이 많습니다
  22. 마지막으로 지원자의 관심 분야 인데요 회사에서 업무 적으로 하고 싶은 분야 예를들면, 본인은 프로그래머지만 기획도 같이 겸하고 싶다던가, 본인은 매니징에 관심이 많다 요러한 업무적인 롤로 원하는 부분을 적으시면 좋을 것 같고요 기술적인 관심 분야, 예를들면 요즘 머신러닝이 핫하잖아요. 이렇게 기술적으로 관심 있는 분야를 언급해주시면 될 것 같고요. 기술적인 관심 이외에도 열정적인 취미. 예를들면 아이돌 굿즈를 다 모았다던지, 사진을 잘찍는다던지 꼭 게임 개발과 관련이 없더라도 괜찮습니다. 이런것들을 면접관이 원하는 이유가 채용 하게 되면 몇년은 같이 일하게 될탠대 지원자의 현재 모습도 중요하지만, 앞으로의 지원자의 성장 모습 또한 조직에서는 중요하기 때문에 관심이 많은것 같습니다
  23. 포트폴리오로 넘어가보면
  24. 면접관 분들은 지원자가 연구한 내용이 있다면 연구한 과정과 결과물 만약 팀 프로젝트라면 팀 프로젝트에서 지원자가 기여한 부분 그리고 실제 코드의 구현 스타일 코딩 스타일을 알고 싶어 하는데요
  25. 실제로 포트폴리오를 받아 보았을때 면접관 분들이 불만이 좀 있으시더라구요. 팀 프로젝트를 통째로 압축해서 보내서 본인이 작업한 부분을 알기가 어려웠고. 또한 경력이 조금 있는 신입의 경우 다른 회사에서 작업한 프로젝트 소스가 오는 경우도 있는데 이러면 당연히 안되겠죠. 또 어려운것이 면접관 입장에서는 잘 살펴볼 수 있게 고려가 되어 있지 않다고 하더라구요. 열어보았는데 코드 파일만 있거나, 이러면 어떤 내용을 연구했는지 알기 어렵겠죠? 그리고 회사 보안 정책상 exe파일은 실행하기 힘든데 exe파일이 오는경우도 많고. Hwp, alz, egg 파일들 뭐 말 안해도 아시겠죠…?
  26. 그래서 포트폴리오는 이렇게 준비하면 좋을 것 같아요. 본인이 작성한 코드를 읽기 편한 형태로 전달하는거죠. 개인/팀 프로젝트를 Github에 올리고 프로젝트 링크를 한다던가 오픈소스에 본인이 기여한 부분이 있으면 그 부분을 링크한다던가 만약 파일로 전달한다면 본인이 작업한 코드와 위치를 명시하고 어떤 작업을 했는지 설명을 같이 첨부해야겠죠?
  27. 시연이 가능한 부분이라면 동영상으로 준비하는 것도 좋을것 같아요 본인이 작업한 부분만 유튜브 영상으로 찍고, 영상을 구현한 코드를 첨부 하면 알아보기가 편리하겠죠 실제로 좋았던 경험을 면접관분이 예를 들어주셨는데요. 3D 팀 프로젝트 였는데. 카메라를 본인이 구현했고. 카메라 작동 영상을 유튜브에 올리고 카메라 코드를 첨부했는데, 알아보기 편하고 구현 코드도 좋았다고 하시더군요.
  28. 그리고 포트폴리오에 보통 결과만 넣는 경우가 많은데 포트폴리오를 제작하면서 구현 과정, 시행착오를 겪은 부분들이 있다면 포함하고 혹시 이슈 발생 시의 의사 결정 과정도 포함시켜서 첨부하면 좋다고 하시더라고요.
  29. 정리하자면 자기소개서는 프로젝트 관련된 기술과 의사 결정 경험을 공유하고 관심 분야와 하고 싶은 롤을 표현하시구요. 포트폴리오는 본인이 작업한 분야를 명확하게 표현하고 면접관이 알아보기 편한 형태로 준비하시면 좋을것 같습니다.
  30. 다음으로 과제 심사 ( 온라인 코딩 테스트 ) 인데요
  31. 과제 심사는 알고리즘 문제 해결 능력을 보기 위한 절차이고 이건 뭐 넥슨 뿐만아니라 다른 IT회사도 프로그래머 채용과정에서 대부분 실시하고 있구요. 보통 이런 문제를 처음 접하면 당황해서 실력 발휘가 어려운 경우가 좀 있더라구요. 가능하면 지원하시기 전에 연습 삼아서 좀 미리 풀어보시는것이 좋을 것 같습니다.
  32. 국내 사이트로는 NYPC라고 1년에 한번씩 넥슨에서 청소년들을 위한 프로그래밍 대회를 하는데요 여기 문제들이 꽤 재밌고 공개가 되어 있거든요. 한번씩 풀어보시면 좋을 것 같고요. 카카오도 공채 코딩 테스트 문제를 공개했더라구요. 사이트 가면 연습도 해볼 수 있고 해설도 다 있더라구요. 그리고 좀 더 풀어보고 싶으시면 백준 온라인 저지 사이트가 꽤 괜찮은 것 같더라구요.
  33. 해외 사이트들도 유명한게 몇개있는데. 국내 사이트 풀어보시고 이게 적성에 맞는 것 같으면 좀 더 풀어보시면 될 것 같습니다.
  34. 다음으로 직군 면접인데요
  35. 직군 면접은 게임 프로그래머 분들이 대면 면접으로 게임 프로그래머 직군의 능력을 평가하는 자리입니다. 게임 엔진 지식 외에도 전반적인 전산학 지식을 폭 넓게 요구하는데요.
  36. 게임 프로그래머가 되기 위해 뭘 알아야 될까요? 여러분들이 드래곤 하운드 프로그래머라고 한번 가정해봅시다 저희 프로젝트에서 사용하고 있는 클라이언트 엔진인 언리얼 엔진과 서버 엔진인 실버바인 서버엔진2을 사용한다고 가정해봅시다. (클릭)그리고 뭐가 필요한지 한번 생각해봅시다.
  37. 언리얼 엔진을 사용하려면 (클릭)그래픽스 관련 지식이 있어야겠죠 3D행렬, 카메라, 좌표계, 렌더링 파이프라인, 관련 수학 지식들
  38. 그리고 언리얼 엔진은 C++니까(클릭) C++ 관련 지식도 필요하겠죠. OOP 개념, 상속, 다형성, 가상함수 그리고 템플릿, STL도 알아야겠구요
  39. 그리고 C++에서 메모리 관리를 어떻게 하는지 스택, 힙, 메모리 풀, 스마트포인터가 뭔지? 어떤때에 쓰이는지
  40. 이런 지식이 있어야 용을 사냥하기 위한 클라이언트를 만들 수 있겠죠
  41. 서버쪽도 살펴보면 DH의 경우 실버바인서버엔진2를 사용하고 있는데요. 이게 C# 기반이니까 (클릭)C#에 대한 이해가 있어야겠죠 C# 가상머신, 가비지 컬렉터, 제네릭, C#에서 사용하는 Collection들 List라던지 Dictionary라던지
  42. (클릭)그리고 서버 다 보니 여러개의 요청이 동시에 올 수도 있잖아요? 이런걸 처리하려면 아마 Thread를 사용해야겠죠. (클릭)Thread를 사용하다보면 동시에 접근하는 데이터가 있을태니 Lock이 뭔지 알아야될태고… Lock을 쓰다보면 DeadLock에 빠질 수 있으니 DeadLock을 피할 수 있는 방법에 대해서 알아야겠죠. Thread가 좋긴한대 잘 쓰기가 어렵거든요. 그래서 요즘 서버들은 마이크로 쓰레드 그러니까 코루틴, 파이버를 많이 사용하는데 Thread 대비 어떤 장단점이 있는지? 알아야겠죠.
  43. 서버 1개에 클라이언트 다수가 접속하기 때문에 여러개의 연결을 효율적으로 처리하는 방법이 필요하겠죠. 윈도우에서는 IOCP가 있을태고 리눅스에서는 epoll같은 방법이 있을태고요.
  44. 또한 게임 데이터를 저장할때 사용하는 DB에 관한 지식도 필요할것 같아요. 여러 게임 서버가 동시에 접근하면서도 일관성을 유지할 수 있는 Transaction이 뭔지 DB에 작업을 수행할 수 있는 SQL이 뭔지 DB에 함수를 저장할 수 있는 Stored Procedure 그리고 요즘 NoSQL이 핫하죠. 어떨때 쓰이는지는 알아야겠죠. 특히 redis는 게임 업계에서는 꽤 대중적으로 쓰이는것 같아서 이제는 꼭 알아야할꺼 같아요
  45. 게임 로직 관련해서 살펴보면 서버-클라이언트의 통신을 어떻게 할껀지 TCP를 쓸것이냐 UDP를 쓸것이냐. 두개의 장단점을 알아야 할 것 같고요 서버-클라이언트가 어떻게 동기화 하는 방법에 대한 고민도 있겠죠. 그리고 서버-클라이언트에 메시지를 어떻게 보낼것인가..?
  46. 알고리즘, 자료 구조 지식도 필요하겠죠. (클릭) 게임에 많은 데이터를 보관, 처리를 하다보니 (클릭) 그런데 게임에 마다 다양한 요소가 있고 이 다양한 요소마다 요구사항이 다 다르기 때문에 어떤 방식이 효율적인지 경험적으로 알아야 하는 부분이 있는것 같아요. (클릭)그래서 자료구조 알고리즘의 특징을 알고 있어야 요구사항이 주어졌을때 적합한 알고리즘과 자료구조를 선택할 수 있을것 같습니다.
  47. 정리하자면 언어, 그래픽스, 네트워크, 알고리즘, 자료구조, DB, 서버-클라이언트 동기화, Thread 정도가 최소한으로 필요한 것 같습니다.
  48. 아마 이 이모지랑 비슷한 느낌이 드실꺼에요.
  49. 왜 게임 만드는데 이러한 전산학 지식일 필요할까요? 제가 한 트윗을 인용해 왔는데요. 이분이 언급하신 내용이랑 비슷한데. 엔진 관련지식은 5년뒤에 사라질 수 있지만, 이산수학, 자료구조 같은 전산학 지식은 계속 기초로 남아있거든요,
  50. (클릭)현업에서 일하다보면 사용하는 엔진은 몇년 지나면 바뀔 수 있거든요. 제 경험을 이야기해드리자면 제가 넥슨에 처음 입사해서 일할때 사용했던 엔진이 게임브리오에요. 지금은 잘 안쓰죠. 그 다음에 모바일 게임 만든다고 cocos2d를 썼어요. 요즘 쓰는 cocos2d-x가 아닌 cocos2d입니다. 그 이후에 갑자기 페이스북 소셜 게임 붐이 생겨서 소셜 게임 만든다고 플래시로 게임 만들었어요. 오래 전일것 같지만 5년정도 밖에 안되었어요. 그런데 지금 게임브리오, 플래시 쓰는 팀 찾기는 힘들죠. 제가 알고 있는 플래시, 게임브리오 관련 지식은 사실 지금 쓸모 없어요 (클릭) 반면 엔진이 바뀌어도 기초가 되는 전산학 지식은 변하지 않아요. 제가 어떤 엔진을 쓰더라도 적응할 수 있는 건 이런 전산학 지식 때문이겠죠. (클릭) 소프트웨어 개발은 이러한 전산학 기초 지식을 기반으로 쌓아 올린것이라. 기초 지식을 모르면 잘 만들기 어려워요 엔진에서 대부분 해준다고해도. 최적화나 디버깅할때 이러한 지식은 꼭 필요하더라구요.
  51. 어떻게 배우나요? (클릭) 이런 지식을 배우는데는 책으로 배두는게 제일 나은 것 같습니다. (클릭) 책은 중요도가 높은 지식을 바탕으로 요점 정리가 잘 되어 있구요. (클릭) 책의 범위를 넘어서는 내용도 책에서 관련 키워드로 찾다보면 쉽게 습득할수있고. (클릭) 이러한 책을 잘 본 후에 실습을 진행해서 본인의 지식으로 만들 수 있을것 같아요.
  52. 알고리즘은 C로 배우는 알고리즘 책을 추천드리고요. 여기서 기초 알고리즘을 배우신 뒤에 좀 더 관심이 있으시면 인트로덕션 투 알고리즘 책으로 심화 학습 하시면 될것 같고요.
  53. 언어는 C++의 경우 Effective C++가 워낙 유명해서.. 이것을 보시면 될 것 같고요 C#의 경우 C# in depth라는 책으로 기초를 쌓으시면 될것 같고 C# 내부의 동작이 더 궁금하시면 Inside C#을 보시면 될 것 같습니다. 참고로 이 책은 마이크로소프트에서 무료로 pdf로 공개했어요.
  54. 그래픽스는 제가 잘은 모르는 분야라 팀원분들에게 여쭈어 봤더니 DirectX 11을 이용한 3D 게임 프로그래밍 입문 책을 추천 해주시더라구요. 아쉽게도 절판인데 중고로 구해서 보시면 될 것 같습니다.
  55. 그리고 면접 대비해서는 프로그래밍 면접 이렇게 준비한다 라는 책이 있는데요. 예전에 직군 면접관 하셨던 분에게 추천 받아서 읽었는데 정말 괜찮더라구요. 프로그래밍 면접에서 어떠한 질문을 물어보는지 그리고 문제의 풀이방법이 잘 설명 되어 있어서 면접 준비하는데 큰 도움이 되었던것 같습니다.
  56. 마지막으로 팀 면접인데요
  57. 팀 면접의 경우 팀의 방향성과 일치하는지 평가하는 면접입니다. 팀마다 원하는 방향성, 인재상이 다 다르기 때문에 이러한 인재상을 채용 공고나 팀 인터뷰, 게임 등을 통해서 파악하시고 파악한 팀의 방향성이 본인과 맞는지 확인을 하고 준비하시면 될 것 같습니다.
  58. 여기까지 게임 프로그래머 채용 프로세스를 살펴보았는데요. 그러면 어떻게 준비하면 될지 준비 전략에 대해서 이야기 해보려 합니다.
  59. 제 생각에는 직군 면접 준비가 제일 중요한 것 같습니다. 왜냐하면 프로그래머로 업무 수행을 하기 위한 필수 지식이기 때문에 이것을 모르면 회사에 들어왔다고 하더라도 제대로 된 업무 수행이 불가능하거든요. 또한 이런 지식이 게임업계 뿐 아니라 IT업계에서 요구하는 보편적인 지식이구요 그리고 이러한 기초 지식을 쌓는 과정 도중에 본인이 잘하는 분야나 관심있는 분야를 파악할 수 있어서 도움이 되구요
  60. 직군 면접을 준비한 뒤 이력서, 포트폴리오, 팀 면접을 준비하면 될 것 같은데요. 이 부분은 본인의 전문 분야를 만들어서 표현 하는 것이 좋을 것 같습니다. 본인이 잘 하거나 흥미 있는 분야를 먼저 선정하시고 전문 분야의 프로젝트나 실습을 통해 경험을 만드셔서 그 경험에서 얻은 내용들로 표현하시면 될 것 같습니다.
  61. 커리어 클럽 직군 상담에서 많이 받았던 질문과 답을 정리해보려고 합니다
  62. 포트폴리오를 어떻게 준비해야할까요? 이 부분은 앞에서 정리해 드린 그 내용이 답 일 것 같아요. 본인이 작업한 분야를 명확하게 표현하고 면접관이 쉽게 확인 할 수 있는 형태로 준비해야겠죠
  63. 저는 언리얼 하는데 유니티 배워야 하나요? 저는 유니티 하는데 언리얼 배워야하나요? 팀 마다 엔진 경험을 선호하는 팀도 있습니다. 그런데 직군 면접에서 영향은 생각보단 크지 않은 것 같아요. 왜냐하면 직군 면접은 게임 프로그래머 직군의 능력을 평가하는 자리이기 때문이에요. 그런데 직군 면접 준비 후에 시간이 좀 있다면 엔진 지식을 배우는것은 괜찮은 것 같아요. 처음에 실무에 적응할때 도움이 좀 되더라구요.
  64. 저는 직군 면접에서 탈락하였는데 포트폴리오를 더 잘 준비해야 될까요? 직군 면접에서 탈락하였다면 다시 직군 면접 준비를 하는 것이 좋습니다. 왜냐하면 직군면접에서 탈락하는 이유가 포트폴리오 때문은 아니거든요. 직군 면접은 직군 면접 내용만으로만 평가합니다. 각각 단계마다 평가 기준이 다르고요. 통과 했다면 그 단계의 평가 기준은 통과했다고 보시는 것이 맞는 것 같습니다.
  65. 면접에서 떨어졌습니다. 실력이 없는 것 인가요? 만약 서류나 팀 면접에서 떨어졌다면. 해당 팀에서 현재 필요료 하는 인재상과 맞지 않을 가능성이 큰 편이에요. 이건 그렇게 낙담하지 않으셔도 될 것 같습니다. 그래도 다음에 지원하실때는 본인에게 맞는 팀인지 한번 생각해보시고 지원하시면 좀 더 합격률을 높일 수 있겠죠. 신입일때 어려울 수 있지만. 저는 본인에게 맞는 팀을 찾는것도 꽤 중요하다고 생각해서요. 그 과정이라고 생각하시면 될것 같습니다. 만약 과제 심사나, 직군 면접에서 탈락했다면. 요것은 절대적인 평가 기준에서 부족했던 것 이겠죠. 앞에서 제가 정리한 방법대로 실력을 쌓으시고 다시 도전하시면 좋은 결과가 있을 것 같습니다.
  66. 마지막으로 내용을 정리하자면
  67. 크게 3가지를 준비하시면 될 것 같아요. (내용 1,2,3) 읽기