기본적인 개발직무에 대한 이해
01화: 저 채용 오퍼레이션만 할래요 / 신: 응 안돼 (단호)
기본적인 개발직무에 대한 이해
1. 서러운 당신들을 위한 서론
2. 게임회사 N사의 채용 포지션을 뜯어보자
1) 클라이언트 프로그래머와 서버 프로그래머?
2) 그외 프로그래머? (엔진, 그래픽스 등)
3. 01화 끝
1. 서러운 당신들을 위한 서론
채용 담당자로 첫 발걸음을 뗀 당신, 1~3년 후 매너리즘에 빠지게 된다. 나는 채용 오퍼레이터 일까..? 어엿한 채용 담당자 일까..?
면접 일정 조율은 자신 있는데, 다른건 뭘 할 수있지? 게임회사 포지션/직무에 대한 이해도가 있나?
'내가 채용담당자가 맞을까?'하는 혼란을 겪게 된다.
오퍼레이터와 같은 단순 반복 업무만 담당하는 경우 고여버리고 물경력이 되기 일수다. 직무에 대한 전문성에서도 멀어지며, 결국 받게 되는 칭호는
살아있는 구글 캘린더
그렇기 때문에 채용 오퍼레이터는 보통 비정규직 (계약직/일용직 등)으로 채용하는 경우가 많다.
2. 게임회사 N사의 채용 포지션을 뜯어보자
우리 모두 그렇게 되기 싫잖아요? 막무가내로 게임회사의 채용 공고를 뜯어보자. (허락 안받음)
게임회사 취업 준비 좀 해봤다 하는 사람들은 알만한 게임회사 채용 홈페이지의 인터페이스다.
그렇습니다. 바로 꿈과 희망의 N사 입니다...
보통 공고 제목은 (큰 회사나 게임프로젝트가 다수인 경우) "프로젝트 명 - 채용 포지션 명" 이렇게 작성되는 경우가 많은데...그건 그렇고
서버? 그래픽스? 클라이언트? 그렇지. 게임회사에서 많이 쓰는 단어 들이지. (단어의 존재를 안다는 사실에서 자신감을 얻음)
면접관1: 비전님. 근무했던 게임회사에서 주로 채용 했던 포지션과 개발언어, 환경 등 설명해주세요.
비전(본인): 예?
(안타깝게도 충격 실화 입니다.)
나는 정말 흘러가는 대로 회사를 다녔구나... 정말 "내가 아는게 생각보다 없구나."라는 걸 깨닫게 될 때가 많다.
1) 클라이언트 프로그래머와 서버 프로그래머?
당황하지 말자. 우리는 어엿한 채용 담당자이다.
게임회사라면 프로그래머 포지션을 자주 뽑는 "사실"정도는 알고 있을 것이다.
그 중에서도 주가 되는 포지션이 클라이언트와 서버 프로그래머이다.
엄밀히 말하면 의미의 범위가 다르지만, 보통 채용 공고 상
클라이언트 - 프론트엔드
서버 - 백엔드는 유사한 의미로 쓰인다고 보면 된다.
쉽게 말해 서버는
"다른 컴퓨터(클라이언트)나 장치에서 요청하는 데이터를 처리하고 제공하는 컴퓨터 또는 프로그램"이며, 서버 프로그래머는
"이런 서버를 설계/개발/운영하는 전문가"라고 이해하면 된다.
클라이언트는
"클라이언트는 사용자와 서버 사이에서 중간 역할을 하며, 서버에서 데이터를 받아와 화면에 보여주는 역할을 하는 프로그램(앱, PC게임 등)"이며,
클라이언트 프로그래머는
"사용자가 "클릭", "터치", "입력"하는 모든 것을 구현하는 역할"이라고 이해하면 된다.
** 보통 게임회사 채용 시장에서 클라이언트 보다 서버 프로그래머를 구하는게 훨~씬 어렵다.
그게 뭐냐고?
"레스토랑 셰프와 웨이터"정도로 설명한다면 이해하기 쉬울 수 있다.
(최근 흑백요리사에 영감을 받아서 써보았다.)
레스토랑 셰프(서버)는 웨이터(클라이언트)의 요청을 받아 요리를 내오고(게임에 로그인 하기) 냅킨을 가져다 주는 등(게임 데이터 불러오기) 웨이터(클라이언트)의 요청을 받아 수행한다.
레스토랑 셰프(서버)는 칼질(C++, C# 등)과 국 끓이기(멀티 스레드 프로그래밍에서 동기화 문제 해결 경험)에 능해야하며, 해장국집에서 일한 경력(MMORPG 서버 개발 경험)이 있으면 우대된다.
레스토랑 웨이터(클라이언트)는 서비스 정신(C++, C# 등)과 빠른 서빙 속도(언리얼 엔진 개발 능력)이 있으면 우대된다.
** 개발 언어와 개발 환경은 회사 마다 다르니, 틈틈이 현업 친한 분이나 사수한테 물어보도록 하자. 제발!
Q. 여기서 위 (안타까운 충격실화 중 하나인) 면접 질문에 대해 예를들어 어떤 방식으로 대답할 수 있을까? (서버 프로그래머 기준)
A. B회사에서의 a게임은 C#언어를 사용했고, Unity 엔진을 사용하여 개발했습니다. 클라우드 인프라는 AWS를 사용했으며, 데이터베이스 시스템은 MySQL을 사용했습니다..
2) 그외 프로그래머? (엔진, 그래픽스 등)
클라이언트와 서버 말고도 엔진 프로그래머, 그래픽스 프로그래머, 렌더링 프로그래머 등도 게임회사에서 채용 하고 있는데.. 이런 생소한 포지션을 발견하게 되면 이악물고 주변에 물어보며 공부하는 방법 밖에 없다.
엔진, 그래픽스, 렌더링 프로그래머는 게임 회사에서 보통 유사한 의미로 해석되며,
"게임의 그래픽을 프로그래밍하는 개발자"라고 이해하면 된다.
"시각적인 요소, 즉 캐릭터, 배경, 빛 그림자, 이펙트 등을 인게임에서 구현하고, 최적화 하는 일을 담당하는 개발자"이다.
3. 01화 끝
나름 긴글을 써봤다. 근데 무슨 내용인지 하나도 기억나지 않는다고?
그래도 읽으려고 노력은 했구나! (아닌가?)
클라이언트 - 프론트엔드 - 개발언어 C++, C# 등
서버 - 백엔드 - 개발언어 C++, C# 등
이 정도만 기억이 나도 수고한 셈 치자. 무차별적 정정/수정/가르침 댓글 모두 받습니다.
비전문가가 전문가 바짓가랑이 잡고 캐리하는 날까지!
우리 모두 최고의 채용 담당자가 되는 그날 까지!
끝.