3대 리더 체제 진입한 노드JS, 자바 넘나

일반입력 :2014/01/22 13:41

웹개발 프레임워크 자바스크립트가 서버 애플리케이션 개발 환경으로도 주목받는 모습이다. 웹기반 클라이언트 앱 개발용으로 제한된 자바 스크립트를 서버 앱 개발에도 쓸수 있게한 노드JS 프레임워크 때문이다. 개발자 세계에서 자바 스크립트의 존재감을 키운 요인 중 하나로 꼽힌다.

오픈소스 커뮤니티로 운영되는 노드JS 프로젝트는 최근 세 번째 리더를 맞이하며 또 한번의 도약을 노리고 있다. 노드JS 코어 커미터였던 아이작 슐레터에 따르면 이제 노드JS 프로젝트를 티모시 J. 퐁텐이 이끌게 됐다.

퐁텐은 9월부터 노드JS 프로젝트에서 활동하기 시작했고 취미로 코드를 기여하기 시작해 작년 4월 노드JS 전문 회사인 조이엔트에 합류하며 본격적인 활동에 돌입했다.노드JS는 개발자 세계에서 이례적으로 프로젝트 리더를 때가 되면 승계하는 문화가 있다. 보통 오픈소스 SW 개발 프로젝트에서 창시자는 처음부터 끝까지 수장 역할을 맡거나 최소한 상징적인 존재로 남는다. 리눅스 커널을 만든 리누스 토발즈는 여전히 리눅스 커널 프로젝트 코디네이터로 활동중이다.

그러나 노드JS를 창안한 라이언 달은 '자비로운 종신 독재자'(BDFL)란 타이틀을 유지하고 있지만 실제 프로젝트엔 관여하지 않는다. 라이언 달은 아이작 슐레터를 2012년초 프로젝트 리더로 임명했고 슐레터는 다시 퐁텐에게 세번째 리더 자리를 넘긴 것이다. 슐레터는 앞으로 노드JS의 기본 패키지 관리시스템인 NPM.js 상용화에 집중한다.

노드JS는 작년 페이팔이란 전세계 최대 온라인결제플랫폼의 웹애플리케이션 환경에 채택되며 한단계 도약했다. 페이팔이 웹애플리케이션을 자바에서 자바스크립트와 노드JS로 교체한 것이다.

노드JS는 자바스크립트를 사용해 네트워크 애플리케이션을 빠르고 확장성있게 구축할 수 있고, 데이터 집약적이면서 실시간성인 애플리케이션 제작에 적합하다.

페이팔은 노드JS와 자바스크립트를 채택하며 브라우저 코딩 조직과 자바 코딩 조직으로 나눴던 엔지니어링팀을 하나로 통합했다. 이에 고객 접점에 닿아있는 개발자가 인프라 깊숙한 곳의 문제까지 유연하고 빠르게 고민할 수 있게 됐다.

페이팔은 전까지 프로토타입 플랫폼으로써 노드JS를 사용하기 시작했다. 그러다 익스프레스를 웹애플리케이션 프레임워크로, 컨피규레이션을 위한 자바스크립트 태스크러너로 'Grunt'와 'nconf'를 사용했다. 대규모 개발조직 내에서 어떻게 서버가 설정되는지 일관성을 유지하기 위해 익스프레스 상위에 '크라켄JS(Kraken.js)라는 협의(convention) 레이어를 만들었다.

페이팔이 노드JS를 실제 환경에 처음 적용한 건 계정 분야였다. 두 명의 노드JS 엔지니어가 수개월동안 필요한 소프트웨어를 구축했다. 노드JS 앱은 자바에 비해 33% 적은 코드라인으로 작성됐고, 40% 적은 파일로 만들어졌다. 또 수개월에 걸쳐 노드JS가 페이팔의 서포트세션과 중앙화된 로그, 키 저장소를 추가하는 걸 허용하는 인프라 구축작업이 완료됐다.

페이팔은 성능 테스트에서 노드JS 애플리케이션이 자바보다 35% 더 빠른 응답속도를 보였다고 밝혔다. 동일한 페이지를 0.2초 더 빨리 서비스했다. 그리고 향후 모든 페이팔 웹페이지를 노드JS 기반으로 운영하기로 했다.

사실 자바스크립트를 서버 측면의 개발환경에 사용하자는 라이언 달의 생각은 2009년 노드JS의 첫 등장 당시 개발자들 사이에서 큰 주목을 받지 못했었다.

그러나 4년의 시간을 보내며 상황이 바뀌었다. 여러 저명한 서버 개발자들이 노드JS 개발에 참여하기도 했다. 노드JS는 페이팔 외에도 월마트를 비롯해, 마이크로소프트, 야후 등에서도 사용된다.

리드라이트에 따르면, 브라이언 캔트릴 조이엔트 수석부사장은 2011년 사람들은 노드JS의 가능성에 대해 현업시스템에선 불가능하다고 말했다라며 그러나 노드JS를 사용하는 더 많은 프로젝트들이 나타나고, 회의론은 사라지고 있다라고 말했다.

브라이언 캔트릴 수석부사장은 디버깅에 어려움을 갖고 있던 노드JS의 문제를 해결해온 인물이다. 자신이 개발한 디트레이스(DTrace)를 노드JS의 디버깅을 위해 통합하고 있다.

노드JS는 메모리 누출 문제를 갖고 있다. 퐁텐도 작년 월마트에서 제기된 노드JS 메모리 누출 문제 해결에 참여했다. 노드JS 프로그램이 작동되지 않는 것처럼 보이는데도 메모리를 점점 더 많이 사용하는 문제다. 사용자는 왜 이같은 현상이 일어나는지 가늠할 수 없었다. 조이엔트의 개발자와 캔트릴의 팀이 이 문제 해결을 위해서도 계속 개선작업을 하고 있다.

브라이언 캔트릴은 썬마이크로시스템즈 출신의 서버 환경 개발자다. 자바와 자바스크립트 모두를 바라봤던 그는 노드JS는 더 디버깅하기 좋아질 것이고, 자바보다 서버 측에서 더욱 강력해질 것이라고 강조했다.

퐁텐은 향후 노드JS에 어떤 변화를 줄 것인지 밝히지 않았다. 오히려 노드JS가 직면한 새로운 어려움과 전임자보다 더 큰 문제에 매달려야 하는 입장이다.

관련기사

노드JS는 점점 더 많은 곳에서 채택되고 있으며, 동시에 버그와 이슈도 확장할 것이기 때문이다.

퐁텐은 또한 수주 내 공개될 예정인 노드JS 0.12 버전에서 창시자 의도를 일관되게 유지할 것인지 관련자들의 시선을 한몸에 받고 있다. 퐁텐은 향후 로드맵을 설명한 글에서 단순하고 명료하다는 노드의 목표를 유지하는 건 쉽다라며 사용자는 소동없이 일관성을 예상할 수 있을 것이다라고 밝혔다.