"오픈소스를 안쓰는 IT기업은 없습니다. IT기반에서 무언가를 처리하려면 오픈소스를 써야 합니다. 엔씨소프트 핵심 시스템 중 하나인 빌링 시스템도 오픈소스가 없으면 돌아가지 않습니다."
성남시 판교에 있는 엔씨소프트(대표 김택진)는 글로벌 게임 개발사다. 1997년 설립됐다. 리니지를 시작으로 인터넷 기반 온라인 게임 대중화를 이끌었다. 2000년부터 해외 시장 개척에 나서 아시아, 북미, 유럽에 글로벌 네트워크를 확보했다.
대표 게임은 리니지(Lineage) 시리즈, 아이온(AION), 블레이드&소울(Blade & Soul), 길드워(Guild Wars) 시리즈 등이다. 세계에 약 4000명의 임직원이 근무하고 있다. 게임 관련해 세계 최고 개발 기술력과 서비스 역량을 보유하고 있는 엔씨소프트의 IT인프라 운영에는 오픈소스가 큰 역할을 하고 있다.
겨울 날씨가 완연한 지난 5일, 판교 엔씨소프트 사무실에서 이 회사의 인프라 및 플랫폼 담당자 4명을 만나 엔씨소프트와 관련한 오픈소스 이야기를 들었다. 엔씨소프트는 2015년 12월 설립된 '클라우드 네이티브 컴퓨팅 파운데이션(CNCF)'라는 오픈소스 관련 단체에 국내 기업 중 가장 먼저 가입, 주목을 받은 바 있다.
CNCF는 현재 가장 잘 나가는 오픈소스인 쿠버네티스를 비롯해 약 20여 오픈소스 프로젝트를 관리하고 있다. 이 곳에는 엔씨소프트와 삼성SDS 등 국내 기업을 포함해 세계적으로 440여 기업이 회원으로 활동하고 있다.
오픈소스를 주제로 한 이날 미팅에는 엔씨소프트 인프라를 담당하는 김정현 서비스인프라실장과 김용욱 서비스기반개발팀장, 한지호 CTO직속 TS팀장, 김원일 클라우드인프라팀장이 등 4명이 참석했다.
김정현 실장은 21년차 개발자로 엔씨에 온지 5년됐다. 엔씨의 클라우드 인프라를 새로 구축하고 운영하는 역할을 맡고 있다. 김용욱 팀장은 2002년부터 개발자로 일하고 있고, 2007년 엔씨에 입사했다. CTO 직속의 한지호 TS팀장은 13년간 인사업무를 한 인사업무 전문가로 3년전 기술부서 로 옮겨 새로운 커리어를 쌓고 있다. 현재는 컴플라이언스 등의 업무를 하고 있다. 2002년 리눅스 시스템엔지니어를 시작으로 개발 세계에 들어선 김원일 클라우드인프라팀장은 2004년에 엔씨에 입사, 2014년부터 엔씨의 프라이빗 클라우드 구축 및 운영 업무를 하고 있다.
4인은 하나같이 "개발자라면, IT분야에서 일하고 싶다면, 오픈소스를 모르고는 아무것도 할 수 없는 세상이 됐다"며 오픈소스의 중요성을 강조했다. 형식없이 자유롭게 이루어진 이날의 오픈소스 이야기를 이름에 관계없이 정리했다.
= 엔씨소프트의 오픈소스 사용 현황이 궁금하다
"우리가 엔씨의 모든 개발자를 대표하는 건 아니다. 오늘 나온 사람들은 게임 개발자들이 아니다. 게임을 실행하는 클라우드 등 인프라를 개발하고 구축 및 운영하는 사람들이다. 엔씨도 시스템 전반에 오픈소스를 많이 쓴다. 이젠 오픈소스를 모르면 아무것도 할 수 없는 세상이 됐다. 불과 10년전만해도 자바와 C만 배우면 이걸로 무얼 만들었고, 오픈소스는 가끔 쓸까 말까 했다. 특히 대기업은 오픈소스를 쓰면 안된다고 했다. 세상이 달라졌다. 지금은 오픈소스가 없으면 개발이 하나도 안되는 지경까지 왔다. 개발을 시작하고, 또 개발의 기본을 배우려면 오픈소스를 알아야 한다. 빨리 배울수록 좋다고 생각한다."
=엔씨소프트는 언제부터 오픈소스를 사용했나
"내가(김정현 실장) 엔씨에 입사한 게 2015년이다. 당시만해도 엔씨는 클라우드를 사용하지 않고 있었다. 대부분 물리 서버를 사다 직접 운영했다. 흔히 말하는 온프레미스 방식, 전통적 방식이다. 당시에 아마존(AWS) 클라우드가 점차 많이 사용될 때였고, 엔씨도 클라우드를 도입하고자 했다. 하지만 AWS 같은 클라우드는 비용이 비싸고 한번 도입하면 빠져 나오기 힘든 '락인'도 걱정됐다. 그래서 자체 클라우드를 구축하게 됐다. 그때 가장 좋은 오픈소스 기술이 오픈스택이였다. 몇 명이 모여 태스크포스(TF)를 구성해 2년 정도 테스트를 했고, 개발용 서버부터 오픈스택으로 구축한 자체 클라우드로 제공하기 시작했다. 지금은 외부에서 사용하는 웹이나 플랫폼 서비스도 자체 클라우드에 올려 서비스 한다. 자체 클라우드를 사용하는 비중이 계속 높아지고 있다. 서버 기준으로 전체 시스템중 30~40% 정도 된다."
=쿠버네티스는 언제부터 사용했나. CNCF에 국내 기업 중 처음으로 가입한 배경도 궁금하다
"오픈스택 이후 오픈소스계에 한번 더 큰 변화가 왔다. 그게 쿠버네티스다. 오픈스택은 물리 서버에서 가상 서버로 진화한 거다. 1차 진화다. 여기서 더 진화한게 쿠버네티스다. 가상 서버 위에 컨테이너라고 하는 더 가상화한, 더 클라우드스러운 기술이 생겼는데 바로 쿠버네티스 컨테이너 기술이다. 쿠버네티스는 원래 구글이 만들 기술인데 CNCF에 기부하면서 오픈소스 기술이 됐다. 쿠버네티스가 막 나왔을때, 구글 본사에서 우리를 찾아와 쿠버네티스를 소개했다. 그때 CNCF라는 단체가 만들어진다는 걸 알게됐고, 한국 기업 중 처음으로 가입했다. CNCF에 가입한 목적은 기술 교류 등을 위한 것이다."
=쿠버네티스는 오픈스택에만 올려야 하나
"그렇지는 않다. 쿠버네티스는 오픈스택에 올릴 수 있고, 물리 서버에도 올릴 수 있다. 하지만 오픈스택에 올리면 시스템을 더 유연히 쓸 수 있다. 쿠버네티스로 가면 서버라 하지 않는다. 컨테이너라고 한다. 서버 하나의 개념이 컨테이너다. 컨테이너는 일종의 가상화된 작은 서버다. 물리 서버에서 돌아가는 가상화한 소프트웨어 프로세스 같은 거다. 한 서버에 컨테이너 여러개가 돌아갈 수 있다. 엔씨소프트도 웹서비스와 공통 플랫폼에 있는 기능을 컨테이너 방식으로 개발, 컨테이너로 실행할 수 있게 배포했는데 당시 주인공이 김정현 실장과 김용욱 팀장 등이다."
=쿠버네티스의 위력이랄까, 사용 효과를 말해준다면
"쿠버네티스를 도입하기 전에는 웹 서비스 하나에만 서버를 100대 가까이 사용했다. 아이온, 리니지, 리니지2등 게임별 웹 서버가 수십대씩 됐다. 서버가 많다보니 디버깅 로그를 확인 하는 것에도 어려움이 많았다. 쿠버네티스를 도입하면서 서버 수도 훨씬 줄어들다. 뿐만 아니라 개발과 운영 방식에서도 큰 변화가 일어났다. 지금은 쿠버네티스에 올라가야만 웹서비스를 개발할 수 있을 정도다. 현재 엔씨의 웹서비스 대부분은 쿠버네티스 환경에 맞춰져 있다."
=오픈소스를 사용하는 엔씨소프트의 시스템을 구체적으로 말해준다면
"인증시스템, 빌링 시스템 등이다. 이외에도 많은 시스템에 오픈소스를 사용한다. 제일 중요한 빌링 시스템도 오픈소스가 없으면 돌아가지 않는다."
=엔씨소프트가 개발해 공개한 오픈소스는 얼마나 되나
"우리가 공개한 프로젝트는 총 11개다. '언리얼닷js(Unreal.js)'가 대표적이다. 2016년에 별 2534개로 언리얼 데브 그랜트를 수상했다. '프로모션임팩트(promotionImpact)'도 있다. 타겟 지표(일 매출, DAU 등)에 대한 프로모션 효과를 측정 및 비교하기 위한 패키지다.시계열 데이터 분석 및 이상 탐지를 위한 라이브러리인 '타임슈페린(timesuperin)'도 있다."
=엔씨소프트의 클라우드 현황은
"우리 회사의 프라이빗 클라우드는 잘 알려져 있지 않은데, 오픈스택이라는 오픈소스 기술을 이용해 외부 업체의 도움을 받지 않고, 순수하게 오픈소스 그대로를 받아 직접 테스트한 후 사용하고 있다. 배포도 '엔서블' 같은 오픈소스 솔루션으로 한다. 스토리지도 오픈소스인 셉(Ceph)을 주로 사용한다. 하이퍼바이저도 KVM 리눅스 커널 버추얼 머신을 사용, 대부분의 워크로드를 수용하고 있다. 거의 대부분이 오픈소스를 사용하고 있다고 보면 된다. 모니터링도 오픈소스 도움을 받고 있다. 많은 서비스가 쿠버네티스에 올라가 있지만 플랫폼 서비스들은 아직 C나 C**로 만들어진 서비스들이 많이 있다. 이런 것들은 마이크로서비브아키텍처(MSA) 형태로 분산돼 있어 각 MSA마다 요청들을 추적해야 하는 시스템이 필요한데, 이런 것들도 오픈소스로 해결했다."
=쿠버네티스를 관리하는 CNCF에서는 어떤 활동을 하고 있나
"매년 회비로 3만5천 달러 정도를 낸다. 구글과 기술 협업을 하면서 알게돼 가입했다. CNCF가 수백개의 오픈소스를 관리하는데 이 중 핵심은 쿠버네티스다. 오픈스택 다음으로 갈 기술이 쿠버네티스라고 판단해 CNCF에 가입했다. CNCF에 가입한 국내 기업을 위한 CNCF코리아가 설립, 활동하고 있다. 올해 처음으로 한국에서 쿠버네티스 서밋도 열린다. CNCF가 쿠버네티스 기술을 가르쳐주지는 않는다. 일종의 동기 부여다. 정보를 얻고 기술 교류도 하고. CNCF에 가입해 활동하는 것도 일종의 기여라고 생각한다."
=오픈스택과 쿠버네티스를 잇는 차세대 오픈소스 기술은 무엇으로 보나
"여러 기술이 있지만 우리는 내년에 서버리스를 본격적으로 하려고 한다. 서버리스는 서버가 없는게 아니다. 개발자나 운영자들이 서버를 몰라도, 전혀 신경쓰지 않아도 된다는 의미다. 서버 몇대를 띄워야 한다, 이런거 전혀 신경 안쓰고 운영해도 되는 게 서버리스 개념이다. 개발이나 운영 환경의 또 다른 큰 개념이다. 개발자는 일을 처리하는 로직, 비니지스 로직에 대한 코드만 구현하면 된다. 자동으로 서버, CPU, 메모리가 줄었다 늘었다 한다. 개발자는 서버가 몇대가 있는 지 몰라도 된다. 개발에만 집중할 수 있다. 오픈스택이나 쿠버네티스에는 서버리스 개념이 없다. 서버리스 개념의 오픈소스 기술로는 K네이티브(Knative), 오픈휘스크(OpenWhisk) 등이 있다. 현재 많은 개발자들이 서버리스에 관심을 갖고 있다."
=쿠버네티스는 언제까지 핫할까
"쿠버네티스가 지금은 많이 안정화돼 있다. 바꿔말하면, 쿠버네티스 관심이 정점을 지났다는 뜻일 수도 있다. 쿠버네티스 다음은 서버리스 등인데, 서버리스 기술은 특정한 분야에서만 유용할 수도 있다. 또 쿠버네티스 자체도 아직은 보완할 부분이 있다, 예를 들면 저장 데이터가 있는 스토리지를 붙여야 하는 경우에는 아직 어려움이 있다. 또 레이턴시에 굉장히 민감한 서비스 경우에 쿠버네티스는 가상화가 많이 되어 있다 보니 네트워크 트래픽이 여러 단계를 거쳐야하므로 아무래도 느려진다."
=엔씨소프트의 오픈소스 문화는 어떤가
"오픈소스 사용을 장려하는 쪽으로 가고 있다. 한가지 사례가 깃헙 엔터프라이즈를 도입한 것이다. 오픈소스를 내부에서 공유하려면 먼저 소스코드를 공유해야 한다. 기존에는 각 개발팀이 자기 소스코드를 따로 관리했다. 이를 바꿨다. 작년에 깃헙 엔터프라이즈를 도입해 소스코드를 잘 공유할 수 있게 기반을 갖췄다. 오픈소스 문화도 많이 고민하고 있다. 최근에 이와 관련한 설문조사도 했다. 개발자들 니즈가 컸다. 오픈소스를 쓰고 있는데, 기여하고 싶은데, 해도 되냐는 질문이 많았다. 그래서 내부적으로 정책을 만들고 있다. 내년까지는 명문화한 가이드라인을 선보일 예정이다."
=엔씨와 카카오 등이 참석하는 인프라 담당자들 모임도 있다던데
"우리를 포함해 판교 인근의 5~6개 정도 기업 인프라 담당자들이 모이는 모임이 있다. 카카오와 네이버(NBP), NHN엔터, 엔씨소프트 관계자들이 참여한다. 온라인으로 연락을 하고, 오프라인으로는 일년에 두세번 정도 만난다. 모인 지 3년 정도 됐다. 정식으로 이름이 있는 건 아니다. 자연스럽게 만나 최근의 기술 동향이나 운영 경험을 나눈다. 현재 오픈소스를 안쓰는 IT기업은 거의 없다. IT기반에서 무언가를 처리하려면, 오픈소스를 안 쓸 수 없다. 주변을 보면, 오픈소스를 사용하는 사람들 모임이 예전보다 많아 진 것 같다. 셉(Ceph) 모임도 있다. 이런 면에서 판교에는 IT회사들이 몰려있으니 더 유리한 것 같다. 그래도 미국과 비교하면 미미한 수준이다. 정보 공유 양도 적고. 아무래도 미국과 비교하면 상호간 시너지가 느린 것 같다. 최신 기술을 미국만큼 빨리 따라가는게 힘든게 사실이다. 그나마 판교는 상황이 좋은 편이다."
=오픈소스 확산을 위한 제언이나 후배 개발자들에게 조언을 한다면
관련기사
"개발자라면, 오픈소스를 모르고는 아무것도 할 수 없는 세상이 됐다. 예전에는 자바나 C를 배우면 이걸로 뭘 만들었다. 오스는 가끔 쓸까 말까했다. 대기업은 오픈소스 쓰면 안됐다. 불과 10년전만 해도 그랬다. 지금은 아니다. 오픈소스가 없으면 개발이 하나도 안되는 수준이다. 개발을 하고 싶다면 오픈소스를 빨리 할 수록 좋다고 본다. 개발을 시작하거나, 개발 기본을 배우고 실질적으로 쓸 수 있는 프로그램을 만들려면 오픈소스를 알아야 한다. 어릴때 부터 공유하는 정신과 마음을 배웠으면 한다. 오픈소스 원저작자에 감사하는 소양도 필요하다. 또 개발하다 보면 이건 내꺼야, 이건 내가 이룩한 정말 큰 성과야, 이런데 빠질 수 있는데, 이런걸 버리고 나눌 수 있어야 한다. 오픈소스이지만 지식재산 등 컴플라이언스도 잘 준수해야 한다. 중요한게 하나 더 있다. 개발 시작부터 오픈소스로 해야 한다는 점이다. 일단 개발을 하고 나중에 오픈소스로 공개하면 잘 안된다. 오픈소스로 먼저 시작을 해야 한다. 예전엔 이게 안됐고, 우리나라에서 오픈소스가 활성화 안된 이유 중 하나다. 개발을 시작할때부터 오픈소스로 하는 문화가 생긴다면 한국에서도 더 많은 컨트리뷰선(기여)이 나오고, 한국에서 만든 유명한 오픈소스가 더 많이 나올 것이라고 생각한다."
*이 기사는 지디넷코리아와 정보통신산업진흥원(NIPA) 공개SW역량프라자가 공동으로 기획한 기사입니다.