전략: 테크: 커리어
테크를 배우자 - 근데 이제 커리어 포커스
전략: 테크: 커리어
머리말
테크를 배우자. 근데 이제 커리어 포커스.
- 목표:
- 넥슨 간다
- IO 본부 간다
- 넥슨 간다
- 삼신기:
- CT: Coding Test
- CS: Computer Science.
- PJ: Project.
- 1:
- Q. 빌드업 너무 긺
- A. 바로 본론으로. 대충 정리하고 시작
- 2:
- Q. 우선순위
- A. 자원 최적화. (팀 프로젝트, 여가 시간)
- Q. 남은 시간
- A. 약 500일
- 2025-XX-XX: 25년 100일도 안남음
- 2027-02-28: 산업기능요원 복무 소집 해제 (26살)
- 26살? 내가 26년이나 살았다고?
- 2027-09-XX: 넥토리얼 지원 (있을지 모르지만, 일단)
- ‘데드라인 설정하고 스스로 크런치모드로 해봐 어떻게든 될거임’
티켓
- 단기 티켓
- XX: 블로그 레퍼런스
- 글 잘 정리해야 함.
- 리스트 말고, 부드럽게 말로 읽을 수 있는 아티클.
- 마치 면접 질의응답 말로 하듯.
- CT: 코테 환경 세팅
- CS: 면접 질문 정리 (어떤 도메인 필요한지)
- PJ: 목표 수준 설정 (엔진 - 상용/자체, 장르, 서버)
- PJ: 목표 자료 정리 (새로 배울 도메인, 강의 등)
- XX: 블로그 레퍼런스
- 정기 티켓
- CS: 주제 정하고 포스팅: 최소 1주 1포스팅
- 장기 티켓
- PJ: 단기 빠르게 작업하고 출시하는 것을 목표로
- PJ: 데드라인 정해서 내가 올해 이정도 포폴은 만들거야 <- 좋음
- 예매
- PJ: 챌린지: N일 안에 게임 출시하기
Out Computer
서치
- 넥슨
- 채용 공고
- 온/오프라인 행사 서치
- 동향 파악
- 게임 씬
- 커뮤니티
- 0910 - 0821
- i.e.
문서
- 자기소개서, 이력서, 포폴 깎기
- 블로그 깎기
활동
- 게임잼/게임동아리/스터디
- 다양하게 어필할 수 있는 공간을 활용
- 신입 자리는 적고 사람은 많으니까
- 링크드인, 노션, 깃헙, 트렐로 등
- 책
외관
- 면접 능력
- 모의 면접
- 사회성
- 너무 목석 같아도 안됨
- 면접이라는 걸 보는 이상, 사람 자체가 갖는 아우라나 매력이 생각보다 합불에 영향을 크게 줌
- 지원자가 너무 많음
- 외향형이고 운동하는 규칙적인 사람
- 스피치, 눈치, 친화력
- 인성
- 인터넷
- 블로그 같은 공부이나 활동
분야-우선순위
- 채용의나라 피셜
- 1위 CS
- 2위 자료구조/알고리즘
- 3위 언어, 디자인 패턴, 엔진, DB 등
- 자기가 쓰는 언어의 심화 과정 공부
- _
- CS 탄탄하고 코테 통과
- 인적성 문제 없고
- 팀워크 잘하고
- 포폴 나쁘지 않으면
Computer Science / 컴퓨터 공학
전공. 가장 중요함. (4)
- 기본기
- 컴퓨터의 기초, 로우 레벨은 필수
- 기본기가 탄탄하면 뭐든지 빠르게 배울 수 있다
- 상용 엔진 경험 같은 건 언제나 바뀔 수 있고, 또 회사에서 배우면 돼
- 그래서 CS 지식이 더 우선순위가 높다
CS-분야
- 언어
- C/C++
- 운영체제
- 메모리 구조
- 컴퓨터 구조
- 스레드
- 객체지향/OOP (11)
- 알고리즘 (10) & 자료구조 (10)
- 디자인패턴 (4)
- # 자주 쓰이는거 위주 공부하고, 실전 적용 (프로젝트에)
- 싱글턴, 팩토리, 스트레티지 정도는
- 선형대수
- 외적/내적 정도는 기본
- 행렬 변화 정도가 숙지되어야 함
- # 이산 수학?
- 그래픽스
- 기초 그래픽스
- 파이프 라인 정도, 머테리얼 사용법 숙지
- 파이프 라인 정도 익히고 회사 가서 부딪혀가며 익혀도 됨
- # 나는 셰이더를 좀 더 공부해서 강점을 만들까?
- 기초 그래픽스
코테-자료구조-알고리듬
- 코딩테스트
- 문제 이해하기
- 데이터와 문제에 맞는 알고리듬 찾기
- 알고리듬 적용하고 디버깅하기
- DFS 쓸 때는 스택쓰기
- DFX 쓸 때 시작지점 stack에 미리 넣기
- 코테 알고리듬 질문, 게임 특화 알고리듬 종종 (A*, QuadTree, BSP)
언어-엔진
- 언리얼 C++
- Effective C++
- 유데미 언리얼 강의
- 언리얼 장점이 입맛에 맛게 엔진 코드 고치는건데
- 근데 마개조 할수록 엔진 업데이트 하기가 어려움
- 유지보수 어려워서 PBR 쓸거면 그냥 냅두는 게 맞는 거 같아
- 엔진 새 기능이 가지 치듯 업데이트 되면 좋은데, 맨날 구조를 바꿔버리니가 렌더링 파이프라인 살짝만 비틀어도 커스텀 한 거 다 박살남
- 요새 커스텀 안하는 분위기?
- https://gall.dcinside.com/mgallery/board/view/?id=gamejob&no=52081&page=13
- [https://m.ruliweb.com/news/read/214344](턴제에 실시간 요소 더하기, ‘클레르 옵스퀴르’의 전투 디자인은 이렇게 이루어졌다)
- 유니티 C#
프로그래밍 일반
디자인 패턴
- 공통적으로 발생할 수 있는 문제에 대한 재사용가능한 솔루션/해결책
- 옵저버 패턴
- 싱글턴 패턴
- 오브젝트 풀
- FSM
- BT
DB
그래픽스
- 셰이더()
- 노드 기반 셰이더 분석 및 작성 (2)
- 프로그래밍
- HLSL
- 카툰 렌더링
- 잘하면 스펙트럼 넓지
- 셰이더 잘 다루고
- 로우레벨 엔진 커스터마이징까지 가능
- 최적화도 코드 단위가 아니라 렌더러 레벨에서 할 수 있고
- 멀티스레드 경험치도 일반 클라 개발자보다 많고
- SW 엔지니어링, 그래픽스의 일부
수학
(2)
- 공학수학
- 선형대수 (2)
- 이산수학
- 벡터 연산
- 내적, 외적
- 행렬 연산
- 기본 뉴턴 역학
- 선형대수 개념 없이 벡터와 스칼라를 크기와 방향, 크기만 있는 물리량으로만 이해 X
멀티스레드
- 멀티스레드 (3)
네트워크
- (5)1
- 소켓
- 서버
- 서버 통신 및 데이터 추가/삭제/추출
- SQL
- MySQL
- PostgreSQL
- 멀티
- 멀티플레이 구현
- P2P, Server to Clients
- 동기화
- 간헐적 통신을 이용한 위변조 체크, 로그 쌓기
- Photon, Nakama
웹
서버 네트워크 공부하면서
프로그래밍 경험
경험
- 출시 (5)
- 라이브 (2)
- 신규
- 초기/개발단계부터 상용화/라이브 서비스까지 (11)
- 유니티/메모리/성능 최적화 (5)
툴
- Tool
- PlayFab
오픈소스
- 에셋
- SDK/서드파티 (4)
- 구글, 애플 연동 (3)
그 외
- 기존 프로그램의 구조 개선/리팩토링
- 액션/전투 (3)
- 방치형
- 턴제
- SLG
- Git (2)1
- Lua Script (2)
- 코드 분석
- 디버깅 (2)
- UI/UGUI (7)
- URP (2)
- 렌더링/그래픽스 (2)
- 물리 (2)
- 플랫폼: iOS/AOS/PC (2)
- 데이터 기반 의사결정
- 최신 개발 트렌드
- Spine (2)
- After Effects
- 1인 개발
- 시스템 구조 설계 (2)
- 전용/효율 툴 개발 (2)
포트폴리오
- 유의미한 성과
- PDF
- 폰트 같은 것도 깨져서 PDF로 패킹해서 주는게 편함
- +보안 문제 (링크나 구동 파일)
자기소개서-이력서
\? 이력서 탈락 여부가 결정되고, 포폴은 면접 시 세부 질문
- 이력서
- 사진, 나이, 이름, 연락처
- 주소, 원하는 부서, 학력, 경력, 희망연봉, 입사가능일시
- 아래 두 가지를 너무 번잡하지 않게 2~3장 내외로 정리
- 본인이 해왔던 일 (할 수 있는 일)
- 프로젝트 경험 기간
- 사진, 나이, 이름, 연락처
- 경험
- 신입
- 학부 & 교육 기간에 무엇을 했는지, 개발에 밀접한 전공인지
- 이력서나 포폴이 성의가 있는지
- 경력
- 이전 회사에서 어떤 직위를 맡았는지
- 이직 주기 최근 2년 동안 2회 이하인지 (근속년수)
- 원하는 포지션과 도메인에 맞는 일을 하였는지
- 개발한 프로젝트가 실제로 서비스 됐는지
- 우리 회사에서 진행하고 있는 프로젝트와 유사 경력이 있었는지
- 시니어
- 이전 회사에서 어떤 산출물이 있었는지
- 프로젝트, 대인 리드 경험이 있었는지
- 신입
- 비중 적은 것 (상대)
- 블로그 정리글, 포폴 영상 3분 넘어가는 것 -> 볼 시간 부족
- 깃헙 페이지 코드 -> 보통 README 정도만
- 포트폴리오
- 영상 -> 궁금하면 보는거고, 포폴 자체가 좋으면 여부 관계 없음
- 가독성 (그림, 영상 배치, 간격 등)
프로젝트
- 프로젝트 & 스킬
- 뭘 했냐도 중요하지만, 얼마나 구현했는지가 중요
- 구현 기술, 과정과 결과 둘 다 중요함
- 산출물 위주의 짧은 글 + 그 과정에서 겪었던 일들.
- 보통 전자는 서류, 후자는 면접
- 개발자가 포폴에 꼭 포함해야 할 12가지
- 포폴에 대한 생각
- 게임을 만들고 싶은건지, 취업을 하고싶은건지 (포폴은 만들고 싶은건지) 확실히 결정
- 게임: 긴 시간 들여서 넣고 싶은거 다 하기. 젊은 나이는 그 무엇과도 바꿀 수 없다.
- 취업: 일정을 정하고, 강점이 될만한 기능들만 구현해보고, 다음으로.
- 게임을 만들고 싶은건지, 취업을 하고싶은건지 (포폴은 만들고 싶은건지) 확실히 결정
- 포폴-면접
- 포폴 공들인거 같아서 면접 잡아도 대답 못하면 그저 학원에서 준 레퍼런스인가 하기도 하고
- 반대되는 예가 학원 포폴, 파쿠리 같이 뭔가 외부의 도움 비중이 높은 것들
- 내용
- 포폴 다 못보니까, 자신있는거 추려서 다듬기
- 퀄만 좋으면 1개도 가능, 수가 중요하지 않음
- 신입 -> 키움
- 기본적인 실력 베이스
- 양 보다, 뭔가를 스스로 몰두하고 끝까지 했는지가 중요
- 게임에 쓰이는 코어 피쳐가 매끄럽게 들어가있는 포폴 한 두개면 됨
- i.e. 네크워크 플레이 지원, 피격 판정있는 액션, DB에 저장되는 인벤토리, 무기 스왑, 레벨 업 등 성장시스템
- 그 다음은 +@
- 남들보다 좀 더 깊이 있는 테크닉을 챙겨주면 좋음
- 렌더링을 파거나
- 엔진을 파보거나
- 관심있는 논문을 파거나
- 남들보다 좀 더 깊이 있는 테크닉을 챙겨주면 좋음
- 단순 열거 -> 경험과 함꼐 설명
- 이 기능은 어떻게 구현하셨나요? -> ~를 몰랐는데 공부하게 됐습니다
- 어떤 최적화 기법을 적용
- 하나의 기승전결 완성작 < 효율적 로직, 기능 구현
- 게임 엔진 경험 < 전반적인 게임 제작 프로세스, 타 파트가 하는 업무 이해, 다양한 문제 슬기롭게 대처한 경험
- 문제 해결자로서 팀에 기여한 내용을 잘 기록
- 콘텐츠 제작/엔진 활용보다, 프로그래머로서 프로젝트에 기여할 수 있는 꼼꼼한 관리, 효율성 추구에 대한 마인드가 중요
- i.e. 커뮤니케이션을 위해 노트 정리를 꼼꼼하게 하고 공유한 경험, 실수에 의한 발생한 문제를 감지하는 이중 시스템 개발
- 확장성, 기획자가 있다는 가정하에 만든, 프로그래밍을 거의 모르는 사람이 모든 값을 조정 가능한, 에디터/엑셀 파싱
- 게임 엔진 활용 능력
- 어차피 다시 배운다. 회사 프로젝트에 따라서 재조립된다. -> 우선 기본에 충실
- 기술적으로 어필할 수 있는. 프로젝트를 진행하면서 포폴 정리, 계속 자그만한 시스템들을 만들어나가야 한다.
- 게임 엔진 활용 기술을 어필하고 싶다면, 에디터 툴 확장. 툴을 활용해 생산성 개선 고민해보는 경험.
- 문제 해결자로서 팀에 기여한 내용을 잘 기록
- 포폴 다 못보니까, 자신있는거 추려서 다듬기
- 포폴
- ‘뻔하고 지루한 무슨 게임 모작 이것저것 시스템 구현’
- ‘인사팀 선에서 퀄리티는 다 걸러졌을 것이고 신입이 만든다고 얼마나 잘만들었겠냐’
- ‘면접가면 포폴이 진짜인지 가짜인지 어떻게 작업했는지 정도만 알고싶어하고 지원자가 무슨 천재적인 방법을 써서 만들었나 그런 기대는 딱히 안한다’
- ‘결국 물어보는건 CS 지식에 대한 깊이, 얘를 회사 작업 스타일로 얼마나 개조할 수 있는가, 이해할 머리가 되는가 이런 것들 같음’
- ‘그치 내 말은 이제 인사팀이 보고 괜찮다고 평가할 포폴은 만들되 포폴로 명작을 만들겠어 이럴건 없는 것 같다는거지’
- ‘그래서 포폴에 목숨 걸 필요가 없다는거임’
- ‘현실적으로 너가 서류를 합격하고 면접을 끝내는 과정까지 너가 낸 포폴에서 코드 단위로 확인하는 사람은 없다고 보면됨’
- ‘인사팀은 채용 기준에 따라 자소서와 포폴이 주는 연관성, 신뢰성 등을 판단해서 실무팀으로 넘겨주고, 실무팀은 이걸 다 확인할 시간이 없으니 면접때 찔러보는 식으로 포폴의 진위성과 너의 기술적 이해를 판단함’
- ‘그렇기 때문에 포폴은 기본만 하고, 그 외에 너를 뽑아야하는 특별한 이유를 만드는게 중요하다고 봄’
- 다인/팀플/인디
- 기본적인 협업 개념은 있겠다 싶은
- 협업하는 것도 배워보고, 잘하는 사람 코드 보면서 공부
- 물론 없는 것보다 좋음. 인맥이 만들어지니까
- 1인 개발 대비 - 다른 부서 이해도. 사회성.
- 목적
- 인디: 자아 - 아이디어 생기면 런하지 않을까
- 포폴: 공부했구나
- 협업
- X: 보통 엉망진창, 책임감 부족, 결과물 완성도 하락
- O: 책임감 있는 팀원들과 수준있는 협업
- 기술
- X: 보통 새로운 걸 배우기보단 기존 습관대로 작업 -> 성장 X
- O: 새로운 걸 배우면서, 기술적인 요소 함유
- 결과물
- 출시 경험 + 다운로드 수 + 서비스 유지보수 중이면 좋음
- 기본적인 협업 개념은 있겠다 싶은
- 활동 보다는 결과물
- 게임 개발 동아리 -> 좋지만 결과물, 라이브 서비스 경험
면접
- 대답은 알고있는 선에서, 모르는건 모른다고
- 잼얘하기
- 갑분싸를 방지하는 면접 대처법
- 게임회사 현직자들이 말하는 합격 꿀팁
개성
- 게임 많이 하기
- ‘뭐든 특출난 부분이 있으면 됨. 코딩 챌린지, 공모전, 게임잼, 게임쪽 인턴십, 게임회사 산학 연계 동아리(은근 있음), 인디 게임 출시 경험 등 남들에게 없는 특별한 경험이 있으면 좋게 보시는듯.’
- ‘그냥 작업물 두 세개로 여기저기 찔러보는 애들(핏하지 않은)은 가차없이 컷했다고 함. 지원자중 그런 케이스가 워낙 많다고.. 나는 운이 좋아서 어쩌다보니 여기 플젝이랑 딱 맞는 포폴이 되어버렸다’
- ‘수많은 지원자 중 포폴 겹치는 스멜도 컷이라고 했다. 그니까 다른 사람 포폴 보고 어? 이 기능 내지는 레이아웃 괜찮아보이네? 나도 이 부분은 써봐야지~ 라며 작은 부분 겹치는 것도 좋게는 안봤다 한다. 본인은 참고 차 인용만 해야지 라는 부분도 결국 다른 지원자도 좋게보고 쓴다라고 해서 겹칠 수 밖에 없다더라. 사람 눈 다 똑같다’
- ‘마지막에 추가 점수를 딸 수 있는 부분은 사회 생활에 도움이 될만 한, 게임 외적으로 무얼 해봤냐다. 게임 했단 건 분별력이 없다. 여러 경험 얘기로 정신력, 체력 등 어필’
프로그래밍 심화
디렉
- 시간 남으면
- 쌩 밑바닥에서 만드는 포폴
- 기본기
리마인드
- 왜 와이:
- 결국 평생 일 한다
- 평생 할거면, 이왕이면 재밌고 만족스러워야
- 일의 세 가지 만족 요소
- 돈, 명예, 흥미
- 나에게 있어서
- 돈
- 아직 돈의 가치를 잘 알지 못한다
- 나중에 어련히 알게 되겠지, 우선 모으기
- 흥미
- 그래도 하고 싶은 일이여야
- 명예
- 나 스스로가 만족할 수 있는 환경과 경험
- 돈
- 어떤 일을 하는 것이 좋을까
- 게임 프로그래머
- 어떤 게임
- 어떤 프로그래머
- 게임 프로그래머
- 목표와 가장 가까운 업무 환경
- 장기적: 넥슨
- 미소녀: 블루 아카이브, MMO RPG: 메이플스토리
- 단기적: 1인 개발
- WM
- 장기적: 넥슨
- 어떻게 이룰 수 있는가
- 장기적:
- 공부
- 활동
- 틈틈히 확인
- 넥슨 행사 같은거
- 단기적:
- 프로젝트:
- 틈틈히 만들어봐야
- 프로젝트:
- WM
- 나만의 세계관
- 이건 공부, 프로젝트, 게임 - 덕질 전부 해당
- 나만의 세계관
- 장기적:
- 결국 평생 일 한다
- 지금:
- 나이가 무기다. ㄹㅇ.. 나이 하나라도 젊을 때 다 해버리자.
- 센빠이는 이 나이에 뭘 하고 있었을까.
- 최선:
- 부담가지지 말고, 할 수 있는데 까지
- 어차피 하려고 했던 거. 모티베이션돼서 오히려 좋아.
- 최고:
- 다 잘하는 사람 줄 세워도 to보다 많다.
- 작은 회사도 N백명이 지원하는데, 그 N백명, N천명과 붙어서 뽑힐 수 있는 실력
- 나 혼자 하는게 아니라, 나보다 더 많은 시간을 쏟는 수많은 지원자들이 있다.
- 이미지:
- Like 고딩 범생이 친구들. 밤늦게까지 야자 열심히. 가끔 놀고
- 유혹 빠르게 처리하기
- 기본기:
- 신입: 키워서 씀 -> 기본이 탄탄해야
- 경력: 기본기 없음? -> 신입만 못하다 (경력은 비싸니까!)
- 기본기 있으면 뭐든 금방 배움 (기본기 > 사용 엔진)
- 선택과 집중:
- 중요한거부터 (공고 키워드나, 면접 단골 질문 같은 것들)
- 효율적으로. 하지만 멀티 태스킹은 X
- 빌드업은 짧게, 실행은 빠르게
- 공부/프로젝트 방법:
- 주제 정하고, 데드라인 정하고, 공부하고, 정리하기
- 최소 기초: 최소 책 한 권은 뗀다는 마인드 -> 책 존나 읽자
- 어려우면, 자료 적극적으로. 강의 봐도 좋고. (인프런, 유데미, …)
- CS: 스테이지 깨 듯. 별 3개.
- 1: 한 번 공부 할 떄 확실히.
- 2: 이쁘게 정리. 남이 본다는 생각으로. (며칠 후의 나에게)
- 3: 배운 개념 응용. 내 것으로 만들기.
- 키워드를 경험, 능력으로
- 그냥 보고 넘기지 말기
- 한 번 접한 것은, 완전히 알지는 못하더라도, 큰 틀에서 설명할 수 있도록
- 간단히라도 정리해서 글로 남기기
- 멋대로 생각하지 말기
- 이래도 되겠지 X
- 두 번 세 번 의심하고, 확인 받고
- 문제가 생기면 빠르게 보고하고, 해결 방법을 찾기
메모
- 코테 -> 과제로 바뀌는 추세? 암튼 둘 다 잘 해야.
- 공백기
- 정말 아무것도 안한 기간.
- 뭐라도 했고 설명되는 기간이면 됨 (프로젝트 설명, 개월 수)
- 프로그래머 2차 전직
- 종류
- 서버 전문가
- 엔진 전문가/TA
- 일단 클라이언트 개발자로 취업한 후
- 처음부터 준비할 수는 없음
- 바로 전문가로 취업하기는 어려움
- 경험과 지식이 기반이 되어야 함
- 종류
- 이직
- 일 하고 있는 상태에서 이직을 하는 게 좀 더 유리 (특히 구직난에는)
- 중고 신입
- 약 3년차 이상 부터는 중고 신입 잘 안된다? (연차 - 그 연차에 기대하는 업무 역량과 퍼포먼스)
- 보통 3년차로 중고 신입가려고 하면 물경력인 것 맞아서, 안 급하면 2년 이상 경력직 찔러보고 급하면 신입
- 실무 경험 있는데 인턴은 진짜 아님
- VR, 카포류 -> N년차가 와도 중고신입이랑 차이 X
- 면접
- 지원자는 넓은 범위 공부해서 가야되는 입장이고
- 면접관은 자신들이 고른 것들 깊게 준비해서 오니까 대체로 자주 털리게 되더라
_
- 리플렉션 DRAFT
- 오버라이딩-오버로딩
- 가상 메서드
- OOP
- 오버라이딩, 오버로딩
- 박싱/언박싱
- 힙/스택
- 값/참조
- type
- 제네릭
- GC
- 인터페이스
링크
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.