본문 바로가기

일과 사람들/직무인터뷰

Game Sever Programming | 리니지2 Seed 이다혜

 

안녕하세요, 리니지2의 서버 프로그래밍을 담당하고 있는 이다혜입니다.


Q1. 게임 서버프로그래머의 업무 전반과 본인의 업무에 대해 소개해주세요

 

서버팀의 주요 업무는 온라인 게임의 기반 시스템을 만드는 것입니다.
쉽게 말해 서로 다른 유저들이 만날 수 있는 공간을 구축해 그 위에 다양한 콘텐츠를 얹어 제공하는 것입니다.

주로 눈에 보이지 않는 부분들을 처리하는데요, 네트워크 처리나 인증 같은 기본 작업부터 아이템, 거래소, 인던, 전투 등의 핵심 로직이 되는 콘텐츠 작업까지 도맡고 있습니다. 이렇게 처리된 데이터들이 클라이언트에 전달되면 그래픽으로 시각화 되어 우리가 아는 게임 화면으로 보이는 거죠!

업무는 크게 1) 신규 기능 개발과 2) 프로그램 기능 유지보수 두 가지로 나뉩니다.

먼저 신규 기능 개발은 기획이나 사업, 서비스 같은 다른 팀에서부터 필요한 요구 사항을 받는 걸로 업무가 시작돼요. 

전달받은 요구 사항을 분석한 후, 기존 시스템을 검토해 추가할 기능들을 기술적으로 설계합니다. 

이때 기술적으로 불가능하거나 더 나은 방법이 있다면 협의해서 요구 사항을 수정하기도 합니다.

유지 보수는 주로 문제의 원인을 찾는 작업들로 이뤄지는데요. 

라이브 서버에서 발생한 장애에 대응하거나 버그를 수정하고 코드를 개선하는 작업을 하고 있습니다. 

서버 가동 불가 같은 높은 등급의 장애가 발생할 때를 대비해 신속하게 대응하는 요령도 필요합니다. 

저는 전투 파트를 담당하고 있어 새로운 스킬을 추가하거나 전투 시스템을 개선하는 일도 하고 있습니다.

 


Q2. 게임 서버프로그래머에게 꼭 필요한 역량 세 가지는 무엇일까요?


# 프로그래밍 언어 이해와 알고리즘 분석 능력


팀마다 필요한 언어는 다르겠지만, 공통적으로 프로그래밍 언어에 대한 이해는 기본이에요.

여기에 직접 알고리즘을 분석하거나 구현할 수 있는 능력이 있다면 더욱 좋습니다.

서버 프로그래밍에 관심이 있다면 네트워크프로그래밍과 DB에 대한 이해를 갖추는 것도 더욱 도움이 될 것입니다.


# 기술적인 설계 능력

다른 팀에서 전달받는 요청 사항들은 추상적인 경우가 많습니다. 모호한 표현들을 기술적으로 구체화하고 설계하는 과정은 필수예요. 실제 필요로 하는 핵심 기능을 판단하고, 기존 시스템에 영향을 줄 수 있는 부분을 잘 이해할 수 있다면 업무를 더 원활하게 수행할 수 있을 것입니다.

# 커뮤니케이션


생각한대로 모든 것을 구현할 수 있다면 좋겠지만 도저히 어려운 경우도 종종 있습니다. 이때 프로그래머는 모호한 부분을 협업부서 담당자에게 잘 설명할 수 있어야 해요. 단순히 'Yes or No'로 소통하는 것이 아니라 가능한 것과 불가능한 것, 실제로 구현될 때 발생할 수 있는 것들을 구체적으로 잘 설명하고 타협점을 찾는 것이 중요합니다.


Q3. 게임 서버프로그래밍 직무를 준비하기 위한 코딩테스트/ 포트폴리오 작성 꿀팁이 있다면 공유해주세요!


신입 지원자라면 코딩테스트 준비를 위해서 알고리즘 문제를 많이 풀어보는 것이 좋습니다.
코딩 테스트는 기본적인 프로그래밍과 알고리즘에 대한 이해를 판단하는 과정이에요.
왜 그런 로직을 선택했는지, 기대 결과가 무엇이었는지 생각해보는 과정들을 연습해보면 도움이 됩니다.
특히 서버에 관심이 있다면 네트워크 프로그래밍과 멀티스레드 프로그래밍에 대해서도 공부를 미리 해 두면 좋습니다.

포트폴리오를 준비할 때에는 프로젝트나 결과물을 잘 정리하여 나열하는 것도 중요하지만,

더욱 중요한 것은 프로젝트를 진행하면서 느낀 것들입니다. 본인이 가장 중요하게 생각한 것은 무엇인지, 

진행하면서 생각한 대로 된 것과 그렇지 않은 것, 그때 했던 판단과 그 이유를 잘 설명할 수 있다면 훌륭한 포트폴리오를 완성할 수 있을 것이라 생각합니다.


Q4. 게임 서버프로그래머로서 함께 일 하고 싶은 동료는 어떤 사람인가요?


자신의 전문분야에 대해 자부심을 갖고 늘 더 나은 방법을 고민하는 사람이 가장 먼저 떠오릅니다.
전문성과 열정을 가지고, 맡은 일에 최선을 다하면서 지속적으로 발전하려는 태도를 가지고 있는 사람이라면 

어떤 일을 하더라도 효율적이고 품질 높은 결과물을 이끌어낼 수 있기 때문이에요.

자신의 업무에 대해 책임감을 가지고 성실히 처리하는 사람도 같이 일하고 싶은 동료입니다.
동료들은 물론 팀 전체의 신뢰도를 높여주고, 원활한 협업을 이끄는 데에도 책임감은 꼭 필요합니다.

마지막으로 다른 사람의 분야에도 관심과 이해를 보여주는 사람이 좋습니다.
팀원들의 일에 관심을 가지고 존중하는 사람은 협력과 이해로 서로를 지원해줄 수도 있죠. 

이런 동료와 함께하면 팀의 강점을 더욱 잘 살릴 수 있어요.


Q5. 게임 서버프로그래밍 직무를 준비하는 지원자 분들께 한 마디 부탁드립니다!


프로그래밍은 생각을 직접 구현해 표현한다는 점에서 참 멋진 분야라고 생각합니다. 

직접 해보고 싶었던 것과 잘할 수 있는 분야에 대해 충분히 고민해보고, 그것을 펼칠 수 있는 곳을 찾아가길 바랍니다. 

최선을 다한다면 분명 좋은 결과가 있을 거예요. 미래의 게임서버 프로그래머 여러분을 응원합니다!