교수님 및 선배님들의 조언 정리!
최근에 교수님 몇분과 상담을 해보았고, 교수님의 소개로 배틀그라운드를 개발한
무려 PUBG ! 에서 근무하시는 선배님의 연락처를 받았다.
관련해서 일개 학부생인 나보다 훨씬 전문가 분들의 게임 분야에 관련된 의견과 조언을 정리해보았다.
Q. 티스토리 작성이 포트폴리오에 도움이 되나 ?
교수님 :그냥 자기 개발용이라고 생각하고 개인 깃 페이지를 꾸미는 것이 더욱 도움된다고 생각한다.
Q. 이론/실무 시간 투자비율
교수님 :학기중에는 실무의 비율은 높아야 3~4까지 하고 수업에 7 이상 투자할 것을 권한다.
기본이 바탕이 되는 것이 실무에는 훨씬 도움이 된다. 단 방학에는 실무같은데 투자하는 것이 좋다고 생각한다.
->맞는 말씀. 프로그래밍을 배우면 배울수록 근본적인 개념의 깊이가 중요하다는 것을 너무나도 느낀다. 어느 정도 개발능력이 된다는 가정하에는 더더욱 이론을 공부하는 것이 도움이 되는 것 같다.
Q. 최근 제일 핫한 프로그래밍 이슈는 ?
교수님 :프롬프트 프로그래밍 관련이라고 생각한다. 또한 프로그램 관련 이슈 들은 GeekNews에서 보는 것을 추천한다.
-> 역시 교수님이다. 돈을 주는 것이 아닌 돈을 버는 방법을 알려주신다.
아래부터는 PUBG에서 근무하시는 분의 답변이다.(추가적인 질문시 추가 작성)
Q. ... 내가 작성한 커리큘럼을 보여드리고 평가를 부탁드렸다(티스토리 카테고리랑 동일하다)
PUBG 개발자님 :
지금 들으시는 과목을 보면 굉장히 다양하게 듣는데 이는 매우 좋은 것 같습니다.
아직 구체적으로 어떤 직무를 할지 모르는 상황에서 다양한 방면으로 배워놓아야 선택지가 많아
집니다.
커리큘럼별 필수 직무를 연관지어보면 DB(서버), 보안(보안), 네트워크(데브옵스), 알고리즘(필 수), 그래픽스(클라이언트) 느낌으로 필수 과목입니다.
DB관련해서 공부해보실 땐 sql, nosql둘다 공부하시는걸 추천드립니다.
네트워크 공부를 하실 땐 TCP 소켓 프로그래밍은 간단한 핸드쉐이크 하는 수준까지만 아셔도 될 것 같고, UDP 통신 등도 해보시면 좋습니다. 이외에 gRPC 등을 공부해서 각 특성을 이해하 는게 중요합니다.
알고리즘은 정말 중요합니다. 가장 시간을 많이 투자하면 좋을 것 같습니다.
이외에도 방학 때 기회 되시면 aws를 통한 배포 교육, 배우시려는 선대를 활용한 ML과 기본적 인 모델 등을 공부해보면 게임 개발자로서 대부분의 진로를 맛볼 수 있을 것 같습니다.
인공지능 외에 머신러닝 과목이나 또는 활용 과목이 있으면 들어보면 정말 좋습니다.
Q. 게임 분야에 대한 생각과 게임을 포기했을 때 대체할 수 있을만한 분야
PUBG 개발자님 :
게임 분야 자체는 삶의 질이 높아질수록, 사람들이 여유가 많아질수록, 점점 발전할 분야입니다.
저는 서버 개발자이기에 제 입장에서 설명드리면 게임 분야는 정말 넓고 다양합니다.
게임 회사 특성에 따라 옛날 기술에 익숙해야 하는 경우도 있으며 반대로 최신 기술 동향에 빠삭 해야 하는 경우도 있습니다.
그러나 기본적으로는 게임이라는 특성 자체가 일반적인 서비스들보다 훨씬 많은 트래픽을 감당 하여야 하며 이와 관련된 경험을 많이 하실 수 있습니다.
일반적으로 게임 서버 개발자는 한 게임의 코어 개발을 담당한 후 게임이 안정적인 라이브 궤도 에 오르면 다른 게임을 개발하는 식으로 순회를 하며 풀이 매우 좁습니다.
수요는 많은데 공급이 적은 특성상 게임 서버 개발자는 다른 업계로 잘 안가기는 합니다.
다만 게임 업계를 떠난다고 해서 문제가 없는게 게임 업계에서 하는 경험과 기술 스택을 요구하는 회사가 굉장히 많습니다.
서비스를 개발하고 배포하며 관리하는 단계를 다 동일하게 겪으며 특히 대용량의 인원을 접해볼 수 있는 쉬운 방법이 게임이기에 게임 업계에 있던 경험을 모두 활용할 수 있으며 따라서 다른 회사로 이직에 전혀 문제가 없습니다.
Q. 요즘 기업이 추구하는 인재상 관련 질문 ?
PUBG 개발자님 :
게임업계의 기업이 추구하는 인재상은 기업마다 소개가 매우 잘되어 있습니다. 이에 맞게 자기 소개를 준비해가면 좋습니다.
일반적으로 말씀드리면
1. 사고의 유연성, 2. 게임을 좋아하는가, 3. 소통능력 정도입니다.
창의적이거나 게이머의 입장에서 사고할 수 있는 사람이 좋은 게임을 만들어가며, 게임을 하지 는 않더라도 게임을 좋아하는 사람이 더 좋은 인상을 남깁니다.
그리고 가장 중요한건 소통 능력이라 생각됩니다. 게임업계뿐만 아니라 다른 회사에서도 점점 더 큰 회사로 가실수록 분업이 기본으로 잡혀있고 따라서 업무 프로세스 내의 소통이 원활해야 효율이 올라갑니다.
대화를 잘하는 것이 중요하며 기본적인 발성, 표정, 목소리 등을 갖추셔야 면접 부터 좋은 인상을 남기실 수 있습니다.
Q. 앞으로 많이 사용할 것 같은 언어 성능위주 cpp, 생산성 위주 c#, python? 일지
PUBG 개발자님 :
위에서도 설명드렸지만, 직무에 따라 굉장히 다릅니다.
해당 언어에 익숙해지기보다 각 언어별 특성을 이해하고 어떤 목적의 개발을 할 때 어떤 언어가 알맞을지를 아는게 중요합니다.
현업에서 새로운 언어를 써도 대부분 한달 내에 익숙해지기에 어떤 언어를 잘하는지는 덜 중요합니다.
기본적인것만 할 수 있으면 되기에 cpp/c/python/java등을 기본만 다룰 수 있으면 됩니다.
원하시는 직무에 따라 좀 더 익숙해져야 하는 언어를 중점적으로 익혀보시면 됩니다
언어 뿐만 아니라 데이터 타입과 관련 문법에도 익숙해지면 좋습니다. Json, yaml, protobuf ... 등
A. 추가답변 :일반적인 개발자가 가는 게임 업계 직무
<일반적인 개발자가 가는 게임 업계 직무>
가장 중요한건 게임회사에서 어떤 업무를 하고 싶은지입니다. 생각보다 세분화가 되어있고 큰 회사일수록 분업이 잘되어있어 직무별로 하는 업무가 완전히 별개입니다 각 직무별 요하는 기술 스택도 다 달라서 원하는 직무에 맞는 공부에 시간을 더 투자하면 좋을 것 같습니다.
1. 백엔드 - 서비스 개발
서버에서 지원하는 각 서비스들(인벤토리, 친구, 파티, 클랜, 매칭 등)의 기본적인 서버 로직을 담 당합니다.
2. 백엔드 - 데브옵스
개발된 게임을 배포, 운영, 관리를 하고 이를 위한 툴 개발 등을 담당합니다.
3. 백엔드 - 플랫폼
개발하고 있는 사내 플랫폼 내지는 회사에서 제공하는 게임 플랫폼을 전체적으로 담당합니다.
4. 클라이언트
매우 큰 범주이며 회사따라 더 세부적으로 나뉩니다.
UI와 연동되어 클라이언트 프론트를 담당하거나 서버와 연동하여 클라이언트 백을 담당합니다.
지정 서버를 두는 경우(롤이나 배그처럼 특정인원들을 모아서 한 세션으로 보내고 그사람들만 관리하는 지정 서버가 있는 경우), 지정 서버를 직접 담당하기도 합니다.
5. R&D 센터
Al, ML 등의 사내 기술 강화를 담당합니다.
6. IT/Security
사내 보안 지원을 담당합니다.
추가적으로 해보고 싶은 질문
Q. 클라이언트 부분 프로그래머로 취직한 뒤 회사 시스템과 개발법 등을 배우고, 여유가 되면 회사에서 나와서 개인적으로 일을 하고 싶습니다. 인디게임 개발 분야에서 일을 하고, 차츰 팀을 키워나가고 싶습니다.
클라이언트 프로그래머의 주 업무가 시스템 구현이기 때문에 클라이언트 개발이 인디게임 개발에서 가장 가까운 업무 분야라고 생각합니다.
따라서 클라이언트 프로그래머 업무에 맞는 부분들을 집중적으로 공부하고, 부가적 요소로 전에 말씀해주신 부분들을 공부하는 것이 효율적이라고 생각하는데, 이에 관련해서 의견을 부탁드립니다.
Q. 게임 개발 분야가 자신의 능력과 업무량에 걸맞는 연봉이 주어지는 직군이라고 느끼셨는지 궁금합니다.
추가적으로 공부해보고 싶은 것 : 각 언어의 장단점 한번씩 정리해보기, gRPC,
'기타' 카테고리의 다른 글
[Visual Studio] 여러개의 프로그램 동시 실행 (0) | 2023.07.27 |
---|---|
PUBG 개발자님과 Q&A 2탄 (0) | 2023.05.19 |