노드JS 생태계는 올해 큰 변환점을 맞이하고 있다. 노즈JS재단이 출범하면서 커뮤니티 기반 문화가 정착되고 있고, 기업들의 노드JS 도입 사례도 점점 늘어나고 있다. 아예 기업용 노드JS 기술을 개발해 수익을 만드는 스타트업들도 성장하고 있다. 대표적으로 npm, 노드소스, 그리고 얼마 전 IBM에 인수된 스트롱루프를 꼽을 수 있다. 지난주 한국에서 열린 노드JS 컨퍼런스 ‘플레이노드’에서 노드소스 개발자와 npm 엔지니어를 만날 수 있었다. 두 사람에게 노드JS 그리고 오픈소스 커뮤니티에 대한 생각을 들어보았다.

팀 오슬리 “확장성을 고민한다면 노드JS 써보세요"

노드소스는 2014년 설립된 스타트업이다. ‘엔솔리드’, ‘엔쉽’같은 기업용 노드JS 서비스를 제공하고 있다. 올해 초 300만달러(약 35억원)의 투자를 받기도 했다. 고객은 넷플리스, 페이팔, 우버, 야후 등이 있다. 미국 기업이지만 호주, 네덜란드, 콜롬비아 등 다른 나라에서 근무하는 개발자들이 많다. 팀 오슬리 개발자는 호주 출신이며 최근에는 싱가포르에서 거주하고 있다.

팀 오슬리 개발자는 “노드JS에 한해선 세계 최고 개발자들이 노드소스에 모여 있다”라며 "보안성과 안정성을 높인 노드JS 기술을 제공하고 있다"라고 설명했다.

▲  노드소스가 제공하는 기술 및 컨설팅(사진 : 노드소스 홈페이지)
▲ 노드소스가 제공하는 기술 및 컨설팅(사진 : 노드소스 홈페이지)

팀 오슬리 개발자는 그동안 오픈소스 프로젝트에 꾸준히 소스코드를 기여했다고 한다. 노드소스에서는 오픈소스 활동보다는 기업용 제품을 만드는 데 더 집중하고 있다. 그는 “오픈소스 기술을 기여할 때와 상용 제품을 만드는 과정은 다르다”라며 “두 과정을 겪으면서 많은 것을 배우고 있다”라고 설명했다.

“오픈소스 프로젝트에 소스코드를 기여할 땐, 보다 작은 단위의 기능을 보게 되는 것 같아요. 반대로 상용 제품을 만들 때는 큰 그림을 보면서 개발하는 것 같고요. 시작점이 다르니 이용하는 툴이나 개발 방식도 달라졌고요. 그 과정에서 다양한 관점을 키울 수 있었어요.”

▲  팀 오슬리 노드소스 개발자
▲ 팀 오슬리 노드소스 개발자

팀 오슬리 개발자는 노드JS의 장점에 대해 '확장성'을 꼽았다. 실제로 팀 오슬리 개발자는 노드JS 이전에 루비온레일즈와 드루팔을 주로 다뤘다가 확장성을 높이는 기술로 노드JS를 발견했다고 한다. 최근에는 큰 기업들이 노드JS에 관심을 가지고 있다. 팀 오슬리 개발자는 "링크드인이나 페이팔 사례를 참고해보면 좋다"라고 "확장성, 성능, 안정성 면에서 노드JS는 충분히 성숙했다고 본다"라고 밝혔다.

자바스크립트라는 하나의 언어로 프론트엔드와 서버단을 관리할 수 있는 것도 노드JS만의 장점이다. 그만큼 빨리 배우고 응용할 수 있다. 팀 오슬리 개발자는 2011년부터 자바스크립트를 공부했는데, 불과 3년만에 노드JS 전문 회사에 스카웃 된 것으로 보면 그만큼 기술의 진입장벽이 낮다고 볼 수 있다.

“자바스크립트 이전에는 여러가지 기술을 동시에 다뤘어요. 특히 포토샵과 플래시를 주로 만졌는데요. 아이폰이 플래시를 지원하지 않을 것이라는 글을 보고 ‘아 플래시는 죽겠구나’라는 생각이 들었죠. 돌이켜보니 뭐 하나 깊이 아는 기술이 없더라고요. 그래서 하나의 기술을 잘 아는 스페셜리스트가 되고자 마음먹었어요. 그때 자바스크립트를 선택했어요. 사전 지식이 없어도 시작하기 꽤 좋았던 언어였거든요. 또한 생태계가 커서 질문하기도 좋고 패키지를 활용해 많은 사람들이 공통적으로 겪고 있는 문제와 해결책을 쉽게 공유할 수 있었고요.”

[rel]팀 오슬리 개발자는 프로그래밍 외에 커뮤니티 활동도 적극적으로 참여하고 있다. ‘노드업’ 팟캐스트의 공동 운영자이며 온라인 교육공간인 ‘노드스쿨’에서 학습자료를 제공하기도 했다. ‘캠프JS’ 컨퍼런스와 ‘싱가폴JS’ 밋업의 운영자이기도 하다. 그는 "개인적으로 커뮤니티에서 새로운 기회들을 많이 얻었다”라며 “내가 받은 걸 다른사람에게 돌려주기 위해 커뮤니티에 적극적으로 참여하고 주최하고 있다”라고 설명했다.

“과거에 저는 자바스크립트는 제대로 된 언어가 아니라고 생각했어요. 장난감 같은 언어라고 생각했죠. 그 생각을 바꿔준 게 밋업이었어요. 자바스크립트 밋업에 우연히 참여했는데요. 그곳에서 자바스크립트가 얼마나 다양하게 활용되는지 배울 수 있었죠. 하드웨어, 3D, 드로잉 등 많은 분야에서 유연하게 사용할 수 있더라고요. 그 이후 컨퍼런스 연사로 적극적으로 참여했어요. 밋업같은 경우 거의 1주일에 한번씩 참여했던 것 같아요. 일단 남들에게 설명하면서 기술을 보다 명확히 이해할 수 있었고, 다른 사람들의 질문을 받으면서 어떤 것을 더 공부해야 할 지도 알 수 있었거든요. 여담으로 밋업에서 제 아내를 처음 만나기도 했습니다, 하하.”

팀 오슬리 개발자는 호주나 싱가폴에서 오픈소스 기여자들을 쉽게 발견할 수 있다고 설명했다. '호주의 노드JS 개발자'라는 사이트에 들어가보면 수십명의 개발자가 노드JS를 개발하면서 오픈소스  프로젝트에 소스 기여를 하고 있다는 것을 볼 수 있다.  '위빌드'라는 싱가포르 사이트에서는 오픈소스 개발자들의 모임정보가 꾸준히 진행되고 있다는 것을 확인할 수 있다.

“앞으로 계속 오픈소스 커뮤니티와 관련된 일을 하고 싶어요. 오픈소스 기술에 혜택을 계속 받았으 저도 오픈소스 생태계에 기여하고 싶거든요.”

▲  호주의 노드JS 개발자들 홈페이지. 수십명의 개발자가 깃허브 계정을 공유하고 있다.
▲ 호주의 노드JS 개발자들 홈페이지. 수십명의 개발자가 깃허브 계정을 공유하고 있다.

▲  싱가폴의 기술 커뮤니티 정보를 공유하는 사이트. 오픈소스 기술 관련 이벤트가 지속적으로 열리고 있다
▲ 싱가폴의 기술 커뮤니티 정보를 공유하는 사이트. 오픈소스 기술 관련 이벤트가 지속적으로 열리고 있다

 

캣 마첸 “npm은 다양성이 있는 기업”

npm의 자바스크립트와 관련된 패키지를 공유하고 관리해주는 공간이다. npm은 2009년 오픈소스 프로젝트로 시작했고, npm 패키지를 보다 체계적으로 관리하는 기업이 2014년에 설립됐다. 패키지는 특정 기능을 수행하기 위해 만들어놓은 소스코드 모음집이다. 많은 프로그래밍 언어들이 이러한 패키지를 사용하고 있는데, npm은  패키지 저장소 중에서 규모가 큰 편이다. 처음에는 노드JS 위주의 기술이 많았지만 지금은 프론트엔드와 관련된 패키지들이 전부 모여있다. 현재 등록된 패키지 수는 20만개이며, 사용자수는 15만명이 넘었다. 노드JS의 장점으로 풍부한 패키지로 뽑힐 정도다.

npm라는 이름속에는 흥미로운 이야기가 숨겨져 있다. npm기업은 노드JS 핵심 개발자였던 아이작 슐레터가 설립했다. 덕분에 노드JS관련 패키지가 npm에 많다. 이런 까닭에 npm이 ‘노드 패키지 매니저(Node Package Manager)’의 축약형이라고 생각하는 사람들이 많다. 하지만 이는 사실이 아니다.  대문자로 표시하지 않는 이유도 npm가 특정 단어의 약어가 아니기 때문이다. npm은 커맨드라인 유틸리티로부터 이름을 따왔다. 오른손의 약지와 중지로 쉽게 타이핑할 수 있는 단어로 고민하다가 npm이라는 단어가 탄생했다고 한다. npm의 약자로 무엇이 적합할 지에 대한 놀이도 진행 중이다. npm의 깃허브 페이지에 가면 npm의 약자를 제안하는 ‘확장’이라는 페이지가 있다. 여기에 누구나 npm의 약자를 제안할 수 있으며, 채택된 단어들은 npm 홈페이지 상단에 랜덤으로 노출된다.

▲  npm은 노드JS만을 위한 공간이 아니며 프론트엔드와 관련된 모든 패키지를 다루고 있다. npm 이름을 제안하는 놀이도 진행되고 있다(사진 : 깃허브)
▲ npm은 노드JS만을 위한 공간이 아니며 프론트엔드와 관련된 모든 패키지를 다루고 있다. npm 이름을 제안하는 놀이도 진행되고 있다(사진 : 깃허브)

▲  npm에 제안된 이름은 npm 홈페이지 상단에 랜덤으로 노출된다.
▲ npm에 제안된 이름은 npm 홈페이지 상단에 랜덤으로 노출된다.

캣 마첸은 npm에서 CLI(Command Line Interface)를 만드는 엔지니어로 일하고 있다. npm의 현재 인력은 30여명이며, 절반 이상이 개발자다. 독특한 것은 이러한 개발자 중 절반은 여성이다. 특히 외부 발표를 나서는 임원급 여성 개발자들도 많다. 푸에르토리코나 아이티 같은 외국인 출신 개발자들도 있으며 2-3명을 제외한 대부분의 개발자가 프로그래밍과 관련한 학위가 없는 사람이다.

캣 마첸 엔지니어는 “npm은 작은 규모의 회사 중 에서 다양성에 큰 가치를 둔 회사로 알려져 있다”라며 “무의식 속의 차별, 편견을 없애기 위한 교육과 토론이 활발히 진행되고 있다”라고 설명했다.

▲  캣 마첸 npm 엔지니어
▲ 캣 마첸 npm 엔지니어

캣 마첸 엔지니어는 취미로 프로그래밍을 시작했다. 대학은 영화학과를 나오고 15분짜리 단편영화를 만들었다고 한다. 어렸을때 게임과 컴퓨터 만지는 것을 좋아해 독학을 하면서 프로그래밍을 접했다고 한다. 이때 무료 자료를 찾다가 자연스레 오픈소스 기술을 알았고 리처드 스톨만의 자유소프트웨어 문화를 알고 난 뒤  더 관심을 가지게 됐다.

“특히 사람들이 좋았어요. 영화 쪽에 있는 사람들보단 프로그래밍을 하는 사람들과 대화가 더 잘 통하고 편하다는 느낌이 있었어요. 그러다가 시스템 관리하면서 리눅스를 설치하는 일을 아르바이트로 해봤는데요. 프로그래밍을 잘 몰랐지만 마치 퍼즐을 맞추는 기분처럼 재밌다는 생각이 들더라고요. 우연히 기업에서 QA일을 제안했어요. 그때부터 이쪽 일을 하게 됐습니다. 또 업계에서 자바스크립트 개발자를 많이 찾더라고요. 그래서 자바스크립트 공부를 시작했죠. 초보자가 공부하기에 비교적 쉬운 언어이기도 했고요. ”

npm은 지금까지 1천만달러 규모의 투자를 받고 기반을 닦고 있다. 수익을 내기 위한 노력도 하고 있다. 'npm 프라이빗 모듈'이라는 비공개 패키지를 제공하고, 보안 수준을 강화한 기업용 레지스토리 ‘npm 온사이트’라는 서비스도 출시했다. 최근에는 npm 3.0버전을 출시해 의존성, 버전 등을 더 쉽게 관리할 수 있게 만들었다.

“npm은 아직 수많은 패키지 중에서 어떤 것이 보안이나 기능이 우수한지에 대해서 따로 추천해주진 않아요. 현재로서는 사용자가 필요한 기능을 검색하고 다운로드 수 등을 보며 인기를 가늠할 수 있죠. 물론 개선 방법을 고민하고 있어요. 아직 구체화되진 않았지만 커뮤니티나 사용자가 보다 패키지를 쉽게 이용할 수 있는 방향으로 계속 업데이트할 예정입니다. 필요한 것이 있다면 npm에 적극적으로 얘기해주시면 더욱 좋을 것 같아요.”

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