https://www.youtube.com/watch?v=9XNFtbUmsLY&list=PL-YpDMxwRh8ipzTcgI3xONrF4uSm7vyHy&index=26
이 글은 영상의 내용을 개인이 정리한 글입니다.
윤석주 프로그래머님께 감사드립니다.
◆게임 프로그래머 채용 프로세스
1.서류 심사
1.1 이력서, 자기소개서
1.2 포트폴리오
2.과제 심사 (온라인 코딩 테스트)
3.직군 면접
4.팀 면접
◆◆1.서류 심사
◆면접관이 원하는 것
▷프로젝트 관련 경험, 의사 결정에 관한 경험, 지원자의 관심 분야
◆이력서, 자기소개서 - 프로젝트 관련 경험 예시
●개인 프로젝트
▷개인적으로 연구한 분야, 결과물
●팀프로젝트
▷주어진 과제
▷과제를 해결하기 위해 사용한 기술
=> 현재 팀에서 필요한 인력 수요와 교집합이 많은지 판단하고, 채용 후 어떤 업무를 부여 할 수 있을지 판단하는 요소
ex) <퍼즐 주주> 프로젝트에서 두가지 목표가 있었을 떄
1. 다양한 수요에 대응하는 것
2. 서버 비용을 최소화 하는 것
위의 목표를 달성하기 위해 Scale-in/out이 가능한 구조로 서버를 설계하였고 AWS EC2 Auto Scaling Group을 사용하여 목표를 달성하였습니다.
◆이력서, 자기소개서 - 의사 결정에 관한 경험
●예시
▷프로젝트 일정이 부족 했을 때
▷구현이 어려운 목표가 주어졌을 때
●의사 결정을 한 과정, 이유
●의사 결정으로 얻은 경험
=> 현업에서도 비슷한 의사 결정을 통해 업무가 진행되므로 이러한 경험을 공유하는 것이 좋다.
◆이력서, 자기소개서 - 지원자의 관심 분야
●앞으로 하고 싶은 업무 분야
●기술적 관심 분야
●열정적인 취미 (개임 개발과 관련이 없어도 괜찮다.)
=> 채용 후에 지원자의 성장 모습 또한 조직에서는 중요하기 때문에 관심이 많다.
◆포트폴리오 - 면접관이 원하는 것
●지원자가 연구한 과정, 결과물
●팀 프로젝트에서 지원자가 기여한 부분
●구현 스타일, 코딩 스타일
◆포트폴리오 - 면접관의 불만
●팀 프로젝트에서 본인이 작업한 부분을 알기 어렵다.
●회사에서 작업한 프로젝트 소스가 온다.
●읽는 사람을 고려하지 않는다
▷코드 파일만 있거나
▷회사 보안상 EXE 실행 어려움
▷HWP, ALZ, EGG 등
◆포트폴리오 -이렇게 준비하면 좋음
●본인이 작성한 코드를 읽을 수 있는 형태로 전달
▷GitHub 프로젝트 링크
▷오픈소스 기여한 부분에 관한 링크
▷본인이 작업한 코드 위치와 간략한 설명
●시연이 가능하다면 동영상으로 준비
▷본인이 작업한 부분 유튜브 영상 링크
▷위 작업을 구현한 코드
ex)
●3D팀 프로젝트에서 카메라를 구현 했다면 카메러 구현영상을 유튜브에 올리고 카메라 코드를 첨부함
●결과뿐 아니라 관정에 대한 설명도 포함
▷구현을 하기까지의 작업들
▷시행착오를 겪은 부분
▷이슈 발생 시 의사 결정 과정
◆정리하자면
●자기소개서
▷프로젝트 관련된 기술과 의사 결정 경험을 공유
▷관심 분야와 하고 싶은 롤을 표현
●포트폴리오
▷본인이 작업한 분야를 명확하게 표현
▷면접관이 알아보기 편한 형태로 준비
◆◆2. 과제심사(온라인 코딩 테스트)
●알고리즘 문제 해결능력을 보기 위한 절차
●이런한 테스트를 처음 접해보면 실력발휘가 어려울 수 있으므로 연습할 것
●국내사이트
▷NYPC 공개 문제
▷카카오 공채 코딩 테스트
▷백준 온란인 저지
●해외사이트
▷Codility
▷LeetCode
▷HackerRank
◆◆3. 직군 면접
●게임프로그래머 직군의 능력을 평가
▷게임 엔진(유니티, 언리얼)외에 전반적인 전산학 지식을 폭넓게 요구함
◆<드래곤 하운드> 프로그래머라고 가정
●기술 스택
●언리얼 엔진 (C++)
●실버바인서버엔진2 (C#)
◆클라이언트 - 언리얼 엔진
●그래픽스 관련 지식
●3D 행렬
●카메라
●좌표게
●랜더링 파이프라인
●관련 수학 지식
◆엔진에서 쓰이는 C++에 대한 지식
●OOP개면
▷상속
▷다형성
▷가상함수
●템플릿
●STL ?
◆메모리관련 지식
●스택
●힙
●메모리 풀
●스마트 포인터
◆서버 - 실버바인서버엔진2 를 만드려면
◆C#에 대한 이해
●VM
▷GC
●Generic
●C# Collection들 - List, Dictionary
◆서버에서 여러 개의 요청을 동시에 처리하기 위한 방법
●Thread
▷Lock
▷DeadLock
●Micorthred(coroutine, fiber) (장단점 파악)
◆서버에서 여러 연결을 효율적으로 처리하는 방법
●IOCP
●epoll
◆DB에 대한 지식
●Transaction
●SQL
●Stored Procedure
●NoSQL
▷Redis
◆서버 클라이언트 통신
●TCP, UDP
●어떻게 동기화를 할 것인가?
●메세지를 어떤 방식으로 보낼 것인가? (Serialization)
◆알고리즘, 자료구조
●게임에 많은 데이터를 보관, 처리하는 방법들
●요구 상황마다 어떤 방식이 효율적인지 알아야 함
●결론은 각각 자료구조, 알고리즘의 특징을 알아야 함
◆정리하자면
●언어(C++,C#)
●그래픽스
●네트워크
●알고리즘, 자료구조
●DB
●서버-클라이언트 동기화
●Thread
●+전산학 지식
▷전산학 지식은 엔진과 달리 바뀌지 않는 소중한 기초지식이다.
◆책으로 공부하는것을 추천
●전산학용 책 추천
▷C로 배우는 알고리즘
▷Introduction to algorithms
---
●언어용 책 추천
▷Effective C++
▷C# in Depth
▷Inside C#
---
●그래픽스
▷DirectX11을 이용한 3D 게임 프로그래밍 입문
▷Real-Time Rendering
---
●면접 대비
▷프로그래밍 면접 이렇게 준비한다.
◆◆4. 팀 면접
●팀의 방향성과 일치하는지 평가
●팀마다 원하는 방향성, 인재상이 다름
▷채용 공고, 팀 인터뷰, 게임 등을 통한 파악
▷파악한 팀의 방향성이 본인과 맞는지 확인
◆준비 전략
●프로그래머는 직군 면접 준비를 소홀히 해서는 안 된다
●프로그래머로 업무 수행을 하기 위한 필수 지식
●게임업계 뿐 아니라 IT업계에서 요구하는 지식
●기초 지식을 쌓는 경험 도중에 잘하는 분야/관심 있는 분야를 파악할 수 있음
●이력서, 포트폴리오, 팀 면접은 전문 분야를 만들어서 표현
●본인이 잘 하거나 흥미 있는 분야를 선정
●전문 분야의 경험을 만들어서 표현
▷연구 분야에 대한 PT, 동영상, 소스 코드
▷오픈 소스 프로젝트 참여
▷완수 후 얻은 경험
'게임개발' 카테고리의 다른 글
진행중인 프로젝트... (0) | 2023.05.22 |
---|