
23.10.14 - 넥토리얼(채용의 나라) : 게임 프로그래머가 되려면?
해당 세션의 내용을 듣고 제 나름대로 이해하여 정리한 내용을 업로드했습니다.
먼저, 해당 세션의 연사분께서 넥슨 전체의 의견이 아니라 본인의 기준이라고 언급하셨으므로 참고 부탁드립니다!
1. 게임 프로그래머의 마음가짐
- 기획 설계, 아트 디자인에 맞춰서 기존에 계획된 것을 만든다.
- 조직의 규모가 커질수록 프로그래머의 역할이 제한된다.(원하는 것을 하지 못해서 상처입거나, 적응 어려울 수 있다)
- (위 항목과 연결) 내가 원하는 게임을 만들 수 없다는 생각이 들 수 있다.
- 프로그래머는 다른 직군의 꿈을 (기술을 통해) 현실로 만들어주는 사람이다.
2. 신입 프로그래머에게 기대하는 것
- 새싹 두뇌 : 배운 것을 잘 흡수 할 수 있는 능력을 원한다.
- (구체적으로) 2~3년 정도 지난 후에 1명의 역할을 할 수 있는 사람을 원한다. (발전 가능성, 처음부터 잘하는게 이상한거!)
- 신입 프로그래머 적응을 위한 과정이 따로 있다. (3~6 개월은 최소한의 업무를 하며 공부하는 시간)
- 신입의 덕목이라고 생각하는 요소 : CS 지식, 컴퓨팅적 사고, 열린 마음, 열정 (시간 투자)
3. 신입의 덕목, 항목 별로 자세히 살펴보기!
(1) 열린 마음
- 모든 것에는 이유가 있다. (이전의 코드나 환경들이 그렇게 운영되고 있는 이유가 있음)
- 내가 이미 알고 있던 것과 충돌 경험이 생길 수 있다.
- 기존 코드를 통해 누군가의 경험을 내 것으로 만들자. (시니어의 것을 내 것으로!)
- 내가 알고있는 것이 틀렸을 수도 있다. 열린 마음으로 받아들이는 태도 장착하기
(2) 열정 == 시간 투자
- 누군가의 경험을 배우고 내 것으로 만들려면 시간이 소요 된다.
- 작업 시간이 부족한게 체감될 수 있다.
- 부족한 것을 채울 때 근무 시간만으로는 부족하다. >> 따로 개인 공부시간 필요
- 공부 내용은 내 주변(팀, 업무) 이슈를 파악하면서 점점 넓혀야 한다.
++ 질문 잘하는 방법 (아래 3가지를 필수로 포함하기)
- 궁금한 부분을 짧고 간결하게 묻기
- 그 부분이 왜 궁금한지(어떤 작업 때문인지) 설명하기
- 본인이 이 문제를 해결하기 위해서 어떤 노력을 했는지 같이 설명하기
>> 동료에게 최소한의 예의를 지키면서 질문하는 방법 & 본인이 이를 해결하기 위해 노력했다는 것을 어필해야 한다. 넥슨은 수평적인 문화로, 서로 알려주기 위해 노력한다. 이런 질문의 자세가 매우 중요하다.
(3) 컴퓨팅적 사고 == 논리적 사고
- 문제를 알고리즘으로 해결하기
- 업무 요청을 받았을 때 어떻게 만들지 그려내는 능력 >> 구현 능력, 아키텍쳐 짜보기
- 스스로 만들어보는 연습 필요
(4) CS 기초 지식
- 컴구, 운체, 언어론 등 기본 지식 함양하기
- 이러한 CS 지식은 (로직의 버그가 아니라) 제약이 있는 상황에서 발생하는 버그에 대응할 수 있게 만든다.
- 예를 들어, HW 제약 상황에서, CS 지식의 차이로 해결 능력이 달라진다.
- 개발할 때 성능적 한계를 미리 설정해보기, 시스템 설계 기반 지식 고려하기
(5) 자료구조 & 알고리즘
- C++ STL에 대한 충분한 이해가 필요하다. << 매우 중요
- C#의 컨테이너에 대한 충분한 이해 등
- 자료구조, 알고리즘, 언어론에 대해서 충분히 공부하고 깊게 파고든 사람을 원한다. (가볍게 아는 것은 면접으로 걸러냄)
(6) 기초 그래픽스 지식
- 신입에게 심도 있는 그래픽스 지식을 요구하지 않는다.
- 기본적인 학습 수준, 사용해본 경험으로 충분하다. 업무 하면서 공부하면 된다.
- But 행렬, 벡터 등 기초 수학 지식이 있어야 한다.
(7) 병렬 처리 - 서버 직군
- CS에 대한 더 확실한 이해를 요구한다.
- CS 기본 지식을 바탕으로 서버 병렬 처리 경험, 서버를 만들어 본 경험이 있는 것이 좋다.
- 쓰레드 개수, 쓰레드 관리 등 고민한 경험이 있어야 한다.
(8) 고급 개념
- 디자인 패턴 등 기존 프로젝트에서 쓰인 고급 지식을 적용하는 것을 신입에게 요구하지 않는다.
- 신입은 들어와서 배우고, 스스로 공부하기를 원한다.
(9) 언어론, 언어의 이해 : CS 기본 지식과 결합하여 언어의 구조를 끝까지 파고드는 것이 좋다
(10) 게임 엔진 - Unreal, Unity
- 엔진 특성을 이해하고, 기본 정도 사용해 본 경험이면 충분하다.
- 들어와서 충분히 학습할 수 있다.
(11) Database
- 전공 과목에서 들은 DB 지식이면 충분하다.
- 조직에 DB 관련 특화 프로그래머가 있거나, DBA의 전문적인 도움을 받기 때문에 기본에만 충실하면 된다.
(12) 커뮤니케이션 능력
- 면접 당락에 꽤 영향을 주는 요소이다. (진행자는 +/- 20% 정도라고 생각)
- 인간의 인터페이스는 말과 글이다.
- 기술 배경 지식이 없는 동료(타 부서)와 업무 이야기를 자주 해야한다.
- 개발 문서를 써야하는 경우도 있다.
- 잘못된 이해를 기반으로(소통 이슈) 개발하면 막대한 시간 손실 발생하므로 주의!
- 면접 시 중요 평가 요소 : 본인이 알고 있는 것을 얼마나 잘 설명하는지, 질문 의도를 빠르게 파악하는지
++ 면접에서 묻는 내용에 잘 대답하려면 어떻게 공부할까?
Why? / How? / When? -> 3가지 요소를 충분히 고려하고 정리하면서 공부하기
(이게 왜 필요한지 / 어떻게 작동하는지 / 언제 사용하는지)

넓고 깊게 공부하기 -> 언어와 자료구조는 깊이 공부하는게 중요하다. (단순 문법 X, 원리나 내부 구조까지 뜯어봐야함)
4. 면접 준비는 어떻게?
포트폴리오 : 포폴 자체의 비중보다, 포폴을 기반으로한 꼬리 질문이 있는데, 여기에 답하는게 더 중요하다.
프로젝트를 진행하면서 얻은 경험을 잘 말할 수 있어야 한다.
경험의 과정에 대해서 주로 질문 -> 사용한 기술, 트러블 슈팅 경험 등
경험 : 하나의 프로젝트를 끝내는 과정에서 얻게되는 것들
- 목표 수립 했던 것을 이루는 경험
- 협업 경험
- 이론으로 알고있던 기술의 실제 사용
- 과정에서 겪은 시행 착오 및 발전한 내용
코딩테스트
올해 난이도 : 넥토리얼 1회~2회 사이의 수준, 문제 접근할 때 효율성 측면에서 생각하기
면접 과정
직군 면접 : 기술 지식 및 경험에 대한 평가
팀 면접 : 팀에 맞는 인재인지, 제약 없는 평가
자유 Q&A 세션 내용 정리
면접 꼬리 질문 - 포트폴리오, 이력서 상의 프로젝트 경험에 대한 꼬리 질문 조심하기, 관심 분야에 대한 꼬리 질문 조심하기
보안 의식 중요(프로젝트 관련) - 함부로 중요한 코드를 포폴에 올리지 마라, 본인 경험을 general 하게 작성해도 된다.
사내 코드 리뷰는 어떻게 진행하나? - 팀바팀이지만, 빔이나 외부 툴 이용하기도 함, 코드 한 줄씩 뜯어보기!
누군가 작업을 끝내면, 파트장 등 다양한 사람들이 코드에 대한 코멘트를 남김, 디버깅도 같은 방법으로 진행
+ 기회가 되면 학생 시절에 코드 리뷰 해보기, 좋은 경험이 될 것이다!
지금까지 보신 것 중에 기억나는 최악의 코드는?
- 알고리즘 깊이가 없는 단순 조건문 나열 코드 (과도한 조건문)
- 어이없는 변수명 (무맥락 a, b, c, d 난사)
- 완전 기본, 프로토타입만 있는 코드
의사소통 능력?
- 면접하면서 면접관의 질문 의도를 추측, 파악하는 능력도 중요하게 봄
- 위 내용을 잘 파악하면, 협업하기 좋은 팀원이라는 인식을 준다.
'IT - 취업 DB' 카테고리의 다른 글
면접 복기 [24.06.07] (0) | 2024.06.07 |
---|---|
면접 대비 - 공통 질문 리스트 (0) | 2024.05.30 |
이화 멘토링 데이 (IT 현직 선배님들과) [23.03.25] (0) | 2023.03.25 |
Google Career Talk @이화여자대학교 [23.02.10] (0) | 2023.02.10 |