이번 넥토리얼이 열리면서 채용의 나라도 같이 열렸다.
작년에 신청을 못해서 가지 못했었는데, 이번에는 신청해서 채용의 나라를 가게 되었다. 후기를 남겨보고자 한다.
10시 입장이어서 빠른 입장을 위해 9시쯤 건물 앞에 도착했다.
그런데 줄이 이미 어마어마 해서 놀랐다... 10시 딱 맞춰 왔으면 들어가는데만 30분은 썼을 듯...
타임테이블은 이랬는데 커리어 세션중 관심 있는건 첫 타임과 마지막 타임 이었다. 10시 반에 시작하기 때문에 일단 들어가자마자 직무 상담을 먼저 받고 그 뒤로 커리어 세션에 들어갈 생각이었다.
직무 상담
나와 같은 생각을 한 사람이 은근 많아서 한 15분?? 정도 기다려서 직무 상담을 받을 수 있었다. 그 전에는 특정 장소에서 기다려야하고 본인 차례가 됐을 때, 자리에 없으면 순번이 밀리는 형식이다.
질문은 아래와 같이 했고 그에 대한 답변이다.
1. 게임 개발 과정에서 가장 크게 느끼는 기술적 도전과제와 그것을 극복하기 위한 접근 방식에는 어떤 것들이 있나요?
프로그래머라는 아트와 기획 직군에서 원하는 모양을 제작하기 위해 노력하는 직군이다. 원하는 모양을 내기 위해 모든게 도전과제이며 어려운 과정이 있다면 근무시간 뿐만 아니라 개인적인 시간을 투자하는 편이다. 구글을 항상 사부로 둬라.
2. 개발 팀 내에서나 다른 팀원들과의 협업 시 커뮤니케이션 방식이나 도구, 프로세스는 어떻게 진행되나요?
다른 직군과 소통을 할 땐 대부분 메일이나, 문서로만 소통을 한다. 형상 관리는 팀마다 다르다. Git을 사용하는 경우도 있고 Svn을 사용하는 경우도 있고 다양한 형상관리 툴을 이용한다. 심지어 예전에는 폴더로만 관리 하는 팀도 존재했다.
3. 게임 개발자의 관점에서 "과거로 돌아간다면 이것만은 해야겠다"는 것이 있을까요?
(기본기 강화, 특정 기술이나 도구 습득, 소통과 협업 능력 향상, 작은 플로젝트 완성, 지속적인 학습 및 내트워킹)
모두 다 중요하다고 생각해서 우선순위를 매길 수 없다.오히려 과거로 돌어가면 그냥 1년정도 쉬고 싶다.
4. 클라이언트 개발자를 희망하고 있지만, 서버에 대한 지식이 필요하다고 생각해서 같이 병행하고 있습니다. 이게 올바른 방식인지 궁금합니다.
넓게 아는 것은 분명히 중요하다. 그렇지만 더 중요한건 '정확히' 아는 것이다. 넓게 키워드라도 알고 있으면 분명 도움이 된다. 취업을 하게되면 자신이 맡은 업무가 있을 것이고 그것을 깊숙하게 공부하는 것이 좋다고 생각한다. 결론적으로 넓게 정확하게 아는 것이 중요하다.
5. 현재 포트폴리오로 유니티로 rpg의 기능들을 연습하기 위해 서버를 붙여서 온라인 RPG를 1인 개발 한적이 있는데, 여기서 다른 엔진을 이용한 추가적인 포트폴리오를 제작해야할지 CS 지식이나 언어에 대한 공부를 해야할지 방향성이 잡히지 않습니다.
모든 팀이 포트폴리오 첨부는 필수라고 명시한다. 하지만 모든 포트폴리오를 정확하게 전부 확인할 수가 없다. 그저 포트폴리오는 하나의 '단계' 라고 생각한다. 결국 입사후 사용되는 지식은 CS나 언어와 같은 내용이기 때문에 이것을 공부하는 것이 낫다고 생각한다. 다만 자신이 포트폴리오에 대한 내용은 전부 알고 있어야한다. 면접에서 물어볼 것이다.
6. 게임의 퀄리티를 보장하는데 있어 프로그래밍도 중요하지만 아트 직군도 매우 중요하다 생각합니다. 그런데 혼자서 포트폴리오를 제작할 경우 아트 파트의 부재로 인해 게임의 퀄리티가 낮아 보일 수 있는데 이런게 프로그래머로 취직하는데 있어 불리할까요?
전혀 그렇지 않다. 겉보기에 게임이 멋있어 보이면 있어보이지만 1인 개발이라고 멘션을 했다면 어떤 에셋을 썼는지 중요하지 않다.
7. 포트폴리오를 제작할 때, 기술적 연습을 위한 모작이나 습작과 게임 출시 경험 중 어느것을 더 선호하는지 궁금합니다
둘 중 어느것이든 상관 없다. 결국 모작도 그 게임을 플레이해봤다는 것이고 그걸 다시 기획했다는 것을 의미한다. 출시도 마찬가지로 처음부터 기획했다는 의미라 출시를 해봤다고 선호하거나 그러진 않는다. 다른 얘기지만 팀 프로젝트의 경우 자신이 무슨 역할을 했는지 정확히 명시하길 원한다. 가끔 자신이 맡은 파트가 그렇게 크지 않았는데 엄청난 포폴을 제출하시는 분이 계신다. 그런 경우는 면접에서 상당히 힘들 것이다. 개인 프로젝트의 경우 개인이라는 것 자체가 완성도가 있다고 생각한다.
8. 포트폴리오를 제출할 때 꼭 "게임" 이어야만 하는지, 대학교 내에서 진행한 졸업 프로젝트라던지 논문이라던지도 제출 가능한지 궁금합니다.
아니다. 본인은 검색 엔진에 관심이 많았는데, 여기에 들어가는 알고리즘을 어떻게 사용했고 등을 적었다. 포폴은 결국 자신을 어필하는 것 그 이상 그 이하도 아니다.
9. 조금 실례되는 질문 일 수 도 있지만 저는 관련 전공 학과를 나와서 소위 게임 학원에 대한 생각이 전혀 없고 독학으로만 생각했는데, 그런데 많은 사람들이 게임 학원을 다니는 모습을 보고 다녀야 하나? 생각이 듭니다. 혹여 회사나 개인적으로 게임 학원에 대해 어떻게 생각하시는지 궁금합니다.
학원 자체로도 완성도가 있는건 분명하다. 하지만 대학교에서 배우는 것 만으로도 충분하다고 생각한다. 양쪽 다 회사에 취직을 해서 못하는 경우는 없었다. 대학교만 나온 사람이라고 일을 못하거나 학원 나온 사람이라고 일을 엄청 잘하거나 하지 않는다.
10. 신입에게 바라는 인재상은 어떤것인지 궁금합니다.
열린 생각이 중요하다. 누군가가 짰던 코드를 보고 그걸 이해하는 과정에서 열린 생각이 필요하다. 분명 필요에 의해서 제작됐을텐데 이것을 부정적으로 보든 긍정적으로 보든 열린 생각이 중요하다. 결국 이렇게 이해하기 위해선 열정도 필요하다.
11. 신입으로 입사를 해서 선배 프로그래머들이 작성한 코드를 리팩토링하는 것이 주 업무인가요?
바로 그것을 요구하진 않는다. 들어오고 나서는 교육을 먼저 받게 될것이고 2년 내지 3년안에 개발 가능한 인원으로 만든다. 그리고 신입이 짠 코드를 애초에 신뢰를 하지 않는다.
12. 단적으로 나눌 수 없겠지만, 그래도 신입 기준 CS 지식이 좋은 사람과 포트폴리오가 훌륭한 사람 중 어느 사람을 선호하나요?
CS 지식이 좋은 사람을 선호한다. 포트폴리오나 자기소개서는 하나의 통과 과제일 뿐이다. 하지만 직군 면접에서 떨어지는 사람이 진짜 많다. 그렇기 때문에 이를 공부하는 것을 추천하기도 한다. 1인 과제를 만들정도면 포트폴리오는 어느정도 갖춰졌다고 생각한다.
13. 기본적인 프로그래밍 능력을 탄탄히 다지는 것과 멀티스레드, 네트워크 프로그래밍과 같은 고급 주제를 공부하는 것 사이에 어떤 우선순위를 두면 좋을까요?
반반이라고 말하고 싶다. 그 이유는 CS 지식을 제대로 공부하기 위해선 언어에 대한 이해가 분명히 필요한 경우가 있다. 이론만 공부하는 것보다 실제 코드와 연관지어서 공부하면 좋다. 그리고 사실 취업할 때 언어에 대한 이해는 거의완벽을 요구한다. 지원자격 같은 곳에 "C++을 능숙하게 다룰 수 있는 사람, C#에 대한 이해가 있는 사람" 이라고 적혀져 있는 경우 해당 언어에 대한 이해를 완벽한 수준으로 이해하면 된다. 주어진 문제를 언어를 써서 해결 가능할 정도 라고 보면 된다.
14. C++의 경우 메모리 관리가 매우 중요하다고 알고 있다. 현업을 할때도 메모리에 대한 버그가 많이 발생하나요?
대부분의 경우 메모리 관리 툴을 만들어 놓고 제작한다. 다른 사람이 실수하지 않게 메모리를 관리하는 툴만 제작하는 사람도 있다.
15. 모집 조건 중 스킬이나 역량이 비교적 간단하게 적혀져 있는 경우가 있는데 이외에 따로 필요한게 있나요?
대부분 거기 적힌 것이 대부분이다. 엔진에 대한 이해가 필요하다고 한 경우 Unity나 Unreal에 대한 이해가 있으신 분 이라고 적혀있다. 그게 아닌 이상 크게 요구하지 않는다.
15분 가량 질문답을 할 수 있었다. 질문에 대한 답변이 나름 괜찮아서 방향성을 잡은것 같다.
그 이외
회사가 너무 이뻐서 동기부여가 됐다. 자그만하게 이벤트도 열었다.
커리어 세션같은 경우 작년이랑 동일한 내용이 진행되는 것 같아서(10시에 갔는데 플밍은 15시에 시작해서...) 작년에 들었던 분의 내용을 따로 정리했다.