스트롱루프에 있는 포스트 중 틈틈히 참고해둔 것인데 시간이 지난 자료지만 과거 시점으로 참고할 만한 내용이 있을 것 같아 공유 드립니다.
최근 io.js 와 node.js 위원회가 코드를 통합하기로 결정한 후 드디어 노드는 다시 하나가 되었습니다. (올해 9월 정식 발표) 0.12 버전에서 4.0 으로 판올림을 했습니다. node.js 4.0 은 기존의 io.js 에 반영되었던 새로운 기술들을 모두 포함하고 있습니다.
현재 시점에서 (작지만 큰 ) 변경된 사항들을 수용할 수 있다면 4.0 을 사용하는 것이 어떨까 고민하고 생각됩니다. 그렇지 않다면 0.12 를 사용하는 것이 안정되어 보입니다.
NODE.JS, IO.JS 어떤 버전을 사용해야할까
노드에 관심이 있다면 최근 몇달간 벌어진 일련의 사건들을 통해 노드의 핵심 개발자들이 노드를 포크하고 새로운 커뮤니티를 구성하고 새로운 후원을 받으며 미래를 위해 노드를 흡수하는 듯한 모습을 기억할 것이다.
노드 생태계에 큰 비중을 담당하는 StrongLoop 에서 어떤 버전의 노드를 사용해야 할지 제안한 가이드를 요약했다.
현재 Node.js 와 io.js 의 진행 상태
- Node.js 의 도메인은 리눅스 파운데이션으로 귀속되었다. 웹사이트 워킹 그룹이 새로 추가 되어 새로운 사이트를 선보이고 있다.
- 테크니컬 스티어링 커미티(TSC) 가 구성되어 두 프로젝트를 관리한다. TSC 는 매주 수요일 미팅을 가지며 회의 내용은 녹화되고 공개된다.
StrongLoop 에서 추천하는 노드와 주의해야하는 버전이 있다면?
확실한 안정성을 원할 경우에는 v0.10 의 노드를 사용하길 바란다. 이 버전은 1년 이상 패치가 이루어지고 있다.
현재 안정 버전은 v0.12 다. 새로운 프로젝트를 시작한다면 이 버전을 추천한다.
- 대부분의 생태계가 0.12 를 지원한다. 0.10 에서 업그레이드 하기도 쉽다.
- 새로 추가된 많은 기능들이 있다. (아래의 내용들이 소개되고 있다.)
- 클러스터 라운드-로빈 로드 밸런싱
- 퍼포먼스 개선
- 단일 프로세스에서 다중 인스턴스 실행
- 동기화된 차일드 프로세스 API
- 노드 인스펙터를 통해 클러스터링 된 앱 디버깅
- 넌 블로킹 API 개선
- 노드 0.12 의 개선되는 API
- 노드 0.12 의 변경되는 C++ API
- 노드 0.12 의 쉘 프로그래밍
- Node.js 와 io.js 는 머지 과정 중에 있다. 올 가을 쯤 통합된 안정 버전을 릴리즈 할 계획이다. (현재는 릴리즈 되었습니다)
- 장기 지원 버전이 준비되고 있다.(LTS 버전)
io.js 는 혁신적인 개선 사항을 담고 있다. 최신 기능을 접하고 싶다면 사용해 보길 권한다.
- 최신 V8 엔진에 대응하는 빠른 릴리즈
- 그만큼 빠른 버그 픽스와 개선
- 적어도 3주에 한 번씩 릴리즈 되고 있다.
- io.js 에 도입되고 있는 흥미로운 기술들
- Multi-Isolate (웹워커 관련)
- 개선된 http-parser
- 컴파일 하지 않아도 사용 가능한 웹소켓
- harmony 플래그 없이 사용 가능한 ES6 스펙
- TypedArray 를 기반으로 하는 버퍼
- io.js 의 많은 기능들은 위원회의 결정에 따라 Node.js 에 적용될 예정이다.