티스토리 뷰
게임 소프트웨어(Game SoftWare) 개발자가 되려면?
[ 강연 영상 및 슬라이드 보러가기 : 클릭 ]
아침에 맨처음 진행된 세션이자 제일 먼저 들으러 갔던 강의입니다.
제가 게임업계에 몸을 담고는 싶은데.. 솔직히 뭘 배워야 하는지, 뭘 경험해야하는지 사전지식이 매우 부족합니다 ㅠ
(큰 틀의 지식은 갖고있는데 이거에서 뭘 걸러내야하는지 참 애매...)
이번 강연에서는 게임 개발자가 어떤 방향으로 가야하는지, 게임 개발자 세부에는 어떤 Part가 있는지, 어떤 스킬을 갖고 있어야 하는지에 대해 강연을 진행했습니다. 그런데 이분의 슬라이드가 거의 90%이상이 영어입니다 ㄱ- (일부로 영어로 제작했다고 합니다.)
번역하기 애매한게 대부분이라 저도 거의 대부분 강연내용을 영어로 올리겠습니다. 그런데 어차피 쉬운 영어가 대부분이라 읽는데는 지장 없을겁니다 :)
이번 강연은 과거에 블리자드 등 해외 기업에서 활동하셨다가, 현재는 넥슨에서 일하고 계시는 넥슨 플랫폼에서 활동하고 계시는 '박종천' 부본부장님 입니다.
우선 개발자는 다양하게 나뉩니다. 강연자 분께서는 그 타이틀을 크게 6가지로 나누셨는데요, Producer(제작자), Artists(원화가), Designer(외국 개념으로서는 '기획자'까), Engineer(개발자), Business Manager, QA(게임 품질관리 테스터) 이렇게 직군을 나누셨습니다.
파트를 나누면서 Engineer에 대해 재정의를 주셨는데, Engineer은 '실패를 막는 자'라며 Engineer가 버그를 발견했지만 고쳐지지 않는다면 그대로 폭망이라는 말도 주셨죠-_-ㅋㅋ
그리고 Engineer은 또 4가지 분야로 나뉘는데, Software Engineer, System Engineer(Linux. 네트워크 등 서버 엔지니어), DB Engineer, Cloud Engineer(AWS, Azure)로 나누었습니다.
그리고 'All Software Engineer' PPT 타이틀에서 4가지를 강조하신 사항이 있습니다.
이렇게 강조해 주셨습니다.
-
모든 것을 두루두루 잘하기전에 한가지만 파처 살해보자. (운동으로 치면 올림픽 달리기 선수가 마라톤도 잘하는것은 아니다.)
-
Science, Technology, Engine, Mathmatic (과학, 기술, 엔진, 수학)
-
모든 산업의 필요 요소 (은행, 군수업체 미사일, 심지어 신호등 체계에도..)
-
Top 10 Jobs in America (미국에서 10위안에 드는 직업)
-
너무 게임쪽에만 집중하지 말고 다른 소프트웨어 분야(구글 크롬은 어떻게 만들어 졌는가?, 병원 전산 시스템은 어떻게 만들어 졌나?)도 보자.
개발 덕담
강연을 진행하면서 개발담이 하나 나왔는데, 아는 분 중에 친구분이 군수업체에서 종사한다고 하셨습니다.
그런데 군수 쪽 분야 중에서 '미사일'에도 막 여러가지 신호/명령어가 담긴 소프트웨어가 들어가겠지요, 그런데 만일 이 소프트웨어에 버그가 생겨 막말로 스스로 지혼자 '펑' 하고 터진다면..?? 난리도 아니겠죠;; 이러한 사실 때문에 군수업체에서는 자기가 만든 소프트웨어가 10년뒤에 출시되는 경우도 있다고 합니다.
오랫동안 기달려야 자신의 작품이 나오는 이러한 일에 지루함을 느껴 트위터 회사를 옮기고, 일을 하는데 자신의 작품이 단 50분만에 출시되는 놀라움을 보았답니다. 개발자는 자신의 작품이 금방 나오고, 사람들이 즐기는 것을 보고 흐뭇한 미소를 짓는다죠..^^
게임 개발 중 'Tool' 역시 게임 제작에 있어 많은 영향을 끼칩니다.
게임 개발에 있어 Tool은 어렵게 느꼈던 작업을 쉽게 할 수 있도록 도움을 주는 소프트웨어 입니다. 게다가 Tool을 통해 게임 프로그래밍에 대해 잘 모르는 디자인 팀에서도 손쉽게 편집을 하여 게임개발에도 참여한다고 합니다. (그래서 Tool 개발자와 디자인 팀과 함께 협력하며 일을한다곤 하네요.)
소프트웨어를 개발자가 되기위해 어떤 스킬을 가져야 할까요?
-
수학, 물리
-
프로그래밍 언어 구분 : 어떤 프로그래밍 언어를 보고 이게 어떤 언어로 이루어진 언어인가(C, C++, C#, Java 등) 구분해 내는 능력 요구
-
Data Structure & 알고리즘 (디자인 패턴)
-
OS (Linux, Windows, iOS, Android)
-
하드웨어 (CPU, Memory 할당 개념 등)
-
새로운 기술 적응 스타일
위 6가지를 크게 강조하셨습니다.
햇갈릴까봐 위 목록에는 기재를 안했는데, '넥슨'을 기준으로 잡고 넥슨을 들어가기 전에는 '영어'가 필수조건은 아니지만, 넥슨에 취직 후에는 '영어'를 알아두는게 정말 중요하답니다. 그 이유는 나중에 구글링을 통해서도 프로그래밍 언어에 대해 검색하고 연구를 할 때 많이 사용하기 때문이랍니다.
(게다가 구글은 전세계의 플랫폼으로서 한 몫을 하는지라 프로그래밍 지식 또한 국내 네이버 등 보다 더 방대하겠죠?)
여기서 개발자분은 잠시 지식퀴즈를 내어주셨는데요, 여러분들도 읽어보시고 얼마나 아시는지 한번 테스트해보시기 바랍니다 :) (만약 이거 다 맞추면 바로 넥슨에 입사지원서 넣어도 된다고 장난삼아 말씀도 하셨지요 -_-ㅋㅋ)
-
Recursion, Index, Sort, Binary Search
-
Stack / Heap
-
Call by value / Call By Reference
-
Native Code
-
MVC Architecture
-
Write Simple text-based game
Talnet(재능), Practice(연습), Chance(기회)
PPT 타이틀에서는 3가지를 말씀하셨습니다.
1) Write Same Program many times (많은 시간을 통해 똑같은 프로그램을 여러번 만들어봐라.)
처음엔 아주 기본이라도 좋으니 게임을 만들게 하고, 두번 째는 첫 번째에 만들어진 게임에서 살을 조금 더 붙이게 하고,
세 번째는 이 게임을 얼마나 빨리 만드는지를 통해 3단계의 반복훈련을 강조했습니다.
2) Make it Working, Right, Fast
3) 프로그래밍 역량
예를들어 자신은 Java, C++이 뛰어나지만 C#을 모른다고 칩시다.
그런데 제가 원하는 회사에서는 C#을 요구합니다. 그러나 C#을 모름에도 운좋게 들어갔습니다.
그런데 막상 회사에 들어갔지만 C# 지식을 모른다는게 들통나 버린다면...??
4) Capacity(실력) = knowledge(지식) + Skill(능력) + Experience(경험)
게임업계쪽 고용은 크게 4가지로 나뉩니다.
이력서&자기소개서 → 코딩 테스트(기초지식 테스트) → 개발자 인터뷰 (스킬 파악) → 팀 인터뷰 (어떤 팀과 잘 맞을까?)
-
또 순서와는 별개로 팀마다 다르겠지만, Smart(똑똑한가?) 또한 본다는데, 즉 새로운 기술을 받아들이는데 빨리 배울 수 있나 등을 체크한답니다.
-
강연을 진행하신 분은 따로 2가지를 더 본다고 했는데요, '근면성실한지'와 '착한가?(인성)' 이 두가지를 보신답니다.
" 개발자가 갖춰야 할 9가지 기술 "
· Hard Skill : Learn By Studying
Basic Knowledge
Understanding for product
Developement Cycle
· Soft Skill : Learn By Experience
Project Management
Team Management
Process
· Business Skill : Learn from People
HR System (인사 시스템)
Business Manager
Vision Goals / culture
다음 질문들은 Q&A 세션 때 나왔던 질문들입니다.
Q. 자료구조 VS 프로그래밍 언어 어떤걸 먼저 파고드는게 좋을까요?
A. (결론적으로 말하자면) 둘 다 같이 배워나가는 것이 좋습니다.
Q. 블리자드 회사와 같은 해외 기업에는 야근 문화가 있나요?
(강연자분이 넥슨에 오기 전, 블리자드 등 해외 기업에 계셨다 합니다.)
A. 해외에는 야근 문화는 없으나, 만일 버그가 많다면 어쩔 수 없이 하는 경우가 있다.
그리고 저(강연자)는, 야근 문화에 대해서는 반대하는 편입니다.
Q. 넥슨 입사 전 영어가 요구조건이 되나요?
A. 아닙니다. 그러나 입사 후 구글 등을 통해 언어를 찾아봐서 소스를 짤 때 있어선 필요합니다.
Q. 입사 시 엔진 VS 프로그래밍 언어
A. 신입에게 언리얼 엔진 등을 바로 시키지는 않습니다.
(오히려 실력있는 자면 그에 대해 '이 사람이 나중에 이직을 할 것인가..?' 하는 의심을 할 수 있습니다.)
제 많은 궁금증을 한번에 해소시켜 준 강의가 된 것 같습니다. 개발자분께서 너무 어려운 용어를 사용하지 않으셨고,
초보자들도 충분히 이해할 수 있을 정도의 수준으로 강연을 진행해 주셨습니다.
특히 다른 개발자분들 께서도 가끔 '영어'를 강조하시곤 했는데 그 궁금증에 대해 확실히 해소시킨 강의였네요..
훌륭한 강연을 하셨던 박종천 님 정말 수고하셨고, 감사합니다.
후.. 이 강연의 글이 제일 늦게 올라왔네요 ㅠㅠ
오늘 NDC 관련 모든 글을 PC방에서 작성했는데, 하필이면 이 세션의 대부분적인 내용이 공책에 필기되어 있는데
공책을 안가져오는 바람에.. ㄱ- 늦게나마 작성 끝냈습니다 ㅠ
-
글 작성 참고
1. 인벤 : '스스로의 능력을 믿게 하여라!' 소프트웨어 개발자가 되는 방법
'간담회 및 현장 후기 > NDC 2016' 카테고리의 다른 글
[NDC 2016/1일차] 바람의나라, 아직도 서비스 해요? (2) | 2020.05.03 |
---|---|
[NDC 2016/3일차] NDC 2016 3일차 섬세한 리뷰 후기!! (0) | 2020.05.03 |
[NDC 2016/3일차] 모드개발 사례 연구 - 너를 믿어! 네가 믿는 유저를 믿어! (0) | 2020.05.03 |
[NDC 2016/3일차] 은토(NECORDER) 팀의 점심 야외공연! (0) | 2020.05.03 |