소프트웨어 개발자가 점점 많아지고 있지만 이 중 서비스 뒷단을 담당하는 서버 개발자는 찾기 힘들다. 모바일이나 웹에 비해 눈앞에 바로 보이는 결과를 볼 수 없어 처음에 입문하기 힘들기 때문이다. 그러던 중 라인플러스에서 게임 서버를 만들고 있는 김정하 개발자를 만났다. 김정하 개발자가 들려주던 서버 개발 세계는 마냥 어려운 곳만은 아니었다. 매일 새로운 기술을 적용할 만큼 신기술이 쏟아지는 곳, 제품 성능과 속도에 변화를 주기 위해 아이디어를 치열하게 생각하는 곳이 서버 개발 분야였다. 김정하 개발 서버 개발 표현을 빌리면 이렇다.

“오리는 물 위에선 우아하게 떠다니지만 수면 아래에선 발을 무척 빠르게 움직이죠. 그 수면 아래의 역할을 서버 개발자들이 하고 있어요. 서비스 앞단 기능이 잘 보여지면서 앞으로 나갈 수 있게 도와주는 거죠. 보이지 않지만 서비스를 발전시키기 위해 부단히 노력하고 있죠.”

김정하 개발자는 현재 라인플러스 개발 2센터에서 서버 개발자로 일하고 있다. 2008년 NHN재팬에서 일하다 2013년 라인플러스 개발팀에 합류했다. 라인플러스는 '라인' 메신저 외에도 여러 사업을 하고 있는데, 그 중 게임 개발도 지원하고 있다. 김정하 개발자는 게임 서버만 집중적으로 맡고 있다. 라인은 올해 초 ‘라인 레인저스’라는 게임을 선보였는데, 어느 정도 성과를 내자 두 번째 자체 게임 ‘라인 스테이지’를 출시했다. 음악에 맞춰 버튼을 누르거나 모션을 움직이는 게임이다. 국내엔 아직 공식 출시하지 않았고 미국, 일본 등 해외에선 이미 서비스 중이다.

▲  라인 플러스가 내놓은 2번째 자체 게임 '라인스테이지' (출처:라인플러스)
▲ 라인 플러스가 내놓은 2번째 자체 게임 '라인스테이지' (출처:라인플러스)

서버 개발은 서비스를 안정적으로 운영되도록 돕는 작업이다. 예를 들어 게임을 하다가 갑자기 툭 꺼지지 않도록 만들고, 로딩 시간이 너무 오래 걸리게 해서도 안 된다. 처음 계획한 기능이 화면에 그대로 구현되고, 각 버튼이 제대로 작동하는 것도 이러한 안정성이 보장되는 덕분이다.

김정하 개발자는 이러한 안정성을 높이기 위해 주로 게임 로그인 처리, 라인 친구 목록 등 게임 진행 관련 데이터와 API를 개발한다. 라인 스테이지는 글로벌 서비스이기에 속도에도 신경써야 했다. 이 때문에 빠른 응답 처리를 위한 개발에 집중했고, 이를 위해 REDIS 캐시를 적극 활용했다.

라인 스테이지 게임은 라인 캐릭터를 이용한 게임이기에 많은 캐릭터가 지속적으로 업데이트된다. 또한 음악과 레벨이 계속 추가되므로 업데이트가 잦을 수밖에 없다. 보통 앱 업데이트는 앱스토어나 구글 플레이에 심사를 받는 과정을 거쳐야 한다. 곧바로 기능을 추가할 수 없는 구조다. 이 때문에 게임 업체는 점검시간을 따로 마련해 게임을 일시 중지시키고 기능을 업데이트한다.

라인 스테이지 서버팀은 기존 방식에서 벗어나, 사용자가 게임을 하던 중에 데이터를 불러와 업데이트할 수 있도록 만들었다. 이러면 캐릭터 하나 업데이트하려고 게임 전체를 일시 중단하는 상황을 피할 수 있다. SQLite 등을 활용해 사용자 스마트폰에 미리 필요한 데이터를 내려놓고, 이를 서버 쪽에서 활용하는 방식을 선택했다. 이를 통해 더 빨리 버그에 대한 지원을 받을 수 있고, 새로운 기능도 빨리 접할 수 있다.

게임 개발 지원 사업도 라인 메신저와 마찬가지로 해외 진출을 적극적으로 진행 중이다. 이미 태국, 대만, 일본 등에 직접 개발 인력을 보내 와이파이와 네트워크 상태를 직접 점검하면서 품질을 높이고 있다. 단순히 언어나 디자인만 현지화하는게 아니라 시스템과 인프라까지는 그 나라에 맞게 수정하고 구축한다. 김정하 개발자는 “해외에서 사용자 와이파이가 느려도 끝까지 필요한 파일과 데이터를 받을 수 있다”라며 “네트워크 속도가 느려도 최대한 게임을 이용할 수 있도록 지원하고 있다”라고 설명했다.

▲  SQLite 와 같은 모바일 DB를 활용해서 업데이트가 쉽고 빠르게 되도록 지원하고 있다.
▲ SQLite 와 같은 모바일 DB를 활용해서 업데이트가 쉽고 빠르게 되도록 지원하고 있다.

서버개발자는 게임 구축 직전 단계까지는 매우 바쁘다. 하지만 게임이 공식 출시된 후에는 좀 심심하지 않을까. 김정하 개발자는 “구축 이후 운영 및 유지보수을 할 때도 해결해야 할 문제들이 꽤 많다”라며 "여전히 바쁘다"라고 설명한다. 게임에 들어오는 사용자나 로그를 분석하기도 하고, 문제가 없는지 지속적으로 모니터링도 해야 한다. 불법적인 방법으로 아이템을 구매하거나 해킹을 하는 일이 없도록 기술적인 지원을 꾸준히 하고, 이벤트 진행시 추가적인 인프라 작업도 맡고 있다.

흔하지 않은 서버 개발자의 길. 김정하 개발자는 어떻게 입문하게 됐을까. 그녀는 "처음엔 자바나 솔라리스와 관련된 자격증 공부를 주로 했다"라며 "그 공부 중 재미있는 것을 찾다가 개발을 접하고 흥미를 가지게 됐다"라고 설명한다.

“어렸을 때부터 과학이나 수학을 좋아했어요. 답이 있는 게 좋았거든요. 제가 원하는대로 개발하면 원하는 결과가 곧바로 나오는 게 좋았어요. 저는 서버 개발이 지겹다고 생각한 적 없어요. 거기다 제 시절엔 모바일 같은 건 없었거든요. 시간이 지나면서 모바일 환경도 나오고 서버랑 클라이언트 분야도 다양해지고, 새로운 환경, 새로운 기술이 계속 나오고 있어요. 정체될 틈이 없이 공부하고 있어요”

서버 개발 일이 너무 즐겁다는 김정하 개발자. 이러한 결과엔 그녀의 성격도 한몫했다. 그녀는 “스스로가 좀 꼼꼼한 편”이라며 “사소한 것을 챙기는 게 전혀 피곤하지 않고 좋다”라고 설명했다. 김정하 개발자는 소스코드에 조금이라도 문제가 있는 경우 꼼꼼히 살펴본다고 한다. 이러한 점은 그녀의 의사소통에도 영향을 줬다. 개발자끼리 혹은 개발자와 기획자는 같은 프로젝트를 진행하다 보면 의견이 종종 부딪힌다. 이럴 때 그녀의 성격은 문제 해결에 큰 도움이 된다.

“서로 의견 충돌이 생길 때, 처음부터 끝까지 꼼꼼하게 제 생각을 얘기해요. 상대방이 이해 못 하는 부분이 있다면 다시 그 사람이 이해할 수 있도록 차근차근 설명하고요. 반대로 상대방이 제 의견에 반대하는 이유를 잘 설명해준다면, 합리적이라고 판단되면 그 의견을 따릅니다. 가끔씩 동료가 제가 너무 같은 말을 반복한다고 농담을 하곤 해요. 개발 단계든 아이디어 단계든 제 의견을 다른 사람에게 충분히 설명하려 노력합니다.”

▲  김정하 라인플러스 게임 서버 개발자
▲ 김정하 라인플러스 게임 서버 개발자

이제 막 개발을 배우는 친구들에게 서버 개발은 좀 어렵게 느껴지기도 한다. 김정하 개발자는 “클라이언트 분야도 재미있지만, 서버 개발도 정말 재밌는 게 많다”라며 “개발 공부하는 분이 있다면 너무 어렵게 생각 안 해도 된다”라고 조언했다. 김정하 개발자도 대학 시절부터 서버 개발을 공부한 건 아니었다. 정보통신공학을 전공한 그녀는 학부시절에 대부분 C언어를 활용한 펌웨어 기술을 주로 다뤘다. 회사에 입사한 이후로 서버 분야에 관심을 가지기 시작했다.

“입사했을 때는 서버 기술에 대해 정말 아무것도 몰랐어요. 그나마 제가 내세울 수 있는 게 부지런함이거든요. 회사에 일찍 와서 그날 업무에 대해 미리 파악했어요. 그러다가 모르는 부분이 생기잖아요? 그러면 가지고 있는 자료를 활용해 미리 공부를 했어요. 퇴근길에는 오늘 하루 회의에서 나왔던 말을 곱씹어봐요. 그러다 보면 이해가 안 됐던 게 해결되기도 하더라고요. 그래도 신기술처럼 모르는 기술이 나오면, 회사 동료들과 소규모로 모여 공부를 많이 했어요. 직접 서비스에 해당 기술을 적용해보기도 하고요.”

김정하 개발자가 서버 개발에 집중할 수 있었던 데는 업무환경도 영향을 줬다. 라인은 소프트웨어 기업으로, 개발자 성향이나 업무 환경에 대한 이해도가 높은 기업이다. 직원을 위해 연봉이나 복지제도를 높이는 것 못지 않게 개발자가 아이디어를 실현할 수 있는 환경을 갖추도록 지원하는 편이다.

“여기서 일하면서 동료들의 피드백을 받으면서 성장했어요. 개발하다보면 만들고 싶은 기능이 있거든요. 그런 게 생기면 일단 다들 만들어보라고 권유하세요. 혼자 개발하면 아무래도 놓치는 게 생기기 마련이거든요. 제 동료들은 서로 개발에 대한 관심이 많으니, 이들이 제 부족한 부분과 아이디어를 채워줘요. 자유롭게 일할 수 있는 문화도 있고요. 보고도 문서가 아닌 라인으로 간편하게 하고, 시간도 자율적으로 활용할 수 있어요. 직원들이 소소한 질문을 하거나 도움을 요청하면 도와주는 ‘라인케어’란 제도도 있어요. 개발자가 마음 놓고 개발에만 집중할 수 있게 환경을 마련해주는 셈이죠.”

▲  라인플러스에 있는 복지제도 '라인케어'. 휴가, 출장 등에 궁금한 점이나 지원이 필요할 때 라인케어 지원팀에 문의를 하면 된다.
▲ 라인플러스에 있는 복지제도 '라인케어'. 휴가, 출장 등에 궁금한 점이나 지원이 필요할 때 라인케어 지원팀에 문의를 하면 된다.

저작권자 © 블로터 무단전재 및 재배포 금지