SlideShare a Scribd company logo
1 of 40
Download to read offline
• 옥찬호 (Chris Ohk)
• Nexon Korea Game Programmer
• Microsoft Development Technologies MVP
• 페이스북 그룹 C++ Korea 대표
• IT 전문서 집필 및 번역 다수
• 게임샐러드로 코드 한 줄 없이 게임 만들기 (2013)
• 유니티 Shader와 Effect 제작 (2014)
• 2D 게임 프로그래밍 (2014)
• 러스트 핵심 노트 (2017)
• 모던 C++ 입문 (2017)
2008
경북대학교 학사 입학
(컴퓨터공학과)
2013
경북대학교 학사 졸업
KAIST 석사 입학 (전산학부)
2015
KAIST 석사 졸업
넥슨코리아 입사
2019
현재
넥슨코리아 재직중
20XX
미래
???
• 석사 또는 박사 생활의 전반을 결정한다.
• 내가 무엇을 연구하고 싶은지 잘 생각해야 한다.
• 보통 대학원에 지원할 때 원하는 연구실의 교수님과
이메일로 연락해 미리 컨택하는 경우가 많다.
• 일부 대학원은 입학한 뒤 연구실을 컨택하기도 한다.
논문 석사
• 연구실 소속 O
• 졸업 이수 학점 : 33학점
• 졸업 논문 필수
• 평점 제한 : 없음
• 개인 시간이 적음 / 방학 없음
(강의 시간 + 연구실)
교과 석사
• 연구실 소속 X
• 졸업 이수 학점 : 33학점
• 졸업 논문 필수 아님
• 평점 제한 : 3.0 이상
• 개인 시간이 많음 / 방학 있음
(강의 시간 빼고는 자유)
• 수업만 들으면 된다. → 남는 시간이 많다.
• 과제가 쉽지 않다. → 시간이 많으니 할 만하다.
• 하지만 고민이 많아졌다.
• 남는 시간에 무엇을 해야 할까?
• 논문 석사를 선택한 학생들만큼 열심히 해야되는데…
• 교과 석사라서 할 수 있는게 무엇일까?
• 시간을 어떻게 효율적으로 사용할 수 있을까?
• 개발자 커뮤니티 활동해보기
• 직접 커뮤니티를 만들어 보면 어떨까?
• 발표를 통해 많은 사람들에게 도움을 줄 수 있으면 좋겠다.
• IT 서적 번역해보기
• 공부도 할 수 있고, 돈도 벌 수 있다.
• C++ Korea
• 2013년 10월 8일 개설
• 초기 회원 수 2명
• 현재 회원 수 4,555명
• 세미나 4회 진행
• 스터디 8회 진행
• ‘C++ 핵심 가이드라인’ 번역
• 오늘의 저를 있게 해 준
소중한 커뮤니티! 
• C++ Korea 제1회 세미나
• C++ Korea 제1회 세미나
• Effective Modern C++ 스터디 스튜디오 촬영
• C++ 핵심 가이드라인 번역 작업
(https://github.com/CppKorea/CppCoreGuidelines)
• C++ Korea 세미나
• Microsoft MVP (2015 ~ 현재)
• 다양한 곳에서 발표
• 첫 발표는 C++ Korea 1회 세미나 (흑역사…, 영상 있는데 보지 마세요)
• 발표도 경험치가 필요합니다. 자꾸 해봐야 익숙해집니다.
• 그래서 기회가 있으면 되도록 발표하려고 했습니다.
• 그래서 어디에서 발표했나요?
• 격변하는 프로그래밍 언어, 이제는 Let it go (KSIA 세미나)
• 게임 프로그래밍 기초 공부법 (KSIA 세미나)
• C++11 Key Features Summary (C++ Korea 1회 세미나)
• C++17 Key Features Summary (C++ Korea 2회 세미나)
• 첫 IT 도서 번역은 2012년에 시작
• 20대 버킷리스트를 달성하기 위해 (돈을 벌기 위한 목적 X)
• 처음에는 그림이 많고 페이지 수가 적은 도서 선택
• 대학원 진학 후 2013년 7월 31일 출간
• 대학원을 다니면서 남는 시간을 IT 도서를 번역하는데 써보기로 했다.
• 번역을 하면서 게임 개발 공부도 하고 돈도 벌 수 있는 기회
• 시간을 좀 더 효율적으로 쓰기 위한 방법
• 대학원을 다니는 동안 총 2권의 IT 도서를 번역
• 지금까지 번역한 IT 서적
• 첫 학기 중간고사 결과를 보고 충격을 받아 자퇴할 생각을 했다.
• 각 학교에서 잘하는 학생들이 모인 대학원. 정말 잘하는 학생이 많다.
• 시험 결과가 좋지 않자 극도로 낮아진 자존감. 수업을 1주일 정도 가지 못했다.
• 부모님과 함께 오랜 시간동안 이야기한 뒤 마음을 다잡고 계속 다니게 되었다.
• 머신러닝 수업에서 ‘D+’을 받아 졸업하는데 어려움이 많았다.
• 수업의 체감 난도가 높았고 스스로 공부에 소홀히 했던 시기였다.
(p.s. Murphy 책은 너무 어렵습니다. 그리고 저만 ‘D+’을 받은게 아니에요. T_T;)
• 한 학기 더 다녀서 겨우겨우 3.0을 넘겨서 졸업할 수 있었다.
• 대학원생들이 보통 전문연구요원으로 가는 곳
• 연구소 : 국방과학연구소(ADD), KIST, ETRI, …
• 대기업 : 넥슨, NC소프트, 카카오, 네이버, 티맥스소프트, …
• 나의 생각
• 대학생때부터 게임 회사를 가고 싶었다.
• 넥슨, NC소프트 등 게임 회사를 우선적으로 지원하되,
불합격할 경우를 대비해 다른 분야의 회사도 준비하자.
• 우선 회사에 제출할 포트폴리오를 만들자.
• 대학생 때와 대학원생 때 만들었던 것들을 중심으로 정리했다.
입사지원서 제출
자기소개서 제출
포트폴리오 제출
코딩 테스트
알고리즘 문제 풀기
코딩 스타일
기술 면접
컴퓨터 공학 관련 지식
문제 해결 과정
팀/임원 면접
팀에 어울리는 사람인가?
회사에 어울리는 사람인가?
최종 합격
연봉 협상
입사일 협의
• 첫번째로 냈던 게임 회사에서 서류 합격해 면접을 보게 되었다.
그리고 면접을 통과하지 못하고 불합격하게 되었다.
• 왜 불합격했을까? 스스로 생각해보았다.
• 이 때까지만 해도 면접을 너무 안일하게 생각했었다.
• 면접에서 묻는 건 대학교 때 배웠던 컴퓨터 공학의 기본 지식들인데,
공부를 한 지 오래되어 기억이 흐릿하게 남아있던 게 문제였다.
• 대학원 면접 때 준비했던 자료를 다시 꺼내서 공부해야겠다는 생각이 들었다.
• 탈락 이후 다음 회사에서 면접을 보기 전까지 매일 공부하며 정리했다.
• 대학교 때 배우는 주요 과목의 핵심 내용을 정리해서 노트로 만들었다.
• 1순위 : 자료구조, 알고리즘, 운영체제, 컴퓨터 구조, 객체 지향 설계,
컴퓨터 그래픽스, 계산기하학, 선형대수, 확률과 통계
• 2순위 : 이산수학, 오토마타, 컴파일러, 컴퓨터 네트워킹, 인공지능 및 기계학습
• 주로 사용하는 언어도 다시 한 번 정리했다.
• C++ : OOP를 중심으로 원리와 사용법을 다시 공부, 모던 C++ 문법도 살펴보기
• C# : 유니티 엔진을 사용하면서 봤던 코드들을 다시 한 번 살펴보기
• 시간이 남을 때는 알고리즘 문제를 조금씩 풀어보기도 했다.
• 이후 여러 회사에서 서류는 합격했으나 면접은 불합격하게 되었다.
• 일할 분야가 나와 맞지 않는 경우가 있었다.
• 주로 사용하는 언어가 맞지 않는 경우가 있었다.
• 외부 활동을 많이 하는 것을 좋게 보지 않는 경우가 있었다.
• 그러다가 넥슨 면접에 운좋게 합격할 수 있었다.
• 주로 사용했던 언어가 C++인데 면접에서 많이 어필할 수 있었다.
• 대학원 때 들었던 ‘계산기하학’ 수업이 면접에서 많은 도움이 되었다.
• 어려운 문제는 힌트를 들으면서 풀기 위한 여러 방법을 생각했다.
• 대규모 프로젝트를 처음 경험해서 어려운 점이 많았다.
• 코드 라인 수가 수십만 줄이고 구조가 복잡하다.
• 프로젝트 빌드 자동화, 버전 관리 도구, 코드 리뷰, QA 등
대학생이나 대학원생 때는 경험해 보지 못했던 시스템이었다.
• 미리 경험해봤다면 좀 더 쉽게 적응할 수 있지 않았을까 하는 아쉬움이 남았다.
• 다행히 정직원이 되었지만 익숙해지는데 약 1년의 시간이 걸렸다.
• 어려운 점이 있을 때마다 멘토님과 팀원분들이 많은 도움을 주셨다.
• 프로젝트가 어떻게 진행되는지 알고 싶다면 다음을 참고!
(https://www.slideshare.net/utilforever/ss-114169070)
• 입사했으니 끝? 새로운 시작이다.
• 회사에 계신 분들도 개인 시간을 활용해 공부하고 발전한다.
• 물론 사내 교육, 스터디 및 내부 발표를 통해 공부할 수 있다.
• 하지만 뭔가 아쉽다. 내가 하고 싶었던 공부를 해보고 싶다.
퇴근 후에 남는 시간을 잘 활용해 볼 수 있지 않을까?
• 대학원 때 했던 일들은 계속 이어서 하고 싶고,
전과 다른 새로운 무언가를 해보고 싶다.
• 더 넓은 세계에서, 더 많은 사람들과, 더 많은 지식을 나눠보자!
• 대학원생 때 했던 활동들을 여전히 하고 있다.
• C++ Korea : 세미나 및 스터디 진행, C++ 핵심 가이드라인 번역 작업
• 외부 활동 : Microsoft Techdays Korea 2015 발표, PyCon Korea 2018 스프린트,
16회/17회 해킹캠프 발표, 멜팅콘 2018 발표
KSCY 4회 ~ 11회 컴퓨터공학 세션 멘토
선린인터넷고등학교 특강, 한국디지털미디어고등학교 특강,
대덕소프트웨어마이스터고 특강, 한국애니메이션고등학교 특강,
• 도서 번역 : 러스트 핵심 노트 (2017), 모던 C++ 입문 (2017), C++ 최적화 (2019)
• 좀 더 넓은 세상으로 나가보기로 했다.
• 좀 더 넓은 세상으로 나가보기로 했다.
• 오픈소스 프로젝트를 활발히 진행해보기로 했다.
• game-developer-roadmap : 게임 개발자 로드맵
• CubbyFlow-v0 : 유체 시뮬레이터 + 머신러닝을 통해 실시간 유체 구현
• Hearthstone++ : 하스스톤 시뮬레이터 + 강화학습을 통해 승률 높은 덱 만들기
• Civilization++ : 문명 시뮬레이터 + 강화학습을 통해 승리 시나리오 예측
• CubbyDNN : C++17 기반 딥러닝 프레임워크
• CubbyRender : C++ 기반 크로스 플랫폼 렌더링 프레임워크
• CubbyCity : 도시 공학적 현상을 예측하기 위한 시뮬레이터
• 같이 하실 분이 있다면 언제라도 연락주세요! 환영합니다. 
• CubbyFlow-v0 (https://github.com/utilForever/CubbyFlow-v0)
• CubbyFlow-v0 (https://github.com/utilForever/CubbyFlow-v0)
• 덕분에 꿈에만 그리던 NDC에서 발표할 수 있었다.
• Hearthstone++ (https://github.com/utilForever/Hearthstonepp)
• 덕분에 다양한 사람들과 함께 작업할 수 있었다.
• 다양한 사람들과 함께 즐겁게 개발하고 있다.
• 내가 하고 싶은 일이 무엇인지 생각해 보자.
• 나에게 주어진 시간을 어떻게 사용할지 생각해 보자.
• 다양한 활동을 하다 보면 기회가 찾아올 수 있다.
하지만 기회를 잡으려면 노력이 뒷받침되어야 한다.
• 입사했다고 해서 끝이 아니다. 계속 공부하고 성장해야 한다.
• 처음부터 잘 할 수 없다. 실수할 수 있다. 계속 부딪혀보자.
실제로 한걸음씩 나아가고 있는데 스스로 느끼지 못할 뿐이니까!
[델리만주] 대학원 캐슬 - 석사에서 게임 프로그래머까지

More Related Content

What's hot

[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
MinGeun Park
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
devCAT Studio, NEXON
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
devCAT Studio, NEXON
 
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
영욱 오
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
devCAT Studio, NEXON
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
devCAT Studio, NEXON
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬
KyeongWon Koo
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
KyeongWon Koo
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
Seungjae Lee
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
devCAT Studio, NEXON
 

What's hot (20)

[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
 
190406 신입 클라이언트 프로그래머 1개월차까지 이야기
190406 신입 클라이언트 프로그래머 1개월차까지 이야기190406 신입 클라이언트 프로그래머 1개월차까지 이야기
190406 신입 클라이언트 프로그래머 1개월차까지 이야기
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
 

Similar to [델리만주] 대학원 캐슬 - 석사에서 게임 프로그래머까지

커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
NAVER D2
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
devCAT Studio, NEXON
 
[C++ lab] 1. 수업 내용 및 진행 방법
[C++ lab] 1. 수업 내용 및 진행 방법[C++ lab] 1. 수업 내용 및 진행 방법
[C++ lab] 1. 수업 내용 및 진행 방법
MinGeun Park
 

Similar to [델리만주] 대학원 캐슬 - 석사에서 게임 프로그래머까지 (20)

나의 8년 (2012~2019)
나의 8년 (2012~2019)나의 8년 (2012~2019)
나의 8년 (2012~2019)
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발
 
C++ 개요와 표준안
C++ 개요와 표준안C++ 개요와 표준안
C++ 개요와 표준안
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your Way
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
리스펙토링 세미나 - OT
리스펙토링 세미나 - OT리스펙토링 세미나 - OT
리스펙토링 세미나 - OT
 
Momenti Seminar - 5 Years of RosettaStone
Momenti Seminar - 5 Years of RosettaStoneMomenti Seminar - 5 Years of RosettaStone
Momenti Seminar - 5 Years of RosettaStone
 
[제1회 시나브로 그룹 오프라인 밋업] 개발자의 자존감
[제1회 시나브로 그룹 오프라인 밋업] 개발자의 자존감[제1회 시나브로 그룹 오프라인 밋업] 개발자의 자존감
[제1회 시나브로 그룹 오프라인 밋업] 개발자의 자존감
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한..."행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...
 
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
 
신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비
 
[C++ lab] 1. 수업 내용 및 진행 방법
[C++ lab] 1. 수업 내용 및 진행 방법[C++ lab] 1. 수업 내용 및 진행 방법
[C++ lab] 1. 수업 내용 및 진행 방법
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션
 
2015 한양대 직무특강 IT 개발자 이야기
2015 한양대 직무특강 IT 개발자 이야기2015 한양대 직무특강 IT 개발자 이야기
2015 한양대 직무특강 IT 개발자 이야기
 
학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기
 

More from Chris Ohk

More from Chris Ohk (20)

인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
 
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
 
Momenti Seminar - A Tour of Rust, Part 2
Momenti Seminar - A Tour of Rust, Part 2Momenti Seminar - A Tour of Rust, Part 2
Momenti Seminar - A Tour of Rust, Part 2
 
Momenti Seminar - A Tour of Rust, Part 1
Momenti Seminar - A Tour of Rust, Part 1Momenti Seminar - A Tour of Rust, Part 1
Momenti Seminar - A Tour of Rust, Part 1
 
Evolving Reinforcement Learning Algorithms, JD. Co-Reyes et al, 2021
Evolving Reinforcement Learning Algorithms, JD. Co-Reyes et al, 2021Evolving Reinforcement Learning Algorithms, JD. Co-Reyes et al, 2021
Evolving Reinforcement Learning Algorithms, JD. Co-Reyes et al, 2021
 
Adversarially Guided Actor-Critic, Y. Flet-Berliac et al, 2021
Adversarially Guided Actor-Critic, Y. Flet-Berliac et al, 2021Adversarially Guided Actor-Critic, Y. Flet-Berliac et al, 2021
Adversarially Guided Actor-Critic, Y. Flet-Berliac et al, 2021
 
Agent57: Outperforming the Atari Human Benchmark, Badia, A. P. et al, 2020
Agent57: Outperforming the Atari Human Benchmark, Badia, A. P. et al, 2020Agent57: Outperforming the Atari Human Benchmark, Badia, A. P. et al, 2020
Agent57: Outperforming the Atari Human Benchmark, Badia, A. P. et al, 2020
 
Proximal Policy Optimization Algorithms, Schulman et al, 2017
Proximal Policy Optimization Algorithms, Schulman et al, 2017Proximal Policy Optimization Algorithms, Schulman et al, 2017
Proximal Policy Optimization Algorithms, Schulman et al, 2017
 
Trust Region Policy Optimization, Schulman et al, 2015
Trust Region Policy Optimization, Schulman et al, 2015Trust Region Policy Optimization, Schulman et al, 2015
Trust Region Policy Optimization, Schulman et al, 2015
 
Continuous Control with Deep Reinforcement Learning, lillicrap et al, 2015
Continuous Control with Deep Reinforcement Learning, lillicrap et al, 2015Continuous Control with Deep Reinforcement Learning, lillicrap et al, 2015
Continuous Control with Deep Reinforcement Learning, lillicrap et al, 2015
 
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
 
[RLKorea] <하스스톤> 강화학습 환경 개발기
[RLKorea] <하스스톤> 강화학습 환경 개발기[RLKorea] <하스스톤> 강화학습 환경 개발기
[RLKorea] <하스스톤> 강화학습 환경 개발기
 
[NDC 2019] 하스스톤 강화학습 환경 개발기
[NDC 2019] 하스스톤 강화학습 환경 개발기[NDC 2019] 하스스톤 강화학습 환경 개발기
[NDC 2019] 하스스톤 강화학습 환경 개발기
 
C++20 Key Features Summary
C++20 Key Features SummaryC++20 Key Features Summary
C++20 Key Features Summary
 
디미고 특강 - 개발을 시작하려는 여러분에게
디미고 특강 - 개발을 시작하려는 여러분에게디미고 특강 - 개발을 시작하려는 여러분에게
디미고 특강 - 개발을 시작하려는 여러분에게
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기
 
[9XD] Introduction to Computer Graphics
[9XD] Introduction to Computer Graphics[9XD] Introduction to Computer Graphics
[9XD] Introduction to Computer Graphics
 
C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2
 
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
 

Recently uploaded

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Recently uploaded (7)

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

[델리만주] 대학원 캐슬 - 석사에서 게임 프로그래머까지

  • 1.
  • 2. • 옥찬호 (Chris Ohk) • Nexon Korea Game Programmer • Microsoft Development Technologies MVP • 페이스북 그룹 C++ Korea 대표 • IT 전문서 집필 및 번역 다수 • 게임샐러드로 코드 한 줄 없이 게임 만들기 (2013) • 유니티 Shader와 Effect 제작 (2014) • 2D 게임 프로그래밍 (2014) • 러스트 핵심 노트 (2017) • 모던 C++ 입문 (2017)
  • 3. 2008 경북대학교 학사 입학 (컴퓨터공학과) 2013 경북대학교 학사 졸업 KAIST 석사 입학 (전산학부) 2015 KAIST 석사 졸업 넥슨코리아 입사 2019 현재 넥슨코리아 재직중 20XX 미래 ???
  • 4. • 석사 또는 박사 생활의 전반을 결정한다. • 내가 무엇을 연구하고 싶은지 잘 생각해야 한다. • 보통 대학원에 지원할 때 원하는 연구실의 교수님과 이메일로 연락해 미리 컨택하는 경우가 많다. • 일부 대학원은 입학한 뒤 연구실을 컨택하기도 한다.
  • 5. 논문 석사 • 연구실 소속 O • 졸업 이수 학점 : 33학점 • 졸업 논문 필수 • 평점 제한 : 없음 • 개인 시간이 적음 / 방학 없음 (강의 시간 + 연구실) 교과 석사 • 연구실 소속 X • 졸업 이수 학점 : 33학점 • 졸업 논문 필수 아님 • 평점 제한 : 3.0 이상 • 개인 시간이 많음 / 방학 있음 (강의 시간 빼고는 자유)
  • 6. • 수업만 들으면 된다. → 남는 시간이 많다. • 과제가 쉽지 않다. → 시간이 많으니 할 만하다. • 하지만 고민이 많아졌다. • 남는 시간에 무엇을 해야 할까? • 논문 석사를 선택한 학생들만큼 열심히 해야되는데… • 교과 석사라서 할 수 있는게 무엇일까? • 시간을 어떻게 효율적으로 사용할 수 있을까?
  • 7. • 개발자 커뮤니티 활동해보기 • 직접 커뮤니티를 만들어 보면 어떨까? • 발표를 통해 많은 사람들에게 도움을 줄 수 있으면 좋겠다. • IT 서적 번역해보기 • 공부도 할 수 있고, 돈도 벌 수 있다.
  • 8. • C++ Korea • 2013년 10월 8일 개설 • 초기 회원 수 2명 • 현재 회원 수 4,555명 • 세미나 4회 진행 • 스터디 8회 진행 • ‘C++ 핵심 가이드라인’ 번역 • 오늘의 저를 있게 해 준 소중한 커뮤니티! 
  • 9. • C++ Korea 제1회 세미나
  • 10. • C++ Korea 제1회 세미나
  • 11. • Effective Modern C++ 스터디 스튜디오 촬영
  • 12. • C++ 핵심 가이드라인 번역 작업 (https://github.com/CppKorea/CppCoreGuidelines)
  • 13. • C++ Korea 세미나
  • 14. • Microsoft MVP (2015 ~ 현재)
  • 15. • 다양한 곳에서 발표 • 첫 발표는 C++ Korea 1회 세미나 (흑역사…, 영상 있는데 보지 마세요) • 발표도 경험치가 필요합니다. 자꾸 해봐야 익숙해집니다. • 그래서 기회가 있으면 되도록 발표하려고 했습니다. • 그래서 어디에서 발표했나요? • 격변하는 프로그래밍 언어, 이제는 Let it go (KSIA 세미나) • 게임 프로그래밍 기초 공부법 (KSIA 세미나) • C++11 Key Features Summary (C++ Korea 1회 세미나) • C++17 Key Features Summary (C++ Korea 2회 세미나)
  • 16. • 첫 IT 도서 번역은 2012년에 시작 • 20대 버킷리스트를 달성하기 위해 (돈을 벌기 위한 목적 X) • 처음에는 그림이 많고 페이지 수가 적은 도서 선택 • 대학원 진학 후 2013년 7월 31일 출간 • 대학원을 다니면서 남는 시간을 IT 도서를 번역하는데 써보기로 했다. • 번역을 하면서 게임 개발 공부도 하고 돈도 벌 수 있는 기회 • 시간을 좀 더 효율적으로 쓰기 위한 방법 • 대학원을 다니는 동안 총 2권의 IT 도서를 번역
  • 18. • 첫 학기 중간고사 결과를 보고 충격을 받아 자퇴할 생각을 했다. • 각 학교에서 잘하는 학생들이 모인 대학원. 정말 잘하는 학생이 많다. • 시험 결과가 좋지 않자 극도로 낮아진 자존감. 수업을 1주일 정도 가지 못했다. • 부모님과 함께 오랜 시간동안 이야기한 뒤 마음을 다잡고 계속 다니게 되었다. • 머신러닝 수업에서 ‘D+’을 받아 졸업하는데 어려움이 많았다. • 수업의 체감 난도가 높았고 스스로 공부에 소홀히 했던 시기였다. (p.s. Murphy 책은 너무 어렵습니다. 그리고 저만 ‘D+’을 받은게 아니에요. T_T;) • 한 학기 더 다녀서 겨우겨우 3.0을 넘겨서 졸업할 수 있었다.
  • 19. • 대학원생들이 보통 전문연구요원으로 가는 곳 • 연구소 : 국방과학연구소(ADD), KIST, ETRI, … • 대기업 : 넥슨, NC소프트, 카카오, 네이버, 티맥스소프트, … • 나의 생각 • 대학생때부터 게임 회사를 가고 싶었다. • 넥슨, NC소프트 등 게임 회사를 우선적으로 지원하되, 불합격할 경우를 대비해 다른 분야의 회사도 준비하자. • 우선 회사에 제출할 포트폴리오를 만들자.
  • 20. • 대학생 때와 대학원생 때 만들었던 것들을 중심으로 정리했다.
  • 21. 입사지원서 제출 자기소개서 제출 포트폴리오 제출 코딩 테스트 알고리즘 문제 풀기 코딩 스타일 기술 면접 컴퓨터 공학 관련 지식 문제 해결 과정 팀/임원 면접 팀에 어울리는 사람인가? 회사에 어울리는 사람인가? 최종 합격 연봉 협상 입사일 협의
  • 22. • 첫번째로 냈던 게임 회사에서 서류 합격해 면접을 보게 되었다. 그리고 면접을 통과하지 못하고 불합격하게 되었다. • 왜 불합격했을까? 스스로 생각해보았다. • 이 때까지만 해도 면접을 너무 안일하게 생각했었다. • 면접에서 묻는 건 대학교 때 배웠던 컴퓨터 공학의 기본 지식들인데, 공부를 한 지 오래되어 기억이 흐릿하게 남아있던 게 문제였다. • 대학원 면접 때 준비했던 자료를 다시 꺼내서 공부해야겠다는 생각이 들었다. • 탈락 이후 다음 회사에서 면접을 보기 전까지 매일 공부하며 정리했다.
  • 23. • 대학교 때 배우는 주요 과목의 핵심 내용을 정리해서 노트로 만들었다. • 1순위 : 자료구조, 알고리즘, 운영체제, 컴퓨터 구조, 객체 지향 설계, 컴퓨터 그래픽스, 계산기하학, 선형대수, 확률과 통계 • 2순위 : 이산수학, 오토마타, 컴파일러, 컴퓨터 네트워킹, 인공지능 및 기계학습 • 주로 사용하는 언어도 다시 한 번 정리했다. • C++ : OOP를 중심으로 원리와 사용법을 다시 공부, 모던 C++ 문법도 살펴보기 • C# : 유니티 엔진을 사용하면서 봤던 코드들을 다시 한 번 살펴보기 • 시간이 남을 때는 알고리즘 문제를 조금씩 풀어보기도 했다.
  • 24. • 이후 여러 회사에서 서류는 합격했으나 면접은 불합격하게 되었다. • 일할 분야가 나와 맞지 않는 경우가 있었다. • 주로 사용하는 언어가 맞지 않는 경우가 있었다. • 외부 활동을 많이 하는 것을 좋게 보지 않는 경우가 있었다. • 그러다가 넥슨 면접에 운좋게 합격할 수 있었다. • 주로 사용했던 언어가 C++인데 면접에서 많이 어필할 수 있었다. • 대학원 때 들었던 ‘계산기하학’ 수업이 면접에서 많은 도움이 되었다. • 어려운 문제는 힌트를 들으면서 풀기 위한 여러 방법을 생각했다.
  • 25.
  • 26. • 대규모 프로젝트를 처음 경험해서 어려운 점이 많았다. • 코드 라인 수가 수십만 줄이고 구조가 복잡하다. • 프로젝트 빌드 자동화, 버전 관리 도구, 코드 리뷰, QA 등 대학생이나 대학원생 때는 경험해 보지 못했던 시스템이었다. • 미리 경험해봤다면 좀 더 쉽게 적응할 수 있지 않았을까 하는 아쉬움이 남았다. • 다행히 정직원이 되었지만 익숙해지는데 약 1년의 시간이 걸렸다. • 어려운 점이 있을 때마다 멘토님과 팀원분들이 많은 도움을 주셨다. • 프로젝트가 어떻게 진행되는지 알고 싶다면 다음을 참고! (https://www.slideshare.net/utilforever/ss-114169070)
  • 27.
  • 28. • 입사했으니 끝? 새로운 시작이다. • 회사에 계신 분들도 개인 시간을 활용해 공부하고 발전한다. • 물론 사내 교육, 스터디 및 내부 발표를 통해 공부할 수 있다. • 하지만 뭔가 아쉽다. 내가 하고 싶었던 공부를 해보고 싶다. 퇴근 후에 남는 시간을 잘 활용해 볼 수 있지 않을까? • 대학원 때 했던 일들은 계속 이어서 하고 싶고, 전과 다른 새로운 무언가를 해보고 싶다. • 더 넓은 세계에서, 더 많은 사람들과, 더 많은 지식을 나눠보자!
  • 29. • 대학원생 때 했던 활동들을 여전히 하고 있다. • C++ Korea : 세미나 및 스터디 진행, C++ 핵심 가이드라인 번역 작업 • 외부 활동 : Microsoft Techdays Korea 2015 발표, PyCon Korea 2018 스프린트, 16회/17회 해킹캠프 발표, 멜팅콘 2018 발표 KSCY 4회 ~ 11회 컴퓨터공학 세션 멘토 선린인터넷고등학교 특강, 한국디지털미디어고등학교 특강, 대덕소프트웨어마이스터고 특강, 한국애니메이션고등학교 특강, • 도서 번역 : 러스트 핵심 노트 (2017), 모던 C++ 입문 (2017), C++ 최적화 (2019)
  • 30. • 좀 더 넓은 세상으로 나가보기로 했다.
  • 31. • 좀 더 넓은 세상으로 나가보기로 했다.
  • 32. • 오픈소스 프로젝트를 활발히 진행해보기로 했다. • game-developer-roadmap : 게임 개발자 로드맵 • CubbyFlow-v0 : 유체 시뮬레이터 + 머신러닝을 통해 실시간 유체 구현 • Hearthstone++ : 하스스톤 시뮬레이터 + 강화학습을 통해 승률 높은 덱 만들기 • Civilization++ : 문명 시뮬레이터 + 강화학습을 통해 승리 시나리오 예측 • CubbyDNN : C++17 기반 딥러닝 프레임워크 • CubbyRender : C++ 기반 크로스 플랫폼 렌더링 프레임워크 • CubbyCity : 도시 공학적 현상을 예측하기 위한 시뮬레이터 • 같이 하실 분이 있다면 언제라도 연락주세요! 환영합니다. 
  • 35. • 덕분에 꿈에만 그리던 NDC에서 발표할 수 있었다.
  • 37. • 덕분에 다양한 사람들과 함께 작업할 수 있었다.
  • 38. • 다양한 사람들과 함께 즐겁게 개발하고 있다.
  • 39. • 내가 하고 싶은 일이 무엇인지 생각해 보자. • 나에게 주어진 시간을 어떻게 사용할지 생각해 보자. • 다양한 활동을 하다 보면 기회가 찾아올 수 있다. 하지만 기회를 잡으려면 노력이 뒷받침되어야 한다. • 입사했다고 해서 끝이 아니다. 계속 공부하고 성장해야 한다. • 처음부터 잘 할 수 없다. 실수할 수 있다. 계속 부딪혀보자. 실제로 한걸음씩 나아가고 있는데 스스로 느끼지 못할 뿐이니까!