SlideShare una empresa de Scribd logo
1 de 102
고려대게임트랙특강 | 김주복




     게임프로그래머의소양


                                     Ⓒ 2008-2009 NEXON Corporation & devCAT Studio. All Rights Reserved
M2 team, Game Development Team for Mabinogi in devCAT (The 3rd Development Division in NEXON Corp.). M2 team Director is Kim, Dong-Gun | Project W is produced by Kim, Dong-Gun
                          devCAT Engine team, Engine Development Team for Project W and more. Engine Team Technical Director is Jeon, Hyeong-Kyu
게임프로그래머의소양?
               게임 프로그래머로써 스스로 만족하고
   좋은 평가를 받으며 일할 수 있는 요건과 준비 방법에 대해서
                       학부 졸업 기준으로 설명
이미 진로를 게임 쪽으로 생각하고 계신 분들일테니

솔직한 내용 위주로…


           그렇지 않은 분들 대상으로는 듣기 좋은 얘기를 많이 하는 대신에
                               아무래도 실속이 덜하니까…
굳이 전산학이나 게임 프로그래밍에 한정되지 않는

포괄적인 이야기



                             당신 뭐하는 사람이길래…
김주복
 넥슨9년차 | 기술면접5년
2001   무선사업팀 도트디자이너
2001   마비노기팀 리드 프로그래머
2003   마비노기 프로그래밍팀 팀장
2005   그룹웨어 개발팀 팀장
2006   W팀 테크니컬 디렉터
2008   3  실      실  장
2009   마비노기 2 개발 디렉터
5년간 기술 면접을 봐 온 경험을 통해서 말하자면, 학부 졸업생은…

많이 아쉬운 게 사실


              전산학 기본, 문제 해결 능력, 코딩 숙련도 등의 전문 지식도
                      회사에서 프로페셔널로 일하는 자세 면에서도
                              현업 기준 미달인 경우가 대부분
학부 졸업하면서 모든 걸 갖추고 오는 걸 기대하는 건 아니지만…

중요한 것을 모른다는 인상


                  학교에서 배우는 개념과 과목은 정말로 중요하다는 사실
    취업 준비도 면접에 집중되어 있지 취업 후의 조직 생활에 대해서는 준비하지 않는다
           세상에 널려있는 레퍼런스를 못 찾아서 뭘 보고 공부해야 할 지 모른다
            그런 의미에서 고려대 게임 트랙은 현업 입장에서 고무적이고 반가움
정작 회사에서 중요하다고 생각하는 건 하나도 모르는데…

게임 프로그래머가 된 후에
어떻게 살아갈 것인가?
눈 앞에 있는 허들을 넘는 것도 중요하지만,

장기적인 비전을 가져라


    게임 프로그래머가 되어서 장기적으로 어떤 목표를 갖고 어떤 성과를 내고 싶은가?
           이 강연은 이런 것까지 필요한 줄 몰랐다 싶은 것에 발목 잡히지 않고
                  여러분이 원하는 목표에 집중할 수 있도록 도와주는 힌트
고려대게임트랙특강



회사에서 일을 하는 자세의 문제

1 | 마음가짐
프로그래머가 아니라 게임 개발자라면 가져야 할 역량

2 | 공통 역량
게임 프로그래머를 게임 프로그래머답게 만드는 역량

3 | 전문 역량
      2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
고려대게임트랙특강



회사에서 일을 하는 자세의 문제

1 | 마음가짐
프로그래머가 아니라 게임 개발자라면 가져야 할 역량

2 | 공통 역량
게임 프로그래머를 게임 프로그래머답게 만드는 역량

3 | 전문 역량
      2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
고려대게임트랙특강




                    1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자




           2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
‘어른이 되자’라니 무슨 소리인가?

이미 어른인데?



                      법적으로도 생물학적으로도 사실이긴 한데…
<어른>의 사전적인 정의는

다 자라서 자신의 일에
책임을 질 수 있는 사람

                 세금도 내고 죄 지으면 감옥도 가고…
                 자신의 선택에 책임을 지는 것이 어른
부모님도 국적도 마음대로 고를 수 없지만

직업은 인생에서 몇 안 되는
선택할 수 있는 것 중 하나
어른이라면 자신의 일에 책임을 져야 하는데…

자신의 직업과 캐리어를
책임질 준비가 되어 있나?


        직업 선택과 직장 생활에서의 성공과 실패, 양쪽 모두 여러분 자신의 책임
직업을 선택하고 직장을 고르는 데 있어서

성공의 요건?



            직업 선택과 직장 생활에서 실패하고 싶은 사람은 없을테니까…
내가 하고 싶은 것

내가 잘 하는 것

다른 사람들이 원하는 것
   이 세 가지를 일치시키는 직업과 직장을 선택하는 것이 성공 가능성을 높여준다
내가 하고 싶은 것
‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화

내가 잘 하는 것

다른 사람들이 원하는 것
내가 하고 싶은 것
‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화

내가 잘 하는 것
사람은 누구나 자신의 역량을 과대평가하기 쉽다, 조금 냉정해지자

다른 사람들이 원하는 것
내가 하고 싶은 것
‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화

내가 잘 하는 것
사람은 누구나 자신의 역량을 과대평가하기 쉽다, 조금 냉정해지자

다른 사람들이 원하는 것
보통 관심을 갖기 쉽지 않고 내가 어떻게 바꿀 수가 없다
어려운 선택이지만 직업과 직장 선택은 시작에 불과하다

입사 이후의 캐리어 관리
역시 자신의 책임

                    나중에 가서 이런 걸 공부해뒀으면 좋았겠다든가
        적성에 안 맞거나 프로젝트가 별로라든가 얘기해도 결국은 자신의 책임
                   올바르게 선택하기 위해서는 잘 아는 것도 필요하다
고려대게임트랙특강




                    1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자




           2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
여기서 말하는 프로페셔널의 의미는

전문 지식을 활용해서
대가를 받고 일하는 사람


      일정 수준 이상의 전문성이 결여되어 있다면 프로페셔널이라고 부르지 않는다
그런데 사람들이 어떤 재화나 서비스에 대가를 지불하려면…

객관적 가격 < 주관적 가치


          즉 프로페셔널은 전문 지식을 활용해서 클라이언트가 지불한 대가보다
      더 싼 비용을 사용해서 더 가치가 있는 결과물을 만들어내는 사람을 의미한다
클라이언트가 지불한 가격보다 자신의 작업물의

가치를 높이는 방법?


           여기서 클라이언트는 게임을 플레이하는 플레이어일 수도 있고,
                        작업을 지시하는 디렉터일 수도 있고,
                내 작업물을 바탕으로 작업하는 팀 동료일 수도 있다
클라이언트의 의도를 읽어라

디테일에 집중하라

갖고 있는 스킬을 발전시켜라
클라이언트의 의도를 읽어라
말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법

디테일에 집중하라

갖고 있는 스킬을 발전시켜라
클라이언트의 의도를 읽어라
말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법

디테일에 집중하라
이런 부분은 신경 안 쓰겠지, 한 부분이 모여 결과물의 격을 떨어뜨린다

갖고 있는 스킬을 발전시켜라
클라이언트의 의도를 읽어라
말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법

디테일에 집중하라
이런 부분은 신경 안 쓰겠지, 한 부분이 모여 결과물의 격을 떨어뜨린다

갖고 있는 스킬을 발전시켜라
전문성이 떨어지는 프로의 인건비는 전문성이 높은 쪽보다 비싼 셈이다
전문직이라면 프리랜서라도 프로페셔널

자긍심을 가진
프로가 되자

          직업에 대한 자부심과 자신감을 갖고 일하는 것은 매우 중요하고,
              그 자부심과 자신감을 계속 가질 수 있도록 노력해야 한다
고려대게임트랙특강




                    1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자




           2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
회사가 신입 사원을 채용하는 이유?

다양성과 활력을 보충


               모든 조직은 지속적으로 신규 구성원의 유입을 필요로 한다
      그렇지 않은 조직은 경직되고 관습화되어 가치가 있는 일을 이뤄낼 수가 없다
                   조직에서 빠져나가는 사람이 없다고 해도 마찬가지다
특히 게임 업계는 컨텐츠를 만들어야 하는 업무 특성상

창의적인 분위기가 중요



        게임 회사 입장에서도 사원 하나 하나의 재능과 개성이 중요하다는 의미
그렇다면 내 개성과 재능을 맘껏 펼쳐서 일할 수 있겠네요?

창의적 환경 != 무제한의 자유


                               이 부분을 오해하는 사원의 경우,
     창의적인 분위기가 사원들에게 아무런 규칙도 적용하지 않아야 한다고 생각하고
       조직이란 것 자체나, 조직 고유의 규칙이나 문화에 반감을 갖는 경우도 많다
여러분들이 개성과 재능과
하고 싶은 일을 갖고 있는 것처럼
회사도 지금까지의 이뤄온 성과와
문화, 사업 계획을 갖고 있다
조직과 개인간의 관계에 있어서도

상호 이해가 중요


                           여러분의 개성과 재능을 인정받으려면
             조직의 문화와 규칙을 이해하고 받아들이려는 노력도 필요하다
       조직이란 실체가 없는 무엇인가가 아니라 결국 구성원 하나하나의 모임이다
고려대게임트랙특강




                    1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자




           2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
현대 컨텐츠 산업은 규모가 크고 전문화되어 있다

상업적으로 가치 있는 결과를
혼자 만들어내기는 어렵다


               아마도 지금 우리 나라에서 가능한 건 신문 만화 정도?
                           팀 작업이 필요한 근본적인 이유
프리랜서의 그룹이 만들어내는 것도 가능할텐데

팀으로 모여 일하는 의미?



                모든 구성원이 재택 근무한다 치면 회의도 힘들고
                 커뮤니케이션 코스트의 문제가 크기도 하지만…
물리적으로 부대끼고 가까운 거리에서 일하는 ‘의미’

팀 = 운명공동체



          아니, 암만 그래도 겨우 직장 동료인데 운명공동체는 오버 아닌가??
운명공동체라는 표현은 전혀 과장이 아니다

한 프로젝트에 걸리는 시간은
짧게는 2년에서 5년 정도

           캐주얼 게임의 경우 2~3년, MMORPG의 경우는 3~5년 정도 걸리고
     상용화 이후에도 라이브 팀과 인수인계를 위해서 1년 가량은 같이 일하게 된다
             라이브 모드로 들어가면 10년 이상 서비스하는 게임도 비일비재
게임 개발은 아직도 리스크가 높은 분야

실패의 리스크는 너무 크다


              상업적으로 성공하는 게임의 수는 손에 꼽을 만큼 적은 반면,
        프로젝트가 실패하면 팀이 해체되어 동료와 뿔뿔히 흩어지는 경우도 있고
                 이직을 하려고 해도 이력서에 마땅히 적을 내용이 없다
여러분을 비롯하여 팀 동료들은

소중한 20대를 걸고
프로젝트란 항해에 임하는 셈

       대학 졸업한 뒤에 게임 하나 두 개쯤 만들고 나면 성공하든 실패하든 30대
                             결혼해서 가정 꾸릴 걱정을 해야…
                     30대인 사람들이 맘 편하게 일하는 것도 아니고,
                    나이가 들 수록 실패의 리스크가 더 올라갈 뿐이다
적어도 나는

프로젝트와 팀 동료를
소중히 여기며
최선을 다하는 사람과
같이 일하고 싶다
         아마도 프로젝트에 수십 수백억 투자하는 투자자도 마찬가지일 것이다
고려대게임트랙특강




                    1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자




           2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
게임을 만들면 게임 개발자 아닌가? 그 이상 또 필요한 게 있나?

게임 개발자는 게임에 대해서
잘 이해하고 있는 편인가?

                게임 개발자라고 해도 게임을 많이 하는 사람도 드물고
                    많이 해도 장르가 치우치지 않는 경우도 드물고
                      이론적으로 공부하는 경우는 더더욱 드물다
다른 컨텐츠 업계는 어떨까?

다른 업계를 생각해보자


                  영화 쪽 일을 하는 사람이라면 영화를 많이 보기도 하고
                             영화 이론에 대해서도 공부할 것이다
                                   대중음악도 마찬가지고…
게임 플레이를 직업적 역량에 투자하는 것으로 만들어라

전문적으로 게임을 플레이하라




           게임 개발자가 게임을 이해하지 못하고 좋은 게임을 만들 수 있나?
      많이 플레이하고 분석해보지 않고서 게임이라는 미디어를 이해할 수가 있나?
게임을 이해하고 설명할 수 있는 제작자가 되자

게임을 공부하자


                여러분이 속해있는 프로젝트의 재미를 냉정하게 평가하고
                     더 나은 게임으로 만들자면 어떻게 해야겠는가?
          다른 미디어에 비해서는 자료가 적은 편이지만 조금씩 늘어나고 있다
여러가지 마음가짐에 대해서 설명했지만…




              1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자
무엇보다

게임 제작에 애정을 갖자



                     진심으로 게임 제작이란 직업을 좋아하게 된다면
       자연스럽게 관심을 갖고 연구하고 더 많이 이해하고 싶어지는 게 당연할 것
고려대게임트랙특강



회사에서 일을 하는 자세의 문제

1 | 마음가짐
프로그래머가 아니라 게임 개발자라면 가져야 할 역량

2 | 공통 역량
게임 프로그래머를 게임 프로그래머답게 만드는 역량

3 | 전문 역량
      2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
고려대게임트랙특강




                       2 | 공통역량
커 뮤 니 케 이 션        스 킬               |        문 제                해 결               능 력               |        자 기         계 발   능 력




              2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
게임 제작은 팀 단위로 이루어지는 것이 보통이고

의사 소통은 게임 제작에 필수



     업무 지시를 비롯해서 요구 사항 명세, 각종 회의, 다른 작업자와의 구두 논의 등,
             개발 과정에서 의사 소통이 일어나는 횟수는 이루 헤아릴 수가 없다
하지만 불행하게도 프로그래머들은 보통

의사 소통에 약하다


                    합리적으로 문제를 해결하려는 성향이 강하기 때문에
   일반 대화도 문제를 해결하거나 지식을 공유하는 등 실용적 목적이 없으면 불편해한다
            사용하는 어휘나 사고 방식, 관심 분야가 일반 대중과 너무나 다르다
팀에서 대화하게 될 상대는 여러분과 같은 사고가 익숙하지 않다

의식적으로 상대를 배려하라


          기술적 지식이 전혀 없는 팀 동료에게 툴 사용법을 설명해야 할   수도   있고
               지금 그런 복잡한 이야기를 들을 정신이 없는 상황일    수도   있고
                        전혀 그런 기술적 이슈에 관심이 없을   수도   있고
     기획의 참신함에는 관심 없고 구현이 어렵단 얘기만 해서 기분이 상했을    수도   있다
글을 잘 쓰게 되면 말을 잘 하는 데도 도움이 된다

다독, 다작, 다상량



                               문자로 된 미디어를 많이 읽고
         블로그 등의 공개된 미디어를 통해서 독자를 고려한 글 쓰기를 연습하라
고려대게임트랙특강




                       2 | 공통역량
커 뮤 니 케 이 션        스 킬               |        문 제                해 결               능 력               |        자 기         계 발   능 력




              2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
문제 해결이란

문제를 정의하고
알려진 방법을 검토하고
실천적으로 해결하는 일

             어떤 회사에서 어떤 업무를 하더라도 문제 해결 과정은 포함된다
      연차가 낮을 때는 그냥 이미 문제가 해결된 업무 지시를 받을 수도 있겠지만…
다른 모든 직군도 마찬가지긴 하지만

프로그래머에게 특히 중요


               게임 디자이너가 재미없는 기획을 만들어도 대재앙이지만
                     게임 프로그래머의 문제 해결 능력이 떨어져서
              디자인된 게임 플레이를 만들지 못하면 마찬가지로 대재앙
문제 해결 능력은 꾸준한 훈련이 필요한 스킬

스포츠선수 : 기초 체력 =
프로그래머 : 문제 해결 능력


          프로그래밍도 악기 연주나 스포츠와 마찬가지로 어릴 때부터 시작해서
           오랫동안 연습할 수록 더 높은 수준의 스킬을 획득할 가능성이 높다
전문 ‘지식’은 일 하면서도 습득하는 것이 가능

알고리즘 등
기초 과목을
강조하는 이유

                      자료구조나 알고리즘의 디테일을 외우는 게 아니라
      그런 자료구조가 나온 이유나 알고리즘이 전개되는 과정에 대한 이해가 중요하다
고려대게임트랙특강




                       2 | 공통역량
커 뮤 니 케 이 션        스 킬               |        문 제                해 결               능 력               |        자 기         계 발   능 력




              2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
사실 꼭 자기 계발을 하고 기술을 다듬을 필요는 없다

목표하는 보상의 문제



                          연차가 지나면 연봉이 오르길 기대할텐데
        작년이랑 업무에 활용하는 스킬도 같고 생산하는 가치도 작년과 똑같다면?
하지만 신입 사원의 경우는 의무적이라고 할 수도 있다

신입 사원은 얘기가 다르다



            채용에는 신입 사원 연봉의 n배수에 달하는 비용이 추가로 발생한다
    팀과 조직 입장에서도 신입 사원을 교육하기 위해서 숙련자의 시간을 사용해야 한다
적어도 입사 1~2년차에는 꾸준히 공부하는 게 좋다

평생 쓸 기반을 만드는 시기



        연차가 올라가고 나이가 들게 되면 공부하기 위해서 마음 먹는 게 쉽지 않다
그리고 그 뒤에도 계속 공부하는 것이 즐겁게 일하는 데 도움이 된다

배우는 것 자체가 모티베이션



          사람은 기본적으로 배우고 익히는 것을 재밌어 하도록 만들어져 있다
             반복되는 업무 가운데서 스스로 자극을 만들면서 일할 수 있다
학생 때는 공부하는 방법 자체를 익히는 게 중요하다

관심 분야 중 하나를
학부 수준 이상 깊이로 파보자

                     분야가 달라도 공부하는 방법은 대동소이하기 때문에
         한 분야에서 일정 수준에 도달하면 다른 분야로 역량을 넓혀가는 것도 쉽다
    학생 때는 돈이 안 되도 좋으니 좋아하고 즐길 수 있는 분야를 파 볼 수 있으니 유리
고려대게임트랙특강



회사에서 일을 하는 자세의 문제

1 | 마음가짐
프로그래머가 아니라 게임 개발자라면 가져야 할 역량

2 | 공통 역량
게임 프로그래머를 게임 프로그래머답게 만드는 역량

3 | 전문 역량
      2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
게임 프로그래머의 전문적인 스킬을 정의하는 것은

학부 수준에서 어렵다
  시스템 프로그래머 | 비주얼 프로그래머 | 네트웍 프로그래머
  애니메이션 프로그래머 | AI 프로그래머 | 물리 프로그래머
  사운드 프로그래머…


           너무나 다양한 분야가 있고, 각 분야마다 높은 전문성을 요구한다
             필요한 전문 지식이 실질적으로 거의 겹치지 않는 경우도 많다
다른 방식으로 생각해보자

게임 프로그래머 vs
플래시로 원맨 개발이
가능한 게임 디자이너

                이런 상황이라면 게임 프로그래머가 팀에 필요할까?
아니, 플래시는 3D도 안 되고 네트웍도 안 되고…

엔진이나 플랫폼 수준에서
기술적 해결책을 지원한다면?




                분명히 게임 업계의 개발 방법론은 그 쪽을 향하고 있다
단지 코드를 작성해서 게임이 돌아가게 만드는 것을 넘어서는

대체할 수 없는
게임 프로그래머의
공통 전문 역량을 살펴보자
고려대게임트랙특강




                    3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




          2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
거지 같은 부분도 많고 복잡한 것도 사실인데 어찌되었든

게임 개발 주류 언어는 C++



                툴에서는 C++/CLI 등으로 닷넷 언어를 믹싱해서 사용하지만
      미들웨어나 배포 문제, 콘솔 개발 환경 등을 고려하면 당분간 큰 변동은 없을 것
애매하고 어렴풋이 아는 걸로
밥 벌어 먹는 것은 불안하다

  하지만 요즘 같은 세상에 C++ 문법책 한 번 다 읽어본 학부생 찾아보기 드물다
C++ 언어에 대한 레퍼런스는 넘칠 정도로 충분하다

학생 때부터
기초를 다지자


                 특히 상속과 포인터, STL이나 템플릿 등의 문법적 측면과
            C++ 언어를 관용적으로 사용하는 방법 양쪽 모두를 공부해두자
고려대게임트랙특강




                    3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




          2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
C++과 OOP 패러다임을 사용해서 작업하고 있는 이상

프로그램은
객체의 모델링

                          한 객체가 어떤 데이터를 포함하고,
                         다른 객체와 어떤 관계를 맺을 것이며
                  어떤 동작을 할 것인가 어느 순서로 수행할 것인가
게임에는 정말로 많은 수의 객체가 등장한다

관계가 엉키면 그곳이 지옥
  캐릭터 |
  파라메터 | 대미지 | 대미지 속성 |
  아이템 | 아이템 속성 | 아이템 개조식 |
  인벤토리 | 인벤토리 UI |
  퀘스트 | 퀘스트 목표 | 퀘스트 인디케이터 |
  몬스터 | AI 프로세서 | AI 스크립트 | AI 스케줄러 |
  …

      추상화 수준에 따라서 엄밀하게 구분하지 않으면 유지보수가 거의 불가능해진다
그렇다면 소프트웨어 엔지니어링을 공부해두면 될까요?

경험이 뒷받침되지 않은 SE는
주화입마로 가는 왕도


                     정적 상속과 디자인 패턴이 특히 그렇다
클래스 설계의 기본인 추상화와 분류의 기반이 되는

추상적 사고력을
길러라

         형이상학, 논리학, 분석철학, 기호학, 구조주의 같은 철학/인문학 분과는
                프로그래밍을 하기 위한 기초 체력을 제공해줄 뿐만 아니라
                  디버깅 스킬과 커뮤니케이션 스킬 향상에도 도움이 된다
고려대게임트랙특강




                    3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




          2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
다른 모든 비즈니스 서비스와 마찬가지로

게임은 복잡하다



            매우 많은 객체와 관계가 엉키며, 사용되는 기술의 종류도 많고
             특히 실시간 반응 제약 때문에 구조에 많은 제약이 가해진다
이런 복잡한 시스템을…

10년 넘도록 수정해야 한다




       아마도 그 시점에 처음 코드를 만든 사람은 그 팀에 남아 있지 않을 것이고
                      게임에 새롭게 추가된 기능 만큼 차차 코드에서
                   손댈 수 없는 부분이 늘어나고 작업 효율은 떨어진다
일정 통제 불가능 상태를 피하고 새 게임 디자인을 적용할 수 있도록

복잡도를 관리하는 것은
프로그래머의 중요한 의무


               이것만큼은 다른 어느 직군에서 일하는 사람도 할 수 없는
                               프로그래머만의 전문 소양
대학을 졸업하고 취업하기 전에 프로젝트에서

LOC 10K를 경험하라


                 온라인 게임의 LOC (Line of Code)는 수백만에 달한다
                  1K, 10K, 100K, 1M마다 관리 이슈가 달라지기 때문에
          미리미리 경험하고 자신만의 복잡성 제어 기법을 연구하고 발전시켜라
고려대게임트랙특강




                    3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




          2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
게임은 다른 소프트웨어에 비교했을 때

반응성 제약이 까다롭다



     물론 당연히 전화 교환기에 사용되는 소프트웨어가 훨씬 더 어려운 제약을 갖지만
           그런 소프트웨어를 제외한 일반 애플리케이션 중에서는 가장 까다롭다
복합적인 기술적 지식을 요구하기 때문에

최적화 역시
프로그래머의 의무


                        애플리케이션을 빠르게 만드는 것은 물론
       반응성을 유지하기 위한 가이드라인을 만들고 팀에 공유하는 것도 포함된다
세세한 기법을 익히는 것보다

아키텍처와 시공간 복잡도의
이론을 철저하게 숙지하라


         모든 회사의 면접에서 아키텍처와 알고리즘을 강조하는 이유 중 하나다
             암기하는 것보다 원리와 구조를 이해하는 것이 훨씬 더 중요하다
고려대게임트랙특강




                    3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




          2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
모든 프로그래머의 공통 역량이자 직업적 전문성의 핵심

디버깅은 프로그래밍의 꽃



                             문제 해결 능력과 논리적 사고력,
            시스템 구조에 대한 이해와 그 간의 경험이 복합적으로 적용된다
기법 한두 가지를 익히거나 짧은 경력으로 커버할 수 없는

경험이 지배하는 영역



                  그렇다면 학부생이 준비할 여지가 없는 것 아닌가?
하루라도 더 빨리 더 많이 프로그래밍하라

다독, 다작, 다상량



                     기초적인 디버깅 스킬을 학부때 익히고 온다면
               회사의 상급자는 여러분을 완전히 다른 눈으로 볼 것이다
고려대게임트랙특강




요약 및 급결론


  2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
당장의 학업이나 취업 준비도 중요하지만

회사원으로, 게임 개발자로,
게임 프로그래머로 어떻게
살아갈까 비전을 만들어라

              장기적으로 어떻게 살아야 할 지를 다각적으로 고민해보고
              자신만의 청사진을 구체적으로 만들어보는 것이 중요하다
고려대게임트랙특강



                       1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자



                       2 | 공통역량
커 뮤 니 케 이 션        스 킬               |        문 제                해 결               능 력               |        자 기         계 발   능 력



                        3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




              2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
고려대게임트랙특강



                       1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자



                       2 | 공통역량
커 뮤 니 케 이 션        스 킬               |        문 제                해 결               능 력               |        자 기         계 발   능 력



                        3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




              2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
고려대게임트랙특강



                       1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자



                       2 | 공통역량
커 뮤 니 케 이 션        스 킬               |        문 제                해 결               능 력               |        자 기         계 발   능 력



                        3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




              2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
고려대게임트랙특강



                       1 | 마음가짐
어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자



                       2 | 공통역량
커 뮤 니 케 이 션        스 킬               |        문 제                해 결               능 력               |        자 기         계 발   능 력



                        3 | 전문역량
언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬




                                                                                               QA/끝
              2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO

Más contenido relacionado

La actualidad más candente

NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011devCAT Studio, NEXON
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?Lee Sangkyoon (Kay)
 
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화Eunseok Yi
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다Jinho Jung
 
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템Chaeone Son
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법ChangHyun Won
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법Lee Sangkyoon (Kay)
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰Jubok Kim
 
게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해Seungmo Koo
 
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)Eunseok Yi
 
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략태성 이
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점Ryan Park
 
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지Kwangyoung Lee
 
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부Eunseok Yi
 
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인Eunseok Yi
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기강 민우
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할Hoyoung Choi
 

La actualidad más candente (20)

NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?
 
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다
 
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해
 
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
 
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
 
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
 
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
 
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할
 

Similar a 고대특강 게임 프로그래머의 소양

[1216 박민근] 게임회사취업및이직에관한조언
[1216 박민근] 게임회사취업및이직에관한조언[1216 박민근] 게임회사취업및이직에관한조언
[1216 박민근] 게임회사취업및이직에관한조언MinGeun Park
 
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자Yurim Jin
 
게임개발사원이되자(1)
게임개발사원이되자(1)게임개발사원이되자(1)
게임개발사원이되자(1)창열 최
 
게임개발사원이되자
게임개발사원이되자게임개발사원이되자
게임개발사원이되자Yggdrasil610
 
반복적 실패를 통한 성장-소주콘 Shot 5 발표자료
반복적 실패를 통한 성장-소주콘 Shot 5 발표자료반복적 실패를 통한 성장-소주콘 Shot 5 발표자료
반복적 실패를 통한 성장-소주콘 Shot 5 발표자료Kije Park
 
게임 기획자 : 스페셜리스트 VS 제너럴리스트
게임 기획자 : 스페셜리스트 VS 제너럴리스트게임 기획자 : 스페셜리스트 VS 제너럴리스트
게임 기획자 : 스페셜리스트 VS 제너럴리스트원호 손
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회ChangHyun Won
 
인디 게임을 개발하는 여러 가지 방법들
인디 게임을 개발하는 여러 가지 방법들인디 게임을 개발하는 여러 가지 방법들
인디 게임을 개발하는 여러 가지 방법들springgames
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011devCAT Studio, NEXON
 
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까? PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까? SesangCho
 
나는 어떤 게임개발자가 될 것인가?
나는 어떤 게임개발자가 될 것인가?나는 어떤 게임개발자가 될 것인가?
나는 어떤 게임개발자가 될 것인가?Hyunwoo Kim
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Aree Oh
 
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012devCAT Studio, NEXON
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요Eunseok Yi
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드태현 임
 
개발자로 사는 길!!! 20141114
개발자로 사는 길!!! 20141114개발자로 사는 길!!! 20141114
개발자로 사는 길!!! 20141114GeniNetworks
 
#휴학맨지식보전프로젝트 05.역량이 뛰어난 기획자는 무엇일까
#휴학맨지식보전프로젝트   05.역량이 뛰어난 기획자는 무엇일까#휴학맨지식보전프로젝트   05.역량이 뛰어난 기획자는 무엇일까
#휴학맨지식보전프로젝트 05.역량이 뛰어난 기획자는 무엇일까BaeHyeon Lee
 
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법강 민우
 
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들Young Keun Choe
 
어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇민건 주
 

Similar a 고대특강 게임 프로그래머의 소양 (20)

[1216 박민근] 게임회사취업및이직에관한조언
[1216 박민근] 게임회사취업및이직에관한조언[1216 박민근] 게임회사취업및이직에관한조언
[1216 박민근] 게임회사취업및이직에관한조언
 
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
 
게임개발사원이되자(1)
게임개발사원이되자(1)게임개발사원이되자(1)
게임개발사원이되자(1)
 
게임개발사원이되자
게임개발사원이되자게임개발사원이되자
게임개발사원이되자
 
반복적 실패를 통한 성장-소주콘 Shot 5 발표자료
반복적 실패를 통한 성장-소주콘 Shot 5 발표자료반복적 실패를 통한 성장-소주콘 Shot 5 발표자료
반복적 실패를 통한 성장-소주콘 Shot 5 발표자료
 
게임 기획자 : 스페셜리스트 VS 제너럴리스트
게임 기획자 : 스페셜리스트 VS 제너럴리스트게임 기획자 : 스페셜리스트 VS 제너럴리스트
게임 기획자 : 스페셜리스트 VS 제너럴리스트
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
 
인디 게임을 개발하는 여러 가지 방법들
인디 게임을 개발하는 여러 가지 방법들인디 게임을 개발하는 여러 가지 방법들
인디 게임을 개발하는 여러 가지 방법들
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
 
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까? PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
 
나는 어떤 게임개발자가 될 것인가?
나는 어떤 게임개발자가 될 것인가?나는 어떤 게임개발자가 될 것인가?
나는 어떤 게임개발자가 될 것인가?
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드
 
개발자로 사는 길!!! 20141114
개발자로 사는 길!!! 20141114개발자로 사는 길!!! 20141114
개발자로 사는 길!!! 20141114
 
#휴학맨지식보전프로젝트 05.역량이 뛰어난 기획자는 무엇일까
#휴학맨지식보전프로젝트   05.역량이 뛰어난 기획자는 무엇일까#휴학맨지식보전프로젝트   05.역량이 뛰어난 기획자는 무엇일까
#휴학맨지식보전프로젝트 05.역량이 뛰어난 기획자는 무엇일까
 
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
 
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
 
어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇
 

Más de Jubok Kim

선형 최소 자승 최적화
선형 최소 자승 최적화선형 최소 자승 최적화
선형 최소 자승 최적화Jubok Kim
 
GDC2013 트렌드리뷰
GDC2013 트렌드리뷰GDC2013 트렌드리뷰
GDC2013 트렌드리뷰Jubok Kim
 
NDC2013 - 심리학으로 다시 보는 게임 디자인
NDC2013 - 심리학으로 다시 보는 게임 디자인NDC2013 - 심리학으로 다시 보는 게임 디자인
NDC2013 - 심리학으로 다시 보는 게임 디자인Jubok Kim
 
GDC2012 트렌드 리뷰
GDC2012 트렌드 리뷰GDC2012 트렌드 리뷰
GDC2012 트렌드 리뷰Jubok Kim
 
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2Jubok Kim
 
GDC2011 참관보고서 (공개용)
GDC2011 참관보고서 (공개용)GDC2011 참관보고서 (공개용)
GDC2011 참관보고서 (공개용)Jubok Kim
 
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점Jubok Kim
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들Jubok Kim
 
GDC2011 - Implementation and Application of the Real-Time Helper-Joint System
GDC2011 - Implementation and Application of the Real-Time Helper-Joint SystemGDC2011 - Implementation and Application of the Real-Time Helper-Joint System
GDC2011 - Implementation and Application of the Real-Time Helper-Joint SystemJubok Kim
 
The Art of Project Management #13 일을 추진하는 방법
The Art of Project Management #13 일을 추진하는 방법The Art of Project Management #13 일을 추진하는 방법
The Art of Project Management #13 일을 추진하는 방법Jubok Kim
 
The Art of Project Management #4 좋은 비전 작성하기
The Art of Project Management #4 좋은 비전 작성하기The Art of Project Management #4 좋은 비전 작성하기
The Art of Project Management #4 좋은 비전 작성하기Jubok Kim
 
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템Jubok Kim
 
HCI2010 - 온라인 게임과 넥스트 젠 애니메이션
HCI2010 - 온라인 게임과 넥스트 젠 애니메이션HCI2010 - 온라인 게임과 넥스트 젠 애니메이션
HCI2010 - 온라인 게임과 넥스트 젠 애니메이션Jubok Kim
 

Más de Jubok Kim (13)

선형 최소 자승 최적화
선형 최소 자승 최적화선형 최소 자승 최적화
선형 최소 자승 최적화
 
GDC2013 트렌드리뷰
GDC2013 트렌드리뷰GDC2013 트렌드리뷰
GDC2013 트렌드리뷰
 
NDC2013 - 심리학으로 다시 보는 게임 디자인
NDC2013 - 심리학으로 다시 보는 게임 디자인NDC2013 - 심리학으로 다시 보는 게임 디자인
NDC2013 - 심리학으로 다시 보는 게임 디자인
 
GDC2012 트렌드 리뷰
GDC2012 트렌드 리뷰GDC2012 트렌드 리뷰
GDC2012 트렌드 리뷰
 
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
 
GDC2011 참관보고서 (공개용)
GDC2011 참관보고서 (공개용)GDC2011 참관보고서 (공개용)
GDC2011 참관보고서 (공개용)
 
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
NDC2011 - 카메라 시스템을 통해 살펴보는 인터랙티브 시스템 개발의 문제점
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
 
GDC2011 - Implementation and Application of the Real-Time Helper-Joint System
GDC2011 - Implementation and Application of the Real-Time Helper-Joint SystemGDC2011 - Implementation and Application of the Real-Time Helper-Joint System
GDC2011 - Implementation and Application of the Real-Time Helper-Joint System
 
The Art of Project Management #13 일을 추진하는 방법
The Art of Project Management #13 일을 추진하는 방법The Art of Project Management #13 일을 추진하는 방법
The Art of Project Management #13 일을 추진하는 방법
 
The Art of Project Management #4 좋은 비전 작성하기
The Art of Project Management #4 좋은 비전 작성하기The Art of Project Management #4 좋은 비전 작성하기
The Art of Project Management #4 좋은 비전 작성하기
 
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
 
HCI2010 - 온라인 게임과 넥스트 젠 애니메이션
HCI2010 - 온라인 게임과 넥스트 젠 애니메이션HCI2010 - 온라인 게임과 넥스트 젠 애니메이션
HCI2010 - 온라인 게임과 넥스트 젠 애니메이션
 

고대특강 게임 프로그래머의 소양

  • 1. 고려대게임트랙특강 | 김주복 게임프로그래머의소양 Ⓒ 2008-2009 NEXON Corporation & devCAT Studio. All Rights Reserved M2 team, Game Development Team for Mabinogi in devCAT (The 3rd Development Division in NEXON Corp.). M2 team Director is Kim, Dong-Gun | Project W is produced by Kim, Dong-Gun devCAT Engine team, Engine Development Team for Project W and more. Engine Team Technical Director is Jeon, Hyeong-Kyu
  • 2. 게임프로그래머의소양? 게임 프로그래머로써 스스로 만족하고 좋은 평가를 받으며 일할 수 있는 요건과 준비 방법에 대해서 학부 졸업 기준으로 설명
  • 3. 이미 진로를 게임 쪽으로 생각하고 계신 분들일테니 솔직한 내용 위주로… 그렇지 않은 분들 대상으로는 듣기 좋은 얘기를 많이 하는 대신에 아무래도 실속이 덜하니까…
  • 4. 굳이 전산학이나 게임 프로그래밍에 한정되지 않는 포괄적인 이야기 당신 뭐하는 사람이길래…
  • 5. 김주복 넥슨9년차 | 기술면접5년 2001 무선사업팀 도트디자이너 2001 마비노기팀 리드 프로그래머 2003 마비노기 프로그래밍팀 팀장 2005 그룹웨어 개발팀 팀장 2006 W팀 테크니컬 디렉터 2008 3 실 실 장 2009 마비노기 2 개발 디렉터
  • 6. 5년간 기술 면접을 봐 온 경험을 통해서 말하자면, 학부 졸업생은… 많이 아쉬운 게 사실 전산학 기본, 문제 해결 능력, 코딩 숙련도 등의 전문 지식도 회사에서 프로페셔널로 일하는 자세 면에서도 현업 기준 미달인 경우가 대부분
  • 7. 학부 졸업하면서 모든 걸 갖추고 오는 걸 기대하는 건 아니지만… 중요한 것을 모른다는 인상 학교에서 배우는 개념과 과목은 정말로 중요하다는 사실 취업 준비도 면접에 집중되어 있지 취업 후의 조직 생활에 대해서는 준비하지 않는다 세상에 널려있는 레퍼런스를 못 찾아서 뭘 보고 공부해야 할 지 모른다 그런 의미에서 고려대 게임 트랙은 현업 입장에서 고무적이고 반가움
  • 8. 정작 회사에서 중요하다고 생각하는 건 하나도 모르는데… 게임 프로그래머가 된 후에 어떻게 살아갈 것인가?
  • 9. 눈 앞에 있는 허들을 넘는 것도 중요하지만, 장기적인 비전을 가져라 게임 프로그래머가 되어서 장기적으로 어떤 목표를 갖고 어떤 성과를 내고 싶은가? 이 강연은 이런 것까지 필요한 줄 몰랐다 싶은 것에 발목 잡히지 않고 여러분이 원하는 목표에 집중할 수 있도록 도와주는 힌트
  • 10. 고려대게임트랙특강 회사에서 일을 하는 자세의 문제 1 | 마음가짐 프로그래머가 아니라 게임 개발자라면 가져야 할 역량 2 | 공통 역량 게임 프로그래머를 게임 프로그래머답게 만드는 역량 3 | 전문 역량 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 11. 고려대게임트랙특강 회사에서 일을 하는 자세의 문제 1 | 마음가짐 프로그래머가 아니라 게임 개발자라면 가져야 할 역량 2 | 공통 역량 게임 프로그래머를 게임 프로그래머답게 만드는 역량 3 | 전문 역량 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 12. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 13. ‘어른이 되자’라니 무슨 소리인가? 이미 어른인데? 법적으로도 생물학적으로도 사실이긴 한데…
  • 14. <어른>의 사전적인 정의는 다 자라서 자신의 일에 책임을 질 수 있는 사람 세금도 내고 죄 지으면 감옥도 가고… 자신의 선택에 책임을 지는 것이 어른
  • 15. 부모님도 국적도 마음대로 고를 수 없지만 직업은 인생에서 몇 안 되는 선택할 수 있는 것 중 하나
  • 16. 어른이라면 자신의 일에 책임을 져야 하는데… 자신의 직업과 캐리어를 책임질 준비가 되어 있나? 직업 선택과 직장 생활에서의 성공과 실패, 양쪽 모두 여러분 자신의 책임
  • 17. 직업을 선택하고 직장을 고르는 데 있어서 성공의 요건? 직업 선택과 직장 생활에서 실패하고 싶은 사람은 없을테니까…
  • 18. 내가 하고 싶은 것 내가 잘 하는 것 다른 사람들이 원하는 것 이 세 가지를 일치시키는 직업과 직장을 선택하는 것이 성공 가능성을 높여준다
  • 19. 내가 하고 싶은 것 ‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화 내가 잘 하는 것 다른 사람들이 원하는 것
  • 20. 내가 하고 싶은 것 ‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화 내가 잘 하는 것 사람은 누구나 자신의 역량을 과대평가하기 쉽다, 조금 냉정해지자 다른 사람들이 원하는 것
  • 21. 내가 하고 싶은 것 ‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화 내가 잘 하는 것 사람은 누구나 자신의 역량을 과대평가하기 쉽다, 조금 냉정해지자 다른 사람들이 원하는 것 보통 관심을 갖기 쉽지 않고 내가 어떻게 바꿀 수가 없다
  • 22. 어려운 선택이지만 직업과 직장 선택은 시작에 불과하다 입사 이후의 캐리어 관리 역시 자신의 책임 나중에 가서 이런 걸 공부해뒀으면 좋았겠다든가 적성에 안 맞거나 프로젝트가 별로라든가 얘기해도 결국은 자신의 책임 올바르게 선택하기 위해서는 잘 아는 것도 필요하다
  • 23. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 24. 여기서 말하는 프로페셔널의 의미는 전문 지식을 활용해서 대가를 받고 일하는 사람 일정 수준 이상의 전문성이 결여되어 있다면 프로페셔널이라고 부르지 않는다
  • 25. 그런데 사람들이 어떤 재화나 서비스에 대가를 지불하려면… 객관적 가격 < 주관적 가치 즉 프로페셔널은 전문 지식을 활용해서 클라이언트가 지불한 대가보다 더 싼 비용을 사용해서 더 가치가 있는 결과물을 만들어내는 사람을 의미한다
  • 26. 클라이언트가 지불한 가격보다 자신의 작업물의 가치를 높이는 방법? 여기서 클라이언트는 게임을 플레이하는 플레이어일 수도 있고, 작업을 지시하는 디렉터일 수도 있고, 내 작업물을 바탕으로 작업하는 팀 동료일 수도 있다
  • 27. 클라이언트의 의도를 읽어라 디테일에 집중하라 갖고 있는 스킬을 발전시켜라
  • 28. 클라이언트의 의도를 읽어라 말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법 디테일에 집중하라 갖고 있는 스킬을 발전시켜라
  • 29. 클라이언트의 의도를 읽어라 말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법 디테일에 집중하라 이런 부분은 신경 안 쓰겠지, 한 부분이 모여 결과물의 격을 떨어뜨린다 갖고 있는 스킬을 발전시켜라
  • 30. 클라이언트의 의도를 읽어라 말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법 디테일에 집중하라 이런 부분은 신경 안 쓰겠지, 한 부분이 모여 결과물의 격을 떨어뜨린다 갖고 있는 스킬을 발전시켜라 전문성이 떨어지는 프로의 인건비는 전문성이 높은 쪽보다 비싼 셈이다
  • 31. 전문직이라면 프리랜서라도 프로페셔널 자긍심을 가진 프로가 되자 직업에 대한 자부심과 자신감을 갖고 일하는 것은 매우 중요하고, 그 자부심과 자신감을 계속 가질 수 있도록 노력해야 한다
  • 32. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 33. 회사가 신입 사원을 채용하는 이유? 다양성과 활력을 보충 모든 조직은 지속적으로 신규 구성원의 유입을 필요로 한다 그렇지 않은 조직은 경직되고 관습화되어 가치가 있는 일을 이뤄낼 수가 없다 조직에서 빠져나가는 사람이 없다고 해도 마찬가지다
  • 34. 특히 게임 업계는 컨텐츠를 만들어야 하는 업무 특성상 창의적인 분위기가 중요 게임 회사 입장에서도 사원 하나 하나의 재능과 개성이 중요하다는 의미
  • 35. 그렇다면 내 개성과 재능을 맘껏 펼쳐서 일할 수 있겠네요? 창의적 환경 != 무제한의 자유 이 부분을 오해하는 사원의 경우, 창의적인 분위기가 사원들에게 아무런 규칙도 적용하지 않아야 한다고 생각하고 조직이란 것 자체나, 조직 고유의 규칙이나 문화에 반감을 갖는 경우도 많다
  • 36. 여러분들이 개성과 재능과 하고 싶은 일을 갖고 있는 것처럼 회사도 지금까지의 이뤄온 성과와 문화, 사업 계획을 갖고 있다
  • 37. 조직과 개인간의 관계에 있어서도 상호 이해가 중요 여러분의 개성과 재능을 인정받으려면 조직의 문화와 규칙을 이해하고 받아들이려는 노력도 필요하다 조직이란 실체가 없는 무엇인가가 아니라 결국 구성원 하나하나의 모임이다
  • 38. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 39. 현대 컨텐츠 산업은 규모가 크고 전문화되어 있다 상업적으로 가치 있는 결과를 혼자 만들어내기는 어렵다 아마도 지금 우리 나라에서 가능한 건 신문 만화 정도? 팀 작업이 필요한 근본적인 이유
  • 40. 프리랜서의 그룹이 만들어내는 것도 가능할텐데 팀으로 모여 일하는 의미? 모든 구성원이 재택 근무한다 치면 회의도 힘들고 커뮤니케이션 코스트의 문제가 크기도 하지만…
  • 41. 물리적으로 부대끼고 가까운 거리에서 일하는 ‘의미’ 팀 = 운명공동체 아니, 암만 그래도 겨우 직장 동료인데 운명공동체는 오버 아닌가??
  • 42. 운명공동체라는 표현은 전혀 과장이 아니다 한 프로젝트에 걸리는 시간은 짧게는 2년에서 5년 정도 캐주얼 게임의 경우 2~3년, MMORPG의 경우는 3~5년 정도 걸리고 상용화 이후에도 라이브 팀과 인수인계를 위해서 1년 가량은 같이 일하게 된다 라이브 모드로 들어가면 10년 이상 서비스하는 게임도 비일비재
  • 43. 게임 개발은 아직도 리스크가 높은 분야 실패의 리스크는 너무 크다 상업적으로 성공하는 게임의 수는 손에 꼽을 만큼 적은 반면, 프로젝트가 실패하면 팀이 해체되어 동료와 뿔뿔히 흩어지는 경우도 있고 이직을 하려고 해도 이력서에 마땅히 적을 내용이 없다
  • 44. 여러분을 비롯하여 팀 동료들은 소중한 20대를 걸고 프로젝트란 항해에 임하는 셈 대학 졸업한 뒤에 게임 하나 두 개쯤 만들고 나면 성공하든 실패하든 30대 결혼해서 가정 꾸릴 걱정을 해야… 30대인 사람들이 맘 편하게 일하는 것도 아니고, 나이가 들 수록 실패의 리스크가 더 올라갈 뿐이다
  • 45. 적어도 나는 프로젝트와 팀 동료를 소중히 여기며 최선을 다하는 사람과 같이 일하고 싶다 아마도 프로젝트에 수십 수백억 투자하는 투자자도 마찬가지일 것이다
  • 46. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 47. 게임을 만들면 게임 개발자 아닌가? 그 이상 또 필요한 게 있나? 게임 개발자는 게임에 대해서 잘 이해하고 있는 편인가? 게임 개발자라고 해도 게임을 많이 하는 사람도 드물고 많이 해도 장르가 치우치지 않는 경우도 드물고 이론적으로 공부하는 경우는 더더욱 드물다
  • 48. 다른 컨텐츠 업계는 어떨까? 다른 업계를 생각해보자 영화 쪽 일을 하는 사람이라면 영화를 많이 보기도 하고 영화 이론에 대해서도 공부할 것이다 대중음악도 마찬가지고…
  • 49. 게임 플레이를 직업적 역량에 투자하는 것으로 만들어라 전문적으로 게임을 플레이하라 게임 개발자가 게임을 이해하지 못하고 좋은 게임을 만들 수 있나? 많이 플레이하고 분석해보지 않고서 게임이라는 미디어를 이해할 수가 있나?
  • 50. 게임을 이해하고 설명할 수 있는 제작자가 되자 게임을 공부하자 여러분이 속해있는 프로젝트의 재미를 냉정하게 평가하고 더 나은 게임으로 만들자면 어떻게 해야겠는가? 다른 미디어에 비해서는 자료가 적은 편이지만 조금씩 늘어나고 있다
  • 51. 여러가지 마음가짐에 대해서 설명했지만… 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자
  • 52. 무엇보다 게임 제작에 애정을 갖자 진심으로 게임 제작이란 직업을 좋아하게 된다면 자연스럽게 관심을 갖고 연구하고 더 많이 이해하고 싶어지는 게 당연할 것
  • 53. 고려대게임트랙특강 회사에서 일을 하는 자세의 문제 1 | 마음가짐 프로그래머가 아니라 게임 개발자라면 가져야 할 역량 2 | 공통 역량 게임 프로그래머를 게임 프로그래머답게 만드는 역량 3 | 전문 역량 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 54. 고려대게임트랙특강 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 55. 게임 제작은 팀 단위로 이루어지는 것이 보통이고 의사 소통은 게임 제작에 필수 업무 지시를 비롯해서 요구 사항 명세, 각종 회의, 다른 작업자와의 구두 논의 등, 개발 과정에서 의사 소통이 일어나는 횟수는 이루 헤아릴 수가 없다
  • 56. 하지만 불행하게도 프로그래머들은 보통 의사 소통에 약하다 합리적으로 문제를 해결하려는 성향이 강하기 때문에 일반 대화도 문제를 해결하거나 지식을 공유하는 등 실용적 목적이 없으면 불편해한다 사용하는 어휘나 사고 방식, 관심 분야가 일반 대중과 너무나 다르다
  • 57. 팀에서 대화하게 될 상대는 여러분과 같은 사고가 익숙하지 않다 의식적으로 상대를 배려하라 기술적 지식이 전혀 없는 팀 동료에게 툴 사용법을 설명해야 할 수도 있고 지금 그런 복잡한 이야기를 들을 정신이 없는 상황일 수도 있고 전혀 그런 기술적 이슈에 관심이 없을 수도 있고 기획의 참신함에는 관심 없고 구현이 어렵단 얘기만 해서 기분이 상했을 수도 있다
  • 58. 글을 잘 쓰게 되면 말을 잘 하는 데도 도움이 된다 다독, 다작, 다상량 문자로 된 미디어를 많이 읽고 블로그 등의 공개된 미디어를 통해서 독자를 고려한 글 쓰기를 연습하라
  • 59. 고려대게임트랙특강 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 60. 문제 해결이란 문제를 정의하고 알려진 방법을 검토하고 실천적으로 해결하는 일 어떤 회사에서 어떤 업무를 하더라도 문제 해결 과정은 포함된다 연차가 낮을 때는 그냥 이미 문제가 해결된 업무 지시를 받을 수도 있겠지만…
  • 61. 다른 모든 직군도 마찬가지긴 하지만 프로그래머에게 특히 중요 게임 디자이너가 재미없는 기획을 만들어도 대재앙이지만 게임 프로그래머의 문제 해결 능력이 떨어져서 디자인된 게임 플레이를 만들지 못하면 마찬가지로 대재앙
  • 62. 문제 해결 능력은 꾸준한 훈련이 필요한 스킬 스포츠선수 : 기초 체력 = 프로그래머 : 문제 해결 능력 프로그래밍도 악기 연주나 스포츠와 마찬가지로 어릴 때부터 시작해서 오랫동안 연습할 수록 더 높은 수준의 스킬을 획득할 가능성이 높다
  • 63. 전문 ‘지식’은 일 하면서도 습득하는 것이 가능 알고리즘 등 기초 과목을 강조하는 이유 자료구조나 알고리즘의 디테일을 외우는 게 아니라 그런 자료구조가 나온 이유나 알고리즘이 전개되는 과정에 대한 이해가 중요하다
  • 64. 고려대게임트랙특강 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 65. 사실 꼭 자기 계발을 하고 기술을 다듬을 필요는 없다 목표하는 보상의 문제 연차가 지나면 연봉이 오르길 기대할텐데 작년이랑 업무에 활용하는 스킬도 같고 생산하는 가치도 작년과 똑같다면?
  • 66. 하지만 신입 사원의 경우는 의무적이라고 할 수도 있다 신입 사원은 얘기가 다르다 채용에는 신입 사원 연봉의 n배수에 달하는 비용이 추가로 발생한다 팀과 조직 입장에서도 신입 사원을 교육하기 위해서 숙련자의 시간을 사용해야 한다
  • 67. 적어도 입사 1~2년차에는 꾸준히 공부하는 게 좋다 평생 쓸 기반을 만드는 시기 연차가 올라가고 나이가 들게 되면 공부하기 위해서 마음 먹는 게 쉽지 않다
  • 68. 그리고 그 뒤에도 계속 공부하는 것이 즐겁게 일하는 데 도움이 된다 배우는 것 자체가 모티베이션 사람은 기본적으로 배우고 익히는 것을 재밌어 하도록 만들어져 있다 반복되는 업무 가운데서 스스로 자극을 만들면서 일할 수 있다
  • 69. 학생 때는 공부하는 방법 자체를 익히는 게 중요하다 관심 분야 중 하나를 학부 수준 이상 깊이로 파보자 분야가 달라도 공부하는 방법은 대동소이하기 때문에 한 분야에서 일정 수준에 도달하면 다른 분야로 역량을 넓혀가는 것도 쉽다 학생 때는 돈이 안 되도 좋으니 좋아하고 즐길 수 있는 분야를 파 볼 수 있으니 유리
  • 70. 고려대게임트랙특강 회사에서 일을 하는 자세의 문제 1 | 마음가짐 프로그래머가 아니라 게임 개발자라면 가져야 할 역량 2 | 공통 역량 게임 프로그래머를 게임 프로그래머답게 만드는 역량 3 | 전문 역량 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 71. 게임 프로그래머의 전문적인 스킬을 정의하는 것은 학부 수준에서 어렵다 시스템 프로그래머 | 비주얼 프로그래머 | 네트웍 프로그래머 애니메이션 프로그래머 | AI 프로그래머 | 물리 프로그래머 사운드 프로그래머… 너무나 다양한 분야가 있고, 각 분야마다 높은 전문성을 요구한다 필요한 전문 지식이 실질적으로 거의 겹치지 않는 경우도 많다
  • 72. 다른 방식으로 생각해보자 게임 프로그래머 vs 플래시로 원맨 개발이 가능한 게임 디자이너 이런 상황이라면 게임 프로그래머가 팀에 필요할까?
  • 73. 아니, 플래시는 3D도 안 되고 네트웍도 안 되고… 엔진이나 플랫폼 수준에서 기술적 해결책을 지원한다면? 분명히 게임 업계의 개발 방법론은 그 쪽을 향하고 있다
  • 74. 단지 코드를 작성해서 게임이 돌아가게 만드는 것을 넘어서는 대체할 수 없는 게임 프로그래머의 공통 전문 역량을 살펴보자
  • 75. 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 76. 거지 같은 부분도 많고 복잡한 것도 사실인데 어찌되었든 게임 개발 주류 언어는 C++ 툴에서는 C++/CLI 등으로 닷넷 언어를 믹싱해서 사용하지만 미들웨어나 배포 문제, 콘솔 개발 환경 등을 고려하면 당분간 큰 변동은 없을 것
  • 77. 애매하고 어렴풋이 아는 걸로 밥 벌어 먹는 것은 불안하다 하지만 요즘 같은 세상에 C++ 문법책 한 번 다 읽어본 학부생 찾아보기 드물다
  • 78. C++ 언어에 대한 레퍼런스는 넘칠 정도로 충분하다 학생 때부터 기초를 다지자 특히 상속과 포인터, STL이나 템플릿 등의 문법적 측면과 C++ 언어를 관용적으로 사용하는 방법 양쪽 모두를 공부해두자
  • 79. 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 80. C++과 OOP 패러다임을 사용해서 작업하고 있는 이상 프로그램은 객체의 모델링 한 객체가 어떤 데이터를 포함하고, 다른 객체와 어떤 관계를 맺을 것이며 어떤 동작을 할 것인가 어느 순서로 수행할 것인가
  • 81. 게임에는 정말로 많은 수의 객체가 등장한다 관계가 엉키면 그곳이 지옥 캐릭터 | 파라메터 | 대미지 | 대미지 속성 | 아이템 | 아이템 속성 | 아이템 개조식 | 인벤토리 | 인벤토리 UI | 퀘스트 | 퀘스트 목표 | 퀘스트 인디케이터 | 몬스터 | AI 프로세서 | AI 스크립트 | AI 스케줄러 | … 추상화 수준에 따라서 엄밀하게 구분하지 않으면 유지보수가 거의 불가능해진다
  • 82. 그렇다면 소프트웨어 엔지니어링을 공부해두면 될까요? 경험이 뒷받침되지 않은 SE는 주화입마로 가는 왕도 정적 상속과 디자인 패턴이 특히 그렇다
  • 83. 클래스 설계의 기본인 추상화와 분류의 기반이 되는 추상적 사고력을 길러라 형이상학, 논리학, 분석철학, 기호학, 구조주의 같은 철학/인문학 분과는 프로그래밍을 하기 위한 기초 체력을 제공해줄 뿐만 아니라 디버깅 스킬과 커뮤니케이션 스킬 향상에도 도움이 된다
  • 84. 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 85. 다른 모든 비즈니스 서비스와 마찬가지로 게임은 복잡하다 매우 많은 객체와 관계가 엉키며, 사용되는 기술의 종류도 많고 특히 실시간 반응 제약 때문에 구조에 많은 제약이 가해진다
  • 86. 이런 복잡한 시스템을… 10년 넘도록 수정해야 한다 아마도 그 시점에 처음 코드를 만든 사람은 그 팀에 남아 있지 않을 것이고 게임에 새롭게 추가된 기능 만큼 차차 코드에서 손댈 수 없는 부분이 늘어나고 작업 효율은 떨어진다
  • 87. 일정 통제 불가능 상태를 피하고 새 게임 디자인을 적용할 수 있도록 복잡도를 관리하는 것은 프로그래머의 중요한 의무 이것만큼은 다른 어느 직군에서 일하는 사람도 할 수 없는 프로그래머만의 전문 소양
  • 88. 대학을 졸업하고 취업하기 전에 프로젝트에서 LOC 10K를 경험하라 온라인 게임의 LOC (Line of Code)는 수백만에 달한다 1K, 10K, 100K, 1M마다 관리 이슈가 달라지기 때문에 미리미리 경험하고 자신만의 복잡성 제어 기법을 연구하고 발전시켜라
  • 89. 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 90. 게임은 다른 소프트웨어에 비교했을 때 반응성 제약이 까다롭다 물론 당연히 전화 교환기에 사용되는 소프트웨어가 훨씬 더 어려운 제약을 갖지만 그런 소프트웨어를 제외한 일반 애플리케이션 중에서는 가장 까다롭다
  • 91. 복합적인 기술적 지식을 요구하기 때문에 최적화 역시 프로그래머의 의무 애플리케이션을 빠르게 만드는 것은 물론 반응성을 유지하기 위한 가이드라인을 만들고 팀에 공유하는 것도 포함된다
  • 92. 세세한 기법을 익히는 것보다 아키텍처와 시공간 복잡도의 이론을 철저하게 숙지하라 모든 회사의 면접에서 아키텍처와 알고리즘을 강조하는 이유 중 하나다 암기하는 것보다 원리와 구조를 이해하는 것이 훨씬 더 중요하다
  • 93. 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 94. 모든 프로그래머의 공통 역량이자 직업적 전문성의 핵심 디버깅은 프로그래밍의 꽃 문제 해결 능력과 논리적 사고력, 시스템 구조에 대한 이해와 그 간의 경험이 복합적으로 적용된다
  • 95. 기법 한두 가지를 익히거나 짧은 경력으로 커버할 수 없는 경험이 지배하는 영역 그렇다면 학부생이 준비할 여지가 없는 것 아닌가?
  • 96. 하루라도 더 빨리 더 많이 프로그래밍하라 다독, 다작, 다상량 기초적인 디버깅 스킬을 학부때 익히고 온다면 회사의 상급자는 여러분을 완전히 다른 눈으로 볼 것이다
  • 97. 고려대게임트랙특강 요약 및 급결론 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 98. 당장의 학업이나 취업 준비도 중요하지만 회사원으로, 게임 개발자로, 게임 프로그래머로 어떻게 살아갈까 비전을 만들어라 장기적으로 어떻게 살아야 할 지를 다각적으로 고민해보고 자신만의 청사진을 구체적으로 만들어보는 것이 중요하다
  • 99. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 100. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 101. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 102. 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 QA/끝 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO