'노드JS(Node.js)'는 오픈소스 세계에서 독특한 이력을 갖고 있다. 노드JS는 재작년 오리지널과 'io.js'라는 포크(fork, 분기) 프로젝트로 갈라섰다가, 작년에 재결합한 프로젝트다. 분기 프로젝트로 파생되는 오픈소스 기술은 흔하다. 그러나 한 번 갈라선 포크 프로젝트가 오리지널과 통합하는 사례를 찾긴 쉽지 않다.
노드JS가 이처럼 흔치 않은 이력을 갖게 된 이유는 뭘까. 마침 변화의 소용돌이 중심에 있었던 노드JS 코어개발자(committer) '버트 벨더(Bert Belder)'에게 배경 설명을 들을 수 있었다. 그는 지난해 IBM에 인수된 노드JS 스타트업 '스트롱루프(StrongLoop)' 공동창업자로, 지난달 하순 서울에서 한국IBM과 국내 노드JS 개발자커뮤니티 '플레이노드(play.node)'가 주최한 컨퍼런스 기조연설을 맡아 한국에 와 있었다.
[☞관련기사: "IBM, 오픈소스 프로젝트의 최대 스폰서"]
당시 인터뷰에 응한 벨더의 시각을 통해 바라보면, 노드JS 프로젝트가 분기와 재결합을 겪은 주요 원인은 프로젝트의 '기술리더십'과 상표권같은 '상업적 권리'를 가진 주체의 동상이몽으로 요약된다. 일반적인 프로젝트 분기는 기술적인 가치관이나 개발 방향의 차이 때문에 발생하는데, 노드JS는 그렇지 않았단 얘기다. 당시 상황을 벨더는 다음과 같이 회고했다.
"초기 노드JS 프로젝트는 컨트리뷰터 2명과 작은 스타트업이 일하는 상태였다. 노드JS라는 상표권 '오너(owner, 소유자)'는 따로 있었다. 재단 설립 논의는 2014년 초부터 추진됐다. 이해관계가 굉장히 복잡하게 얽힌 상황이었다. 기존 프로젝트 리더(2대)가 나가고, 새로운 사람이 왔다. 새 리더(3대)는 과거 오픈소스에 관여한 경험이 많지 않았다. 동료들이 그를 신뢰하거나 좋아하지 않았다. "
■노드JS 프로젝트 리더십-상표권, 조이언트가 독점
노드JS 프로젝트 리더는 대대로 활동기간동안 '조이언트(Joyent)'란 회사 소속이었다. 이 회사가 노드JS 상표권 소유자다. 2004년 설립된 미국 클라우드기술 전문업체로 초기 노드JS 개발을 주도했다. 즉 상표권을 가진 회사의 프로젝트 기술 전문성을 가진 직원이 프로젝트 리더를 맡아 왔고, 내용을 커뮤니티와 공유하거나 의견을 받는 공식적인 장치는 없었다. 주요 논의가 회사 뜻대로 굴러가기 좋은 구조였다.
[☞참조링크: Trademark
앞서 노드JS 프로젝트의 기술리더십은 2009년 프로젝트를 창시한 1대 리더 라이언 달에서, 2012년 그가 2대 리더로 지명한 아이작 Z. 슐레터로 이어졌다. 슐레터는 노드JS 코어개발자이면서 노드패키지매니저(NPM)라는 모듈 관리툴을 만들었다. 그는 이후 2014년 또다른 노드JS 코어개발자인 티모시 J. 퐁텐을 3대 리더로 지명했다. 바로 버트 벨더가 '오픈소스쪽 경험이 적어 동료들이 못 미더워 했다'던 인물이다.
이런 얘기다. 상표권 소유자, 즉 조이언트는 커뮤니티와의 소통 없이 독단적으로 노드JS 재단 설립을 추진하려 했고, 그 소속인 3대 프로젝트 리더는 노드JS 프로젝트 커뮤니티 안에서 동료들의 신뢰를 못 얻고 있었다. 나머지 코어개발자나 외부 프로젝트 참여자가 달가워하기 어려운 상태였다. 그래서 노드JS라는 이름을 쓰지 않는 분기 프로젝트 io.js를 만드는 움직임이 촉발한 듯하다. 이어지는 벨더의 설명이다.
"커뮤니티에 인원들이 점점 불어났고 재단관련 논의를 위해 만나는 사람들도 많아졌다. 노드JS에 관심 많던 IBM도 그 중 하나다. 재단 설립 움직임은 이전부터 진행되고 있었는데, 오너가 이런 노력에 협조하지 않았다. 우리는 최대한 친절하게 (설립을 지원해 달라고) 설득했는데, 먹히지 않았다. 결국 이 상황을 답답하게 여긴 컨트리뷰터 중 1명이 '따로 만들자' 해서 io.js가 분리 탄생했다."
■io.js 분리, 노드JS 재단설립 후 합류
이후 상황은 알려진대로다. io.js 프로젝트를 주도한 쪽에선 노드JS 패키지관리툴 NPM과 호환되게 할거라 밝히는 동시에 '오픈거버넌스모델'을 만들겠다고 선언했다. 오픈소스 프로젝트에 걸맞는 개방적 의사결정구조를 표방한 것. 조이언트가 주도하는 다소 폐쇄적인 리더십과 대조를 이뤘다. io.js는 첫 정식판(1.0버전)을 원조 노드JS보다 먼저 공개하기도 했다. 이런 io.js의 등장은 노드JS 생태계의 '분할'로 비쳤다.
[☞관련기사: 노드JS 생태계 둘로 나뉜다]
[☞관련기사: IO.js, '원조' 노드JS보다 먼저 1.0 버전 공개]
2015년 1월 조이언트는 독점적 관리모델을 내려놓고 IBM, 페이팔, 마이크로소프트(MS), 피델리티, 리눅스재단과 함께 노드JS재단을 만들기로 했다. 노드JS재단은 거버넌스모델을 '기술위원회'와 '이사회', 2개 그룹으로 구성했다. 프로젝트의 기술적인 발전방향과 이를 후원하는 기업의 이익 추구 사이에서 균형을 잡는 형태로 볼 수 있었다. 이후 io.js 커뮤니티는 2015년 5월 노드JS재단 합류를 결정했다고 밝혔다.
[☞관련기사: 노드JS 오픈소스 재단 만들어진다]
[☞관련기사: 노드JS 생태계, 다시 하나로]
벨더는 io.js 커뮤니티가 노드JS 재단 설립에 가세해 오리지널 노드JS 프로젝트와 재결합하기로 결정한 전후 상황을 이렇게 묘사했다.
"노드JS재단 설립 후 (io.js 커뮤니티의 합류로) 컨트리뷰터 기반이 급성장했다. (조이언트가 재단 설립을 선언할 무렵) IBM이나 MS의 지원은 오리지널 노드JS에 쏠리는 편이었고, 스트롱루프는 io.js를 지지하는 입장이었다. 진영이 분리되자 많은 멤버들이 걱정했다. 양측 이견을 해소하는 게 중요하다는 공감대를 형성해, 분리된지 3~4개월만에 재결합에 의견이 모였다. 모두 재단을 지원하는 게 맞다는 거였다."
■오픈소스 프로젝트 기술 생태계의 공생모델
벨더는 노드JS 재단 설립을 통해 이해관계가 충돌하지 않도록 서로 노력하는 분위기가 생겼다고 설명했다.
"작은 그룹이 크게 성장하려면 협업하는 방법을 찾아야 한다. 재단 설립 전 프로젝트는 초기 다소 산만하고 캐주얼하게 운영됐다. 재단 형태로 일하게 된 이후부터는 훨씬 체계적이고 진중하게 일한다. 2015년은 시행착오를 겪는 시기였다. 기술위원회(TSG)를 2개 조직해 운영하다 합치기도 하면서. 이제 안정화 과정이다. 코드에서 문제를 찾고, 해법을 내고, 정반합을 이루면서, 이해관계 충돌을 피하려고 노력한다."
3대 노드JS 프로젝트 리더 퐁텐은 재단이 설립된 후 조이언트를 떠났다.
"(퐁텐은) 자비로운 종신 독재자(BDFL)라는 별칭으로도 불리는, 오픈소스 프로젝트를 리드한 경험이 많지 않았다. 자기가 맡은 역할에 상당히 스트레스를 느꼈다. 재단 설립이 추진되면서 자기는 그런 쪽에 관여하길 원치 않는다고 하면서 나갔다."
■"백엔드 기술 생태계에도 파편화 있다…IBM이 옥석가리기 돕는 역할"
노드JS재단은 출범 이후 다른 오픈소스 관련 재단과의 협력 사례에도 이름을 올리고 있다.
이를테면 리눅스재단 산하 '자바스크립트 재단(Javascript Foundation)'이 출범하면서, 그 쪽에서 노드JS재단과의 협력을 예고했다. 자바스크립트 재단은 기존 '제이쿼리(jQuery)재단'이 정체된 상태를 벗어나기 위해, 다른 자바스크립트 기반 오픈소스프로젝트를 영입하면서 재출범한 조직이다. 노드JS 생태계에 속했던 '앱피움(Appium)'이 자바스크립트 재단에 합류했다.
[☞관련기사: 자바스크립트 생태계 통합될까]
관련기사
- "IBM, 오픈소스 프로젝트의 최대 스폰서"2016.12.11
- 삼성이 인수한 조이언트, 어떤 회사인가2016.12.11
- 노드JS 생태계, 다시 하나로2016.12.11
- 갈라선 노드JS 생태계 재결합하나2016.12.11
이런 자바스크립트 재단의 등장은 프론트엔드 웹기술 생태계에 만연한 '파편화(defragmentation)' 해소 또는 완화에 기대를 걸게 했다. 같은 맥락에서 노드JS 재단의 존재는, 백엔드 인프라 생태계에 존재하는 기술 파편화를 해소 또는 완화해 줄 것으로 기대된다. 벨더는 이런 기술 생태계에서 노드JS 재단 이사회 멤버이자 자바스크립트 재단 플래티넘 후원사인 IBM같은 회사의 역할이 중요하다는 인식을 보였다.
"백엔드 인프라 기술이 파편화돼 있냐고? 물론 그렇다. 프론트엔드와 마찬가지다. 파편화 자체가 나쁜 건 아니다. 일장일단이 있다. (파편화 현상은) 어떤 문제에 다양한 창의적 솔루션이 제기될 수 있다는 점을 드러낸다. 동시에 그 영역에 깊이 관여하지 않으면, 사용자가 기술의 옥석을 가리기 힘들게 만든다. IBM같은 회사가 뭘 쓰고 뭘 배제할 것인지, 기업들이 선택하도록 돕는 역할을 할 것이다."