O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019

6.145 visualizações

Publicada em

Publicada em: Tecnologia
  • You can try to use this service ⇒ www.HelpWriting.net ⇐ I have used it several times in college and was absolutely satisfied with the result.
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • ⇒ www.HelpWriting.net ⇐ is a good website if you’re looking to get your essay written for you. You can also request things like research papers or dissertations. It’s really convenient and helpful.
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019

  1. 1. 데브캣 스튜디오 프로젝트 DH팀 윤석주 넥슨 채용 프로세스 단계별 분석 신입 게임 프로그래머가 되는 법
  2. 2. 발표자 소개 • 데브캣 스튜디오 프로젝트 DH팀(드래곤 하운드) 서버 프로그래머 • 2012:서울, 퍼즐 주주, …
  3. 3. 발표자 소개 • NDC 발표 경험 • NDC2013 <AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례> • NDC2018 <인하우스 웹 프레임 워크 Jul8 제작기>
  4. 4. 주의 이 [발표]는 넥슨의 게임 프로그래머 채용 프로세스에 대하여 다루고 있으나 개인의 의견/분석일 뿐 회사의 공식적인 의견이 아닙니다.
  5. 5. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  6. 6. 커리어 클럽 • 넥슨컴퍼니 오프라인 채용 설명회 • 취업 특강, 직군 상담, 채용 상담 • 저의 경우 직군 상담을 진행
  7. 7. 발표를 하게 된 이유 • 커리어 클럽 2년간 상담 진행 결과 • 지원자의 질문이 거의 비슷한 편이다 • 현업에선 당연한 것이라도 지원자의 시선에서는 알 수 없는 경우가 대부분이다
  8. 8. 직접 찾아 보았더니
  9. 9. 직접 찾아 보았더니
  10. 10. 결과는 • 정보가 많지 않다 • 대부분 학원 광고 이거나, • 추상적인 내용들 • 업계 안에서 보는 시각으로 쓴 글은 더욱 적다
  11. 11. 정리해서 발표하면 좋지 않을까? • 실무에 필요한 스킬에 대한 가이드 라인 • 지원자는 • 실제 필요한 스펙에 대비할 수 있다 • 막연한 고민을 해결할 수 있다 • 회사는 • 준비된 인재를 채용할 수 있다
  12. 12. 이렇게 준비했습니다 1. 넥슨 코리아에서 채용에 관여한 면접관 인터뷰 진행 2. 인터뷰 내용을 기반으로 초안으로 정리 3. 초안을 검토 받고 피드백 반영 4. 슬라이드로 제작 넥슨 코리아의 채용 프로세스에 맞춰진 내용
  13. 13. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  14. 14. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 5. 인사 면접 게임 프로그래머 채용 프로세스
  15. 15. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 5. 인사 면접 직군 채용에 관한 발표이므로 다루지 않음 게임 프로그래머 채용 프로세스
  16. 16. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 게임 프로그래머 채용 프로세스
  17. 17. 서류 심사 • 이력서, 자기소개서 • 포트폴리오
  18. 18. 이력서, 자기소개서 – 면접관이 원하는 것 • 프로젝트 관련 경험 • 의사 결정에 관한 경험 • 지원자의 관심 분야
  19. 19. 이력서, 자기소개서 - 프로젝트 관련 경험 • 개인적으로 연구한 분야, 결과물 • 팀 프로젝트라면 • 주어진 과제 • 과제를 해결 하기 위해 사용한 기술  현재 팀에서 필요한 인력 수요와 교집합이 많은지 판단하고, 채용 후에는 어떠한 업무를 부여 할 수 있는지 판단하는 요소
  20. 20. 이력서, 자기소개서 – 프로젝트 관련 경험 예시 <퍼즐 주주> 프로젝트에서 두가지 목표가 있었습니다. 1. 다양한 수요에 대응하는 것 2. 서버 비용을 최소화 하는 것 위의 목표를 달성하기 위해 Scale-in/out이 가능한 구조로 서버를 설계하였고 AWS EC2 Auto Scaling Group을 사용하여 목표를 달성하였습니다.
  21. 21. 이력서, 자기소개서 – 의사 결정에 관한 경험 • 개인/팀 프로젝트에서 의사 결정을 한 경험 • 예시 • 프로젝트 일정이 부족 했을 때 • 구현이 어려운 목표가 주어졌을 때 • 의사 결정을 한 과정, 이유 • 의사 결정으로 얻은 경험  현업에서도 비슷한 의사 결정을 통해 업무가 진행되므로 이러한 경험을 공유하는 것이 좋다
  22. 22. 이력서, 자기소개서 – 지원자의 관심 분야 • 앞으로 하고 싶은 업무 분야 • 기술적 관심 분야 • 열정적인 취미 ( 게임 개발과 관련이 없어도 괜찮다 )  채용 후에 지원자의 성장 모습 또한 조직에서는 중요하기 때문에 관심이 많다
  23. 23. 서류 심사 • 이력서, 자기소개서 • 포트폴리오
  24. 24. 포트폴리오 – 면접관이 원하는 것 • 지원자가 연구한 과정, 결과물 • 팀 프로젝트에서 지원자가 기여한 부분 • 구현 스타일, 코딩 스타일
  25. 25. 포트폴리오 – 면접관의 불만 • 팀 프로젝트에서 본인이 작업한 부분을 알기 어렵다 • 회사에서 작업한 프로젝트 소스가 온다 • 읽는 사람을 고려하지 않는다 • 코드 파일만 있거나 • 회사 보안 정책상 실행하기 힘든 EXE • HWP, ALZ, EGG, …
  26. 26. 포트폴리오 – 이렇게 준비하면 좋음 • 본인이 작성한 코드를 읽을 수 있는 형태로 전달 • GitHub 프로젝트 링크 • 오픈소스 기여한 부분에 관한 링크 • 본인이 작업한 코드 위치와 간략한 설명
  27. 27. 포트폴리오 – 이렇게 준비하면 좋음 • 시연이 가능하다면 동영상으로 준비 • 본인이 작업한 부분 유튜브 영상 링크 • 위 작업을 구현한 코드 • 예시 • 3D 팀 프로젝트에서 카메라를 구현 했다면 카메라 구현영상을 유튜브에 올리고 카메라 코드를 첨부함
  28. 28. 포트폴리오 – 이렇게 준비하면 좋음 • 결과뿐 아니라 과정에 대한 설명도 포함 • 구현을 하기까지의 작업들 • 시행착오를 겪은 부분 • 이슈 발생 시 의사 결정 과정
  29. 29. 정리하자면 • 자기소개서는 • 프로젝트 관련 된 기술과 의사 결정 경험을 공유 • 관심 분야와 하고 싶은 롤을 표현 • 포트폴리오는 • 본인이 작업한 분야를 명확하게 표현 • 면접관이 알아보기 편한 형태로 준비
  30. 30. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 게임 프로그래머 채용 프로세스
  31. 31. 과제 심사(온라인 코딩 테스트) • 알고리즘 문제 해결능력을 보기 위한 절차 • 넥슨 뿐 아니라 다른 IT회사도 프로그래머를 채용하기 위해 실시 • 이러한 테스트를 처음 접해보면 실력발휘가 어려울 수 있으므로 연 습 삼아 미리 풀어보는 것을 추천
  32. 32. 과제 심사(온라인 코딩 테스트) – 미리 해볼만 한 곳 • 국내 사이트 • NYPC 공개 문제 ( https://nypc.github.io/2018/ ) • 카카오 공채 코딩 테스트 ( https://www.welcomekakao.com/learn/challenges ) • 백준 온라인 저지 ( https://www.acmicpc.net/ )
  33. 33. 과제 심사(온라인 코딩 테스트) – 미리 해볼만 한 곳 • 해외 사이트 • Codility ( https://app.codility.com/programmers/ ) • LeetCode ( https://leetcode.com/ ) • HackerRank ( https://hackerrank.com/ )
  34. 34. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 게임 프로그래머 채용 프로세스
  35. 35. 직군 면접 • 게임 프로그래머 직군의 능력을 평가 • 게임 엔진(유니티, 언리얼)외에 전반적인 전산학 지식을 폭넓게 요구함
  36. 36. 한번 상상해봅시다 • 여러분들이 <드래곤 하운드> 프로그래머라고 가정 • 기술 스택 • 언리얼 엔진 ( C++ ) • 실버바인서버엔진2 ( C# ) 뭐가 필요한지 한번 생각해봅시다
  37. 37. 클라이언트 - 언리얼 엔진 • 그래픽스 관련 지식 • 3D 행렬 • 카메라 • 좌표계 • 렌더링 파이프라인 • 관련 수학 지식
  38. 38. 클라이언트 - 언리얼 엔진 • 엔진에서 쓰이는 C++에 대한 지식 • OOP개념 • 상속 • 다형성 • 가상함수 • 템플릿 • STL
  39. 39. 클라이언트 - 언리얼 엔진 • 메모리 관련 지식 • 스택 • 힙 • 메모리 풀 • 스마트 포인터
  40. 40. 서버 - 실버바인서버엔진2 • C#에 대한 이해 • VM • GC • Generic • C# Collection들 - List, Dictionary, …
  41. 41. 서버 - 실버바인서버엔진2 • 서버에서 여러 개의 요청을 동시에 처리하기 위한 방법 • Thread • Lock • DeadLock • Microthread(coroutine, fiber)
  42. 42. 서버 - 실버바인서버엔진2 • 서버에서 여러 연결을 효율적으로 처리하는 방법 • IOCP • epoll
  43. 43. 서버 - 실버바인서버엔진2 • DB에 대한 지식 • Transaction • SQL • Stored Procedure • NoSQL • Redis
  44. 44. 게임 로직 관련 • 서버 클라이언트 통신 • TCP, UDP • 어떻게 동기화를 할 것인가? • 메시지를 어떤 방식으로 보낼 것인가? (Serialization)
  45. 45. 게임 로직 관련 • 알고리즘, 자료구조 • 게임에 많은 데이터를 보관, 처리 하는 방법들 • 요구 상황마다 어떤 방식이 효율적인지 알아야 함 • 결론은 각각 자료구조, 알고리즘의 특징을 알아야 함
  46. 46. 정리하면 • 언어 ( C++, C# ) • 그래픽스 • 네트워크 • 알고리즘, 자료구조 • DB • 서버-클라이언트 동기화 • Thread
  47. 47. 왜 게임 만드는데 전산학 지식이 필요한가요? https://twitter.com/minjang_kim/status/749548500774293504
  48. 48. 왜 게임 만드는데 전산학 지식이 필요한가요? • 사용하는 엔진은 몇 년 지나면 바뀔 수 있다 • 엔진이 바뀌어도 기초가 되는 전산학 지식은 변하지 않는다 • 소프트웨어 개발은 기반 기술로 쌓아 올리는 것이라 기초지식을 모르면 잘 만들기 어렵다.
  49. 49. 어떻게 배우나요? • 책을 추천 • 책은 중요도가 높은 지식을 바탕으로 요점 정리가 잘 되어있음 • 추가적인 지식도 책에서 관련 키워드를 습득해서 공부하면 좋음 • 책에서 습득한 지식을 기반으로 실습을 진행하여 본인의 지식으로 만드는 과정이 필요함
  50. 50. 어떻게 배우나요? – 알고리즘 • C로 배우는 알고리즘 • Introduction to algorithms
  51. 51. 어떻게 배우나요? – 언어 • Effective C++ • C# in Depth • Inside C#
  52. 52. 어떻게 배우나요? – 그래픽스 • DirectX 11을 이용한 3D 게임 프로그래밍 입문 • Real-Time Rendering
  53. 53. 어떻게 배우나요? – 면접 대비 • <프로그래밍 면접 이렇게 준비한다>
  54. 54. 1. 서류 심사 2. 과제 심사 ( 온라인 코딩 테스트 ) 3. 직군 면접 4. 팀 면접 게임 프로그래머 채용 프로세스
  55. 55. 팀 면접 • 팀의 방향성과 일치하는지 평가 • 팀 마다 원하는 방향성, 인재상이 다름 • 채용 공고, 팀 인터뷰, 게임 등을 통한 파악 • 파악한 팀의 방향성이 본인과 맞는지 확인
  56. 56. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  57. 57. 준비 전략 • 프로그래머는 직군 면접 준비를 소홀히 해서는 안 된다 • 프로그래머로 업무 수행을 하기 위한 필수 지식 • 게임업계 뿐 아니라 IT업계에서 요구하는 지식 • 기초 지식을 쌓는 경험 도중에 잘하는 분야/관심 있는 분야를 파악할 수 있음
  58. 58. 준비 전략 • 이력서, 포트폴리오, 팀 면접은 전문 분야를 만들어서 표현 • 본인이 잘 하거나 흥미 있는 분야를 선정 • 전문 분야의 경험을 만들어서 표현 • 연구 분야에 대한 PT, 동영상, 소스 코드 • 오픈 소스 프로젝트 참여 • 완수 후 얻은 경험
  59. 59. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  60. 60. 포트폴리오를 어떻게 준비해야 될까요? • 앞에서 정리해 드린 그것이 답 • 본인이 작업한 분야를 명확히 표현 • 면접관이 쉽게 확인할 수 있는 형태로 준비
  61. 61. 저는 언리얼 하는데 유니티 배워야 하나요? 저는 유니티 하는데 언리얼 배워야 하나요? • 팀마다 다르지만 엔진 경험을 선호하는 팀도 있음 • 직군면접에서 영향은 크지 않은 듯 함 • 직군 면접은 게임 프로그래머 직군의 능력을 평가하는 자리 • 기초적인 엔진 지식은 실무에 적응에 도움이 됨
  62. 62. 저는 직군 면접에서 탈락하였는데 포트폴리오를 더 잘 준비해야 될까요? • 직군 면접에서 탈락하였다면 다시 직군 면접 준비를 하는 것이 좋 음 • 직군 면접에서 탈락한 이유가 포트폴리오 미흡함 때문은 아님 • 각 단계 별로 평가 기준이 다르고 통과 했다면 그 단계의 평가 기준은 통과 했다고 보는 것이 좋음
  63. 63. 면접에서 떨어졌습니다. 실력이 없는 것 인가요? • 만약 서류나 팀 면접에서 떨어졌다면 단순히 해당 팀에서 현재 필요로 하는 인재상과 맞지 않을 뿐 너무 낙담하지 않아도 됨 • 과제 심사나 직군면접에서 탈락 했다면 • 앞에 정리한 방법으로 실력을 쌓고 다시 도전
  64. 64. 발표를 하게 된 이유 게임 프로그래머 채용 프로세스 준비 전략 많이 받았던 질문과 답 정리 목차
  65. 65. 정리 • 크게 3가지를 준비 • 게임 개발에 필요한 전산학 지식을 습득 • 본인의 전문 분야를 준비하여 결과물로 표현 • 프로젝트 진행 중 얻은 의사 결정 경험을 공유
  66. 66. 도움을 주신 분들 • 프로젝트DH 팀원분들 • 데브캣 스튜디오 기반개발팀 이승재님, 홍성우님 • 왓 스튜디오 김찬웅님 • 넷게임즈 MX 스튜디오 김용하님
  67. 67. Thank You. Twitter - @noricube Email - noricube@gmail.com

×