"라인은 굉장히 다양한 사람들이 일하는 곳입니다. 한국인 뿐 아니라 38개 국적을 가진 임직원이 일하고 있습니다. 이런 다양성 때문에 오픈소스를 하기에 좋은 환경입니다. 오픈소스로 개발하려는 개발자들이 굉장히 많습니다." (이서연 라인플러스 오픈소스 매니저)
라인플러스는 라인(LINE)의 글로벌 시장 확장을 위해 한국에 2013년 3월 설립한 회사다. 임직원이 11월초 기준 1100명에 달한다. 오픈소스 친화적인 라인플러스는 'DX 파트(DX Part)'라는 오픈소스 팀을 운영하고 있다. 이희승, 엄익훈, 송민우 등 3명의 개발자와 이서연 오픈소스 매니저 등이 주축을 이루고 있다.
이들은 최근 업무 외에 '특별한 외도'를 했다. 오픈소스 정신인 '컨트리뷰션(기여)'에 동참하기 위해 최근 정보통신산업진흥원(NIPA)이 주관한 '컨트리뷰톤'에 참가, 멘토로 활동했다.
'컨트리뷰톤'은 '컨트리뷰션'과 '마라톤'의 합성어로 NIPA가 공개SW 확산을 위해 매년 여는 행사다. 올해가 3회째다. 40일간 열리는데 지난 9월초 시작, 최근 마무리됐다. 라인플러스의 '아르메리아'를 비롯해 20개 오픈소스 프로젝트 팀이 참가했다. '아르메리아'는 이희승, 이서연, 엄익훈, 송민우 개발자가 멤버로 있는 'DX 파트'가 개발했다.
'아르메리아'는 슬랙' 등 여러 기업에서 활용하고 있다. 분당에 있는 라인플러스 사무실에서 이희승 등 4명의 'DX 파트' 멤버들을 만나 컨트리뷰톤 참가 소감과 오픈소스에 대한 생각을 들어봤다.
특히 4명 중 이희승 개발자는 자바 버추얼머신에서 작동하는 '네티(Netty)'라는 오픈소스 플랫폼을 개발, 개발자들 사이에서 '레전드'로 통하는 유명 개발자다.
='DX 파트'는 무엇을 하는 팀인가
이희승: DX는 Developer Experience(개발자 경험)의 줄임말이다. 사내에서 공통으로 사용할 수 있는 라이브러리와 프레임워크, 플랫폼을 개발하고 있다. 특히 마이크로서비스 개발에 필요한 라이브러리와 프레임워크 개발에 집중하고 있다. 구성원은 총 5명이다. 우리 4명과 조직장이다. 최근에 생겼다. 이 전에도 비슷한 구성으로 같은 일을 하다 최근 정식으로 파트(팀)가 됐다.
이서연: DX 파트는 오픈소스인 '아르메리아'와 '센트럴 도그마'를 개발했다. '아르메리아'(https://github.com/line/armeria)는 다양한 웹 서비스를 개발자가 손쉽게 개발하게 해주는, 사용자 친화적 자바 마이크로서비스 프레임워크다. 2015년 11월 오픈소스로 공개했다. 깃허브에서 2200개 이상 별을 받았다.
'센트럴 도그마(https://github.com/line/centraldogma)'는 라인에서 개발한 또 하나의 오픈소스다.
설정 정보를 저장하는데 특화한 일종의 데이터베이스다. 2017년 8월 오픈소스로 공개했다. 별은 약 300개 정도 받았다. 라인플러스가 깃허브에 올린 오픈소스가 58개 정도 된다.
= 각자 소개를 해달라. 오픈 소스에 관심을 갖게 된 계기도 궁금하다.
이희승: 초등학교 2학년 때부터 코딩을 했다. 개발경력이 20년 정도 된다. 대학 전공은 컴퓨터공학이다. 어려서부터 컴퓨터 프로그래밍을 하다보니, 자연스레 내가 만든 프로그램을 남에게 리뷰 받는 것을 많이 했다. 평상시 코드를 여기저기 올리고 있다. 직장을 다니면서 프로그래밍을 하다 보니, 이런 기능은 다른 사람도 쓸 수있게 공개하면 좋겠다는 생각을 하곤 한다
*이희승 개발자는 오픈소스 '네티(Netty)' 창시자다. 현재 네티는 애플, 트위터, 구글 등 자바 버추얼 머신 위에서 돌아가는 서비스를 만드는 다양한 회사에서 세계적으로 쓰이고 있다. 다른 참석자들은 이희승 개발자가 "레전드로 불린다"고 귀뜸했다.
엄익훈: 13년차 개발자다. 전공은 전자공학이다. 졸업후 대기업 입사가 확정되었지만 조금 더 다양한 도전을 하기 위해 중소기업에 입사했다. 그때 소프트웨어 개발의 매력을 느꼈다. 그래서 대학원에 진학해 소프트웨어를 다시 전공했다. 많은 기업이 엔터프라이즈 소프트웨어를 만들기 위해 오픈소스를 사용한다. 이 때문에 오픈소스에 관심을 가져왔다. 오픈소스는 무료로 쓸수 있어 나도 도움을 많이 받았다. 이제 이를 돌려주고 싶다.
송민우: 9년차 개발자다. 전공은 컴퓨터공학이다. 라인에 오기전 대기업 연구소에 다녔다. 연구소에서 대륙 간 파일 전송을 빠르게 해주는 프로그램을 개발했는데, 무척 어려웠다. 도움을 받을만 한게 없을까하다 오픈소스를 알게됐다. 그때 처음으로 오픈소스 코드를 봤고, 너무 잘 짜여져 있었고, 내가 미처 생각하지 못한 영역들을 봤다. 대기업 연구소 다닐 당시 제품을 만드는 과정에서 오픈소스를 가져다 썼는데, 그 오픈소스가 지금 같은 팀에서 일하고 있는 이희승 개발자가 만든 '네티'다. 네티는 세계에서 안쓰는 곳이 없을 정도로 유명하다. 네티를 알고나서 배울게 많구나 하는 걸 알게 됐다.
이서연: 4년차 개발자다. 전공은 컴퓨터공학이다. 지금은 오픈소스 매니저 일을 하며 회사의 오픈소스 전반을 담당하고 있다. '아르메리아'에 누구나 쉽게 다가갈 수 있게 하는 일을 하고 있다. 라인에서 오픈소스를 가장 많이 알리는 전도사 역할을 하고 있다.
=DX파트가 개발한 '아르메리아'에 대해 설명해달라.
이희승: 아르메리아는 '네티' 기반의 자바 비동기 마이크로서비스 프레임워크다. '네티'는 네트워크 개발을 낮은(low) 레벨에서 하는 사람들이 편리하게 쓸 수 있게 만들었다. 하지만 기업에서 많이 제작하는 웹 애플리케이션을 보면 '네티'를 사용하기에는 생산성이 떨어지는 측면이 있다. 그래서 '네티'를 기반으로 하면서 웹 애플리케이션을 쉽게 개발할 수 있는 '아르메리아'를 개발했다. '아르메리아'는 모던한 RPC 프레임워크, 즉 gRPC나 Thrift(쓰리프트) 같은 것들이 추가됐다.
=아르메리아를 만들게 된 계기는
이희승: 라인 내부에서 사용자가 많아지고 서비스가 복잡해지면서 하나의 큰 서비스를 작은 마이크로 서비스로 쪼개야하는 니즈가 생겼다. 이를 구현하기 위해 기반 기술이 필요했는데, 그 기반 기술에 필요한 게 크게 두 가지다. 마이크로서비스 프레임워크와 설정 관리 시스템이다. 이 두 기술에 대한 요구가 있어 개발을 시작했다. 아르메리아를 이용해 마이크로 서비스를 개발하고, 센트럴 도그마를 이용해 설정 관리 시스템을 개발하고 있다.
= '센트럴 도그마'는 어떤 오픈소스 인가
이희승: 센트럴 도그마는 설정 정보를 저장하는데 특화한 일종의 데이터베이스다. 예를 들어, 어떤 서비스가 존재할 때 해당 서비스에는 설정이라는 게 있다. 라인이라는 메신저 서버를 예로 들어보겠다. 라인 메신저는 사용자들 간 파일을 전송할 수 있다. 그런데 어떤 파일은 전송해도 안전하고, 어떤 파일은 전송하면 위험한 파일이 있다. 실행 파일은 전송하면 바이러스나 악성코드가 전달 될 수 있는 경로가 되기 때문에 위험하다. 이런 여부를 1차적으로 판단하기 위해 확인하는 것이 파일 확장자다.
파일 확장자 중 '.exe'는 전송하면 안되고, '.pdf'는 전송해도 된다, 이런 기본 원칙을 세우는게 설정이다. 관리자가 '설정값을 바꿔 .js 파일도 전송을 못하게 하자!’ 고 설정하면, 이것이 서비스에 자동으로 반영, .js 파일을 전송하면 거부하는 설정이 만들어진다. 기존엔 이런 설정을 바꿀때마다 서비스를 다시 시작해야했다. 하지만 '센트럴 도그마'를 이용하면 이런 번거러움을 없앨 수 있다.
=아르메리아는 누가 사용하나. 또 아르메리아가 적용된 서비스는 무엇이 있나.
이희승: 세계 업무용 메신저 1위인 ‘슬랙(Slack)’과 국내 대표 차량 공유 서비스 '쏘카(SoCar)' 등 여러 곳에서 사용하고 있다. 슬랙은 우리가 요청하지 않았는데도 컨퍼런스에서 아르메리아 사용을 이야기했다. 일본에서 최근 오픈한 라인 오픈챗과 라인 이모지 및 스탬프, 스티커 샵 상점에도 아르메리아가 사용됐다. 특히 라인 상점에는 모두 아르메리아가 적용됐다. 아르메리아가 사용되면서 장애율이 낮아지고, 전체 성능도 향상됐다. 개발자들이 많이 행복해졌다(웃음).
=컨트리뷰톤 이야기를 해보자. 컨트리뷰톤에는 누가 참여하자고 했나. 참여 동기도 궁금하다.
이서연: 다들 참여하고 싶어 했다. 라인에서 친한 개발자들에게 이런 피드백을 받곤 했다. "아르메리아 등 오픈소스를 개발하고 싶은데 선뜻 시작하기 어렵다"는 것이다. 이 사람들을 더 쉽게 아르메리아 등 오픈소스에 접할 수 있게 하고 싶었다. 그래서 사내에서 이를 위한 행사를 이틀간 연 적이 있다. 반응이 좋았다. 이걸 사내에서만 하지 말고 일반인으로 확대하자는 생각을 했고, 그래서 알게된 것이 '컨트리뷰톤'이였다.
=컨트리뷰톤에 참가하자고 했을 때 반응이 어땠나. 가욋일이라 귀찮아 하지 않았나
이서연: 그런 면도 있었다(웃음). 안하면 안되냐고 하는 사람도 있었다. 그렇지만 우리 팀 모두가 공감하는 목표가 있었다. 아르메리아를 보다 많은 사람들이 사용했으면 하는 거다. 컨트리뷰톤 참가자들이 익숙해지면서 멘토들이 손 볼 것이 줄었다. 해결할 이슈를 멘티들에게 맡겨도 되겠다는 이야기까지 나왔다. 컨트리뷰톤에 재미를 붙여 스스로 더 많은 것을 하고 싶어하는 사람도 나왔다.
=컨트리뷰톤 멘토는 어떻게 하면 될 수 있나
이서연: NIPA에 오픈소스 멘토링 제안서를 제출해 선정된 거다. 멘티에게 무엇을 설명하고 멘토링할지, 매주 별 멘토링 내용을 담아 제출했다. 제안서를 토대로 NIPA가 총 20개의 오픈소스 프로젝트를 선발했다. 아르메리아도 이중 하나다. 이후 예비 참가자들에게서 포부가 담긴 신청서를 받았고, 아르메리아에 어떻게 기여할 수 있는지 등을 검토, 14명의 멘티 참가자를 뽑았다.
=멘토링은 어떻게 진행했나
이서연: 온오프라인으로 했지만 대부분 온라인으로 이뤄졌다. 기간은 6주다. 긴 시간은 아니였다. 중간에 추석과 개천절도 있었다. 처음에는 진도가 느렸지만 어느 순간부터 속도가 붙었다. 우리한테 멘토링을 받은 사람들은 대학생부터 직장인까지 다양했다.
=컨트리뷰톤이 40일간 진행됐다. 무엇을 보고 느꼈는지 궁금하다.
이서연: 무엇보다 아르메리아를 알릴 수 있어 좋았다. 오픈소스 개발은 우리끼리만 하는게 아니다. 여러 사람이 참여해 피드백을 주고 받아야 완성도 있는 프로그램이 나온다. 정기적으로 꾸준히 참여할 사람을 찾으려면 시간을 많이 들여야 하는데, 컨트리뷰톤은 이런 사람들을 한번에 모집할 수 있어 좋았다. 최근 최종 발표회를 했다. 전체 참가자들 이 모여 6주간 각 팀에서 무엇을 했는지 공유했다. 가서 보니 20개 오픈소스 모두가 다 잘했더라. 이걸 보며 자극을 받았다. 아마 우리 팀 다른 분들도 비슷한 생각을 했을거다. 우물 안 개구리가 아닌, 모르는 사람과 교류를 하면서, 그 사람들이 하는 일을 보면서 서로 자극이 됐다. '저렇게 하니 잘됐구나' 하는 케이스 스터디도 됐다.
이희승: 오픈소스 프로젝도 규모의 경제가 작동을 한다. 개개인 효율이 조금 떨어질 수 있어도, 참여하는 사람이 많아지면 전체 속도는 빨라진다. 처음에는 어려워하는 사람도 있지만, 이들도 나중에 속도를 냈다. 다음에 기회가 있으면 또 참여하고 싶다.
송민우: 오픈소스에 열정있는 사람들이 많다는 걸 느꼈다. 우리랑 같이 한 멘티 14명은 대부분 직장을 다니는 사람들이다. 업무시간에 일을 해야 하고 때로는 야근도 하는 사람들이다. 때문에 개인시간을 쪼개야 프로젝트에 참가할 수 있다. 컨트리뷰톤이 진행되는 6주간 여가 시간에 쉬지도 못하고 행사에 참가했을 것이다. 이 분들을 보면서 나 자신에게도 자극이 되었다. 'DX 파트' 팀에 들어온 지 2년이 조금 넘어 약간 지쳐 있었다. 컨트리뷰톤을 하면서 열정이 있는 많은 사람을 만나 좋았다.
엄익훈: 개발자로 있으면서 직간접으로 오픈소스 도움을 많이 받았다. 이제 나도 오픈소스 지식을 쥬니어 친구들에게 돌려주고 싶은, 도움 받은 것을 사회에 돌려주고 싶은 마음에 참가했다. 어떻게 보면 귀찮을 수도 있는데, 어린 친구들을 도와주면, 이 친구들이 소프트웨어 개발자로 성장하는데 도움이 되고, 또 아르메리아에도 기여할 수 있다고 생각했다.
=컨트리뷰톤을 하면서 아쉬운 점은 없나
이서연: 멘토와 멘티 모두 직장인이라 시간에 쫓겼다. 너무 길어지면 지치는 단점도 있지만, 시간이 너무 빨리가 기간이 조금 더 길었으면 하는 아쉬움이 있다.
이희승: 컨트리뷰톤 기간 중 일부 대학생은 학교 시험이 있었다. 방학시즌에 행사를 하면 어떨까 하는 생각이 있다.
=라인플러스의 오픈소스 문화는 어떤가.
이서연: 라인은 굉장히 다양한 사람들이 일하는 곳이다. 한국인 뿐만 아니라 임직원 국적이 38개나 된다. 생각이 다양하기 때문에 오픈소스를 하기 굉장히 좋은 환경이다. 다양한 사람들이 얘기를 꺼내고 토론이 이루어지기 때문이다. 라인플러스에서 만들어 깃허브에 올린 오픈소스가 58개 정도 된다. 아르메리아가 올 8월 2천개 별을 받아 우리끼리 축하 파티도 했다. 이희승 개발자는 레전드로 불린다. 우리 팀은 일종의 '레전드와 아이들'이다.(웃음).
=세계적으로 오픈소스 활동이 늘고 있다. 세계 유명 서비스는 모두 오픈소스가 있어 가능했다. 공개 소프트웨어 활성을 위해 무엇이 필요할까.
이희승: 일단 시간이 더 필요할 것 같다. 오픈소스는 본업이 아니고 여가 시간에 하는 경우가 많다. 너무 직장에서 일을 힘들게 시키면 안될 것 같다(웃음). 차이를 이해하고 여유있게 일할 수 있는 기업 문화가 필요하다.
엄익훈: 기업이 잘 할 수 있게 정부가 도와주는게 중요하다. NIPA가 여러 사업을 하고 있는데 보다 확대됐으면 한다.
=후배 개발자들에게 조언을 한다면. 좋은 개발자는 어떤 개발자인가
이희승: 좋은 개발자는 꼼꼼하면서도 디테일을 놓치지 않는 개발자다. 종종 주니어 개발자들의 고민이 담긴 메일을 받는다. "너무 깊게 고민하지 말고 일단 뭐든지 실천해보라"고 말한다. 아르메리아에 풀 리퀘스트(Pull Request)를 보내는 것도 좋은 방법이다(웃음).
이서연: 대기업에 다니는 다른 회사 오픈소스 담당자를 최근 만날 기회가 있었다. 기업 이미지 상 오픈소스는 안 할 것 같았는데 생각보다 관심과 열정이 대단했다. 보이지 않는 곳에서 오픈소스를 위한 노력이 많다는 걸 느꼈다. 이런 노력들이 더 많이 알려졌으면 좋겠다.
송민우: 희승 님(라인플러스는 직원끼리 서로를 님이라 부른다) 의견에 공감한다. 디테일을 잘 챙기는 개발자가 됐으면 좋겠다. 커뮤니케이션에도 신경을 써야 한다. 개발자도 쉽게 설명하는 걸 잘해야 한다. 우스갯소리로 후배 개발자들에게 하는 말이 있다. ”내가 만약 다른 스타트업 CTO로 가면, 개발팀을 꾸려 아르메리아에 PR(Pull Request)을 보내 높은 수준으로 만들고, 이후 스타트업에 필요한 기술을 개발할 거다"고 말한다.
관련기사
엄익훈: 개발자라는 직업 자체가 가지는 강점이 있다. 제일 좋은 것 중 하나는, 내가 하는 일이 일로 끝나는 것이 아니라는 것이다. 취미생활로도 할 수 있다. 개발을 단순히 돈을 버는 수단이 아니라 즐기면서 하면 좀 더 발전하고 디테일 있는, 퀄리티도 자연스레 올라 갈 것이다. 개발하는 걸 즐기면서 했으면 좋겠다.
*이 기사는 정보통신산업진흥원(NIPA) 공개SW역량프라자와 지디넷코리아가 공동으로 기획한 기사입니다.