소프트웨어

[데뷰2017] 네이버는 왜 오픈소스 활동을 장려할까

백지영

[디지털데일리 백지영기자] 네이버는 한국에서 가장 많은 개발자를 보유한 회사 중 하나다. 개발자들이 제품이나 서비스를 개발할 때 소스코드가 공개된 오픈소스 소프트웨어(SW)를 활용하는 것은 일상적인 일이다. 네이버도 다양한 오픈소스 SW를 사용·수정하고 컨트리뷰션(기여)하는 회사다.

지난해 공개한 네이버의 웹브라우저 ‘웨일’도 크로미움 오픈소스 프로젝트를 기반으로 만들어졌다.자체 개발한 SW를 오픈소스로 공개한 사례도 많다.

대표적으로 2014년 처음 공개한 오픈소스 애플리케이션성능관리(APM) 도구인 ‘핀포인트’의 경우, 현재 화웨이와 바이두, 월마트 등에서 사용하는 글로벌 오픈소스 프로젝트로 발전하고 있다. 핀포인트는 깃허브에서 프로젝트 인기 척도를 가늠하는 스타 개수만 3000개 넘게 받았다.

이와 관련, 박은정 네이버 오픈소스 매니저<사진>는 16일 서울 코엑스에서 열린 네이버의 연례 기술 컨퍼런스 ‘데뷰 2017’에서 자사의 오픈소스 공개 및 운영 경험을 공유해 참석자들의 많은 관심을 받았다.

그에 따르면, 네이버는 ‘개방, 공유, 기쁨’이라는 세가지 원칙을 기반으로 개발자들의 오픈소스 활동을 장려하고 있다. 당초 네이버 개발자센터 통해 오픈소스를 공개하다가 깃허브로 코드저장소(레파지토리)를 옮겼다. 물론 깃허브 코드저장소에 있는 소스코드가 전부는 아니다.

2017년 10월 기준 네이버는 깃허브에 104개의 코드 저장소를 공개하고 있으며, 프로젝트 인기도 측정하는 스타는 모두 합쳐서 1만218개다. 이중 5000개 이상이 지난 1년 간 새롭게 얻은 것이다. 1176명의 컨트리뷰터와 4만6376개가 넘는 커밋이 발생했다.

또. 올해 아차피 얀, 오픈위스크 등 21개 오픈소스 프로젝트에 컨트리뷰션을 진행했고, 8개의 사내 프로젝트(레파지토리는 19개)를 오픈소스로 공개했다. 모두 네이버 검색 서비스나 클로바 엔진 등 실제 업무에 적용한 기술이다. 올해 오픈소스로 공개한 프로젝트로는 차트 라이브러리인 빌보드제이에스(billboard.js)와 샤딩 기능을 지원하는 관계형데이터베이스(RDBMS) 라이(RYE) 등이 있다.

그렇다면 네이버는 왜 이같은 오픈소스 활동을 장려하는 것일까. 또 왜 자체 개발한 SW를 오픈소스로 공개하는 것일까.

박 매니저는 “은혜를 갚기 위해서”라고 말했다. 그동안 오픈소스를 많이 써서 도움을 받았으니, 다시 코드가 좋은 SW를 공개해 선순환 구조를 제공하기 위함이라는 설명이다.

그는 “네이버가 잘 사용하고 있고, 외부 개발자들에게 필요하며, 공개하면 더욱 발전할 수 있는 그런 SW를 공개하고 있다”며 “네이버 입장에서도 네이버를 벗어난 다양한 환경과 요구사항에 대응하면서 오픈소스로 공개하기 전보다 더 견교한 SW로 발전시킬 수 있다”고 말했다.

앞서 언급한 핀포인트라는 APM의 경우, 오픈소스로 공개한 이후 많은 해외 사용자들이 활용하고 있다. 더 나아가 이들은 핀포인트를 개선하고 품질을 높이는데 도움을 주고 있어, 궁극적으로 네이버 서비스의 품질 향상에 기여하고 있다는 설명이다.

2017년 10월 기준 네이버는 깃허브에 104개의 코드 저장소를 공개하고 있다. 프로젝트 인기도 측정하는 스타는 모두 합쳐서 1만218개에 달한다.
2017년 10월 기준 네이버는 깃허브에 104개의 코드 저장소를 공개하고 있다. 프로젝트 인기도 측정하는 스타는 모두 합쳐서 1만218개에 달한다.

하지만 오픈소스로 공개한다고 모든 일이 끝난게 아니다. 오픈소스로 공개한 SW를 잘 발전시키기 위해선 지속적인 노력이 필요하다. 박 매니저는 “코드만 공개하면 끝인줄 알았는데, 사실 이것이 시작이었다”며 “오픈소스로 공개하기 전에 준비해야 할 것이 있다”고 조언했다.

그에 따르면, 오픈소스로 공개하기 전에 프로젝트의 목표를 정하는 것이 중요하다. 오픈소스로 공개한다는 것은 궁극적으로 회사 업무와 오픈소스 활동을 병행해야 하는 것을 뜻한다. 누가 운영할지에 대한 역할 정의도 중요하다. 그렇지 않으면 버전 릴리즈가 무기한 늦춰져 프로젝트가 금방 사용자들의 관심에서 멀어지게 된다. 때문에 프로젝트 운영에 대한 최종결정권자를 정하는 것이 필요하다.

이밖에도 내부 사용 버전과 외부 공개 버전의 동시 운영을 준비해야 한다. 최대한 두 버전을 동일하게 운영하는 것이 편리하다. 공통적으로 모두 사용하게 되는 코어를 공개 버전으로 관리하고, 내부 사용을 위한 기능을 플러그인으로 운영할 것을 권장했다.

뛰어난 품질의 코드를 개발하더라도 처음 방문한 사용자가 프로젝트 이해를 쉽게 할 수 있도록 리드미(README)를 쉽고 자세하게 설명하는 것도 중요하다. 사용자들이 교류할 수 있도록 커뮤니티를 만들거나, 버그를 신고한 사용자에게 직접 수정을 제안하는 등 적절한 이슈 안배도 필요하다고 설명했다.

그는 “다만 모든 오픈소스 프로젝트는 엔딩이 있고, 모두 각자 다른 방식으로 진행된다”며 “예를 들어 네이버가 오픈소스를 활용해 개발한 협업개발플랫폼 ‘요비’는 프로젝트를 종료한 후 개발자가 ‘요나’라는 이름으로 개인프로젝트로 진행 중이며, 오픈소스 캐시 솔루션이었던 ‘아커스’는 개발자가 이를 기반으로 ‘잼투인’이라는 회사로 창업했다”고 말했다.

<백지영 기자>jyp@ddaily.co.kr

백지영
jyp@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널