Node.js 재단은 새 플래티넘 회원사 레드햇을 환영합니다

Node.js 재단은 새 플래티넘 회원사 레드햇을 환영합니다

엔터프라이즈 소프트웨어 개발에 ​Node.js 적용을 ​촉진시켜줄 기업

2015년 10월 6일, 샌프란시스코 - Node.js 재단은 오늘 레드햇이 새로운 플래티넘 회원으로 참여했음을 알렸습니다. Node.js 재단은 커뮤니티가 주도하고 기업이 후원하는 컨소시엄으로서 Node.js 플랫폼을 개발하고 있습니다. 레드햇은 Node.js 프로젝트의 적용, 개발, 장기적인 성공을 지원하기 위해 IBM, 인텔, Joyent, 마이크로소프트, 페이팔과 같은 플래티넘 회원사가 되었습니다.

Node.js는 고성능 저지연(low latency) 애플리케이션용으로 사용되는 런타임으로서, 엔터프라이즈 애플리케이션부터 로봇까지 어느 곳에든 사용할 수 있습니다. 지난 2년간, 레드햇, IBM, 페이팔, Fidelity, 마이크로소프트를 비롯한 많은 대기업들이 자신들 조직의 일부에 Node.js를 적용했습니다. 오늘날 Node.js 패키지를 설치한 고유 IP는 2백만 개 정도이며, 지난달 패키지 다운로드 수는 20만 건 이상이었습니다.

빠르고 확장성 있는(scalable) 네트워크 애플리케이션을 만드는 데 종종 사용되기도 하는 Node.js는 레드햇 모바일 애플리케이션 플랫폼(Red Hat Mobile Application Platform)과 같은 레드햇 기술을 지원하며, 레드햇의 오픈시프트(OpenShift)레드햇 소프트웨어 컬렉션(Red Hat Software Collections)에서도 사용할 수 있습니다. 새롭게 회원사가 된 레드햇은 Node.js 커뮤니티가 주도하는 프로젝트를 지원하는 중립 기관으로서 새롭게 구성된 재단에 재정 지원, 기술 공헌, 고수준 정책 유도를 할 것입니다.

레드햇의 프로덕트 매니지먼트 파트의 선임 디렉터인 리치 샤플즈(Rich Sharples)는 “Node.js는 모바일과 사물 인터넷(Internet of Things, IoT) 환경에 사용할 반응성 높고 확장성 있는(scalable) 애플리케이션을 작성하고 배포해야 하는 개발자들에게 중요한 도구가 되었습니다.”라며 “우리는 Node.js 재단 및 광대한 커뮤니티와의 심도 있는 협업을 환영하며, 엔터프라이즈 소프트웨어 개발 분야에서 Node.js 기술의 역할을 더 늘리는 데 일조하고자 합니다.”라고 말했습니다.

Node.js 재단 이사회의 의장인 대니스 쿠퍼(Danese Cooper)는 “Node.js는 마이크로서비스 아키텍처부터 분산 디바이스 환경에서 실행되는 데이터 집약 애플리케이션까지 거의 모든 기술 분야에서 빠르게 퍼지고 있습니다.”라며 “지금은 Node.js 기술의 중요한 시점이며, Node.js의 의의를 지키고 Node.js가 광대한 Node.js 커뮤니티 내에서 발생하는 시의성 있는 프로젝트와 문제를 다루게 하려면 재단 회원들의 지원이 필요합니다.”라고 전했습니다.

추가 자원

Node.js 재단에 관하여

Node.js 재단은 Node.js 플랫폼과 관련 모듈을 만들고 지원하는 협업 오픈소스 프로젝트입니다. Node.js는 200개 이상 국가 수만 개 기관에서 사용되며 매달 2백만 건 이상 다운로드 되고 있습니다. Node.js는 고성능 저지연 애플리케이션용으로 사용되는 런타임으로서 엔터프라이즈 애플리케이션, 로봇, API 엔진, 클라우드 스택과 모바일 웹 사이트까지 어느 곳에나 사용됩니다. Node.js 재단은 Famous, IBM, 인텔, Joyent, 마이크로소프트, 페이팔, 레드햇과 같은 플래티넘 회원사를 비롯한 다양한 분야의 기업으로 구성되어 있습니다. 골드 회원사에는 GoDaddy, NodeSource, Modulus/Progress Software 등이 있고, 실버 회원사에는 Apigee, Codefresh, DigitalOcean, Fidelity, Groupon, nearForm, npm, Sauce Labs, SAP, YLD! 등이 있습니다. 참여는 http://nodejs.org에서 할 수 있습니다.

Node.js 재단은 리눅스 재단의 협업 프로젝트 중 하나입니다. 리눅스 재단 협업 프로젝트는 협업 개발을 이용해 업계와 생태계에 혁신을 촉진하는 독립 재정 소프트웨어 프로젝트입니다. https://nodejs.org/en/foundation/

Node v4.1.2 (안정 버전)

2015-10-05, 버전 4.1.2 (안정 버전), @rvagg

이번 릴리스에는 CVE-2015-7384, 서비스 거부(Denial of Service, DoS) 버그의 수정이 포함되어 있습니다. 버그에 대한 자세한 내용은 nodejs-sec 그룹에서 볼 수 있습니다. 보안 릴리스에 대한 알림을 받고 싶다면 nodejs-sec을 구독하기 바랍니다.

주요 변경 사항

  • http:
    • 실행을 중단할 수 있는 파이프라인의 잘못된 ‘finish’ 이벤트 버그를 수정해서 DoS 취약점 CVE-2015-7384를 수정했습니다. (Fedor Indutny) #3128
    • 소켓을 멈출 것인지 아닌지 판단하기 위해 단순히 현재 요청의 데이터가 아니라 처리되지 않은 응답 데이터를 사용합니다. (Fedor Indutny) #3128
  • libuv: v1.7.4에서 v1.7.5로 업그레이드 했습니다. 자세한 내용은 릴리스 노트를 참고하세요. (Saúl Ibarra Corretgé) #3010
    • 모든 윈도우 버전에 대해 더 나아진 rwlock 구현체를 사용합니다.
    • AIX 지원이 개선되었습니다.
  • v8:
    • v4.5.103.33에서 v4.5.103.35로 업그레이드 했습니다. (Ali Ijaz Sheikh) #3117
    • 프로미스 과정의 속도를 높이기 위해 v8의 업스트림에서 f782159를 백포트했습니다. (Ben Noordhuis) #3130
    • 포스트-모템 메타데이터에서 JSTypedArray 길이를 추가하도록 v8의 업스트림에서 c281c15를 백포트했습니다. (Julien Gilli) #3031

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug에서 확인할 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • DNS 질의 진행 중에 호출된 dns.setServers()가 단언문 실패로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

Commits

  • [39b8730e8b] - async_wrap: ensure all objects have internal field (Trevor Norris) #3139
  • [99e66074d7] - async_wrap: update providers and add test (Trevor Norris) #3139
  • [7a58157d4e] - benchmark: update comment in common.js (Minwoo Jung) #2399
  • [9e9bfa4dc0] - build: iojs -> nodejs of release-urlbase (P.S.V.R) #3015
  • [8335ec7191] - build: fix some typos inside the configure script (P.S.V.R) #3016
  • [d6ac547d5d] - build,win: fix node.exe resource version (João Reis) #3053
  • [798dad24f4] - child_process: null channel handle on close (Fedor Indutny) #3041
  • [e5615854ea] - contextify: use CHECK instead of if (Oguz Bastemur) #3125
  • [f055a66a38] - crypto: enable FIPS only when configured with it (Fedor Indutny) #3153
  • [4c8d96bc30] - crypto: add more keylen sanity checks in pbkdf2 (Johann) #3029
  • [4c5940776c] - deps: upgrade libuv to 1.7.5 (Saúl Ibarra Corretgé) #3010
  • [5a9e795577] - deps: upgrade V8 to 4.5.103.35 (Ali Ijaz Sheikh) #3117
  • [925b29f959] - deps: backport f782159 from v8’s upstream (Ben Noordhuis) #3130
  • [039f73fa83] - deps: remove and gitignore .bin directory (Ben Noordhuis) #3004
  • [5fbb24812d] - deps: backport c281c15 from V8’s upstream (Julien Gilli) #3031
  • [6ee5d0f69f] - dns: add missing exports.BADNAME (Roman Reiss) #3051
  • [f92aee7170] - doc: fix outdated ‘try/catch’ statement in sync (Minwoo Jung) #3087
  • [c7161f39e8] - doc: add TSC meeting minutes 2015-09-16 (Rod Vagg) #3023
  • [928166c4a8] - doc: copyedit fs.watch() information (Rich Trott) #3097
  • [75d5dcea76] - doc: jenkins-iojs.nodesource.com -> ci.nodejs.org (Michał Gołębiowski) #2886
  • [5c3f50b21d] - doc: rearrange execSync and execFileSync (Laurent Fortin) #2940
  • [4fc33ac11a] - doc: make execFileSync in line with execFile (Laurent Fortin) #2940
  • [a366e84b17] - doc: fix typos in cluster & errors (reggi) #3011
  • [52031e1bf1] - doc: switch LICENSE from closure-linter to eslint (P.S.V.R) #3018
  • [b28f6a53bc] - docs: Clarify assert.doesNotThrow behavior (Fabio Oliveira) #2807
  • [99943e189d] - http: fix out-of-order ‘finish’ bug in pipelining (Fedor Indutny) #3128
  • [fb7a491d1c] - http_server: pause socket properly (Fedor Indutny) #3128
  • [a0b35bfcf3] - i18n: add caller to removal list for bidi in ICU55 (Michael Dawson) #3115
  • [ac2bce0b0c] - path: improve posixSplitPath performance (Evan Lucas) #3034
  • [37cdeafa2f] - smalloc: remove module (Brendan Ashworth) #3099
  • [5ec5d0aa8b] - src: internalize binding function property names (Ben Noordhuis) #3060
  • [c8175fc2af] - src: internalize per-isolate string properties (Ben Noordhuis) #3060
  • [9a593abc47] - src: include signal.h in util.h (Cheng Zhao) #3058
  • [fde0c6f321] - src: fix function and variable names in comments (Sakthipriyan Vairamani) #3039
  • [1cc7b41ba4] - stream_wrap: support empty TryWrites (Fedor Indutny) #3128
  • [9faf4c6fcf] - test: load common.js to test for global leaks (Rich Trott) #3095
  • [0858c86374] - test: fix invalid variable name (Sakthipriyan Vairamani) #3150
  • [1167171004] - test: change calls to deprecated util.print() (Rich Trott) #3083
  • [5ada45bf28] - test: replace deprecated util.debug() calls (Rich Trott) #3082
  • [d8ab4e185d] - util: optimize promise introspection (Ben Noordhuis) #3130

Windows 32-bit Installer: https://nodejs.org/dist/v4.1.2/node-v4.1.2-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v4.1.2/node-v4.1.2-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v4.1.2/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v4.1.2/win-x64/node.exe

Mac OS X 64-bit Installer: https://nodejs.org/dist/v4.1.2/node-v4.1.2.pkg

Mac OS X 64-bit Binary: https://nodejs.org/dist/v4.1.2/node-v4.1.2-darwin-x64.tar.gz

Linux 32-bit Binary: https://nodejs.org/dist/v4.1.2/node-v4.1.2-linux-x86.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v4.1.2/node-v4.1.2-linux-x64.tar.gz

SunOS 32-bit Binary: https://nodejs.org/dist/v4.1.2/node-v4.1.2-sunos-x86.tar.gz

SunOS 64-bit Binary: https://nodejs.org/dist/v4.1.2/node-v4.1.2-sunos-x64.tar.gz

ARMv6 32-bit Binary: https://nodejs.org/dist/v4.1.2/node-v4.1.2-linux-armv6l.tar.gz

ARMv7 32-bit Binary: https://nodejs.org/dist/v4.1.2/node-v4.1.2-linux-armv7l.tar.gz

ARMv8 64-bit Binary: https://nodejs.org/dist/v4.1.2/node-v4.1.2-linux-arm64.tar.gz

Source Code: https://nodejs.org/dist/v4.1.2/node-v4.1.2.tar.gz

Other release files: https://nodejs.org/dist/v4.1.2/

Documentation: https://nodejs.org/docs/v4.1.2/api/

Shasums (GPG signing hash: SHA512, file hash: SHA256):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

058a5b07c9bda34074f4acad75ce03319402592a0482221f574e2fc4aed60131 node-v4.1.2-darwin-x64.tar.gz
ea5495dab4139c291ecec2cfd618adea14e7df6794ce60873db3783d5897f7fd node-v4.1.2-darwin-x64.tar.xz
e8e17c8dc5afbf42d9533b37d32d7b44f105c425f13be4840c9e20cfcd251e78 node-v4.1.2-headers.tar.gz
33651643226584cc83753633a61ad83e02ba399537e428468b793e06f1f3a188 node-v4.1.2-headers.tar.xz
ae74c245b9592d52f8632a249a0bdd2eb664dcf7aaf5089d061f9c5b051f101a node-v4.1.2-linux-arm64.tar.gz
5a805fb6e3f3650c2048ac4eafb7654df12b34f1bcc94bd58ad93fc015ded9da node-v4.1.2-linux-arm64.tar.xz
834b36fa7e397f27f63f8fd56b77c15de4d9297c23f70679d0ceabd83662d950 node-v4.1.2-linux-armv6l.tar.gz
32f0958afef2ebeb390a10e9e5e12a99ddba41a8cd17ad26038a8b27fd2e26d1 node-v4.1.2-linux-armv6l.tar.xz
a8e38b1fae35c9b13f0c8cc57991d20a0267603c820028290236508930a522b0 node-v4.1.2-linux-armv7l.tar.gz
d1fccdbedd27ab77aed20861f2dc0dcefb91512f198957ef9574bfe8d9329a0e node-v4.1.2-linux-armv7l.tar.xz
c39aefac81a2a4b0ae12df495e7dcdf6a8b75cbfe3a6efb649c8a4daa3aebdb6 node-v4.1.2-linux-x64.tar.gz
b2d072cf2c87e368ae41931e8ef855d825d66a39f3092cd61e7e60123ad1b471 node-v4.1.2-linux-x64.tar.xz
843599c40d3aabb1f60e33144647e6ead92bcfcefa7efca8396651ab92b5f3b9 node-v4.1.2-linux-x86.tar.gz
4429573a7d26b4103c92f06a4a1384a0ad9476baffdfb081434f95248e1cfe41 node-v4.1.2-linux-x86.tar.xz
d1e6e59bea645b4de42ca0b45f302eea32b0af55bccd7fee8da112eaebf6f221 node-v4.1.2.pkg
5a783eb6b4feaee29f447fe6ea4bfd1b745bee2f00b48d5bbb78f6a2a6488e59 node-v4.1.2-sunos-x64.tar.gz
9c6a3361deddf0712a87a751f679425451692453c407dba75618cf3c789ef637 node-v4.1.2-sunos-x64.tar.xz
33719d820fca0a0b44f55ecb9d9de0ce8359211a98d802a3191dfb4e0e5f2c5c node-v4.1.2-sunos-x86.tar.gz
a09199e3383d855b84033c7441b19dae93172dbd1dd49505df8464f8aefa0005 node-v4.1.2-sunos-x86.tar.xz
febec3703a3fea9b64c46100a7b6a4408250027aa8259a2a815fd2275d502c49 node-v4.1.2.tar.gz
443c8251e812b1f2c4b3e9152a47df23c55567ade739e017e2c0ca0869b71e74 node-v4.1.2.tar.xz
9dce96b418ee81f4552601e936312a503d8f17a6ef34936fb562f6653a933071 node-v4.1.2-x64.msi
18f003ffb82b832c39eb94d5e167c4b0e965e4a28fefda909871375b43a6d94b node-v4.1.2-x86.msi
f80b66e561125ec54f3ac3ad4098847581493ae1be850eceadc3255b5f5ed843 win-x64/node.exe
64f2738aef37a64356c290dd23b72a4171eafb9bec2c2f57208fa7638a06120b win-x64/node.lib
e1fddb067d39edcbe187b3dfd276bb89cb5282d21f2eda7331b46005561ffa0f win-x86/node.exe
80ba09d65813acebf005102ed5cd52a020ec0fbdef09928f3a3667c25cdfab47 win-x86/node.lib
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJWEu1KAAoJEMJzeS99g1RdSpsIALZ4L9a6jqUmpfig5tNGd8++
IlzCDYIqKkrN570V12rMpmFLSRKnE8kl08t0fcy4XbLCBpBYVoIlF5aztUHEjgSz
O2NijWuvygN2rpQWNMKoa0/a3enN5WeduRTm7/0pJvThy1k79tYNA2ti/7aMt554
zlnXxTWYoimz/trfl9ZSBOGKY3Qv8EecKhMw4D2PuTXrUYsOR1GdJikj4nwVgGpo
X+T+h2/yoCcxgCVcruckcmJOYMqKRuu+p5EvtRxycgC5ja7/2XrM/ywgJ33VcJXL
ETnnmI3fSDhXKo9JdAA4mtHMLeIBHUjMu253Dyq1NmbUrEcONF6TBMhuPTM4PwI=
=SCKn
-----END PGP SIGNATURE-----

Node.js 주간 뉴스 2015년 10월 2일

Node.js 뉴스 — 10월 2일

Node.js v4.1.2 릴리스 제안

Node.js v4.1.2 릴리스 제안

이번 주에는 Node.js v4.1.2 릴리스 제안이 있었습니다. 이전 버전의 전체 변경사항은 GitHub에서 확인할 수 있습니다.

Node.js v4.1.2 주요 변경사항

  • buffer: v4.1.0에서 길이가 0인 버퍼를 새로 생성하면 JavaScript TypedArray의 다음 할당이 0으로 채워지지 않는 버그를 수정했습니다. 이 버그로 인해 TypedArray는 항상 0으로 채워져야 한다는 일반적인 보안 가정이 깨짐으로써 특정 상황에서 TypedArray의 메모리 공간을 재사용하게 되어 데이터 유출이 발생할 수 있습니다. (Trevor Norris) #2931.
  • http: response.addTrailers()로 마지막에 추가한 HTTP 헤더의 값에서 줄 바꿈([\r\n]) 문자를 제거해서 응답을 나누지 않도록 했습니다. 표준 헤더의 값은 이미 줄 바꿈 문자가 제거되어 있습니다. 추가 헤더를 사용하는 경우는 드물어서 보안에 주는 영향은 낮습니다. (Ben Noordhuis) #2945.
  • npm: npm 2.14.3에서 2.14.4로 업그레이드 했습니다. 자세한 내용은 릴리스 노트를 참고하세요. (Kat Marchán) #2958
    • 여러 의존성이 더는 몽키패치를 한 fs에 의존하지 않도록 graceful-fs를 업그레이드 했습니다.
    • Node의 사전 릴리스와 RC 빌드를 위해 npm link를 수정했습니다.
  • v8: 다음을 찾아서 검사하는 포스트-모템 디버그 도구를 사용할 수 있도록 포스트-모템 메타데이터를 업데이트했습니다.
    • 딕셔너리 프로퍼티를 사용하는 자바스크립트 객체 (Julien Gilli) #2959
    • 클로저에 대한 정보를 가진 ScopeInfo (Julien Gilli) #2974

Node.js Help 저장소

Node.js Help가 열렸습니다. Node와 관련해서 도움이 필요하다면 언제든 질문하세요. 다른 사람의 문제를 돕고 싶다면 올라온 질문에 답변하시면 됩니다.

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug에서 확인할 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • DNS 질의 진행 중에 호출된 dns.setServers()가 단언문 실패로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

보안 업데이트

커뮤니티 업데이트

Node.js나 io.js에 관한 글을 쓰거나 발견했다면, Evangelism 팀 저장소에 와서 이슈 페이지에 주간 업데이트 이슈로 알려주세요.

다가오는 이벤트

  • Node.js Italian Conference 입장권을 판매하고 있습니다. 10월 10일 이탈리아 Brescia의 Desenzano에서 열립니다.
  • JSConf CO가 10월 16일부터 17일까지 콜롬비아 Medellin의 Ruta N에서 열립니다.
  • EmpireNode, 10월 23일 미국 뉴욕에서 열립니다.
  • NodeFest, 11월 7일 일본 도쿄에서 열립니다.
  • Nodevember가 11월 14일부터 15일까지 미국 Tennessee의 Nashville에서 열립니다.
  • NodeConf Barcelona, 11월 21일 스페인 바르셀로나에서 열립니다.
  • CampJS VI, 11월 20일부터 23일까지 오스트레일리아 퀸즐랜드에서 열립니다.
  • Playnode 발표자를 모집하고 있습니다. 대한민국에서 11월에 열립니다.
  • Node.js Interactive, 12월 8일부터 9일까지 미국 포틀랜드에서 열립니다.

Node.js와 io.js의 다가오는 이벤트를 계획하고 있나요? Evangelism 팀 저장소이슈 페이지의 주간 업데이트 이슈를 통해 알릴 수 있습니다.

Node v4.1.1 (안정 버전)

이번 릴리스에는 사소한 보안 수정사항이 포함되어 있습니다. 현재 v4.1.0을 사용하고 있다면 4.1.1로 업그레이드 하기를 권장합니다.

주요 변경 사항

  • buffer: v4.1.0에서 길이가 0인 버퍼를 새로 생성하면 JavaScript TypedArray의 다음 할당이 0으로 채워지지 않는 버그를 수정했습니다. 이 버그로 인해 TypedArray는 항상 0으로 채워져야 한다는 일반적인 보안 가정이 깨짐으로써 특정 상황에서 TypedArray의 메모리 공간을 재사용하게 되어 데이터 유출이 발생할 수 있습니다. (Trevor Norris) #2931.
  • http: response.addTrailers()로 마지막에 추가한 HTTP 헤더의 값에서 줄 바꿈([\r\n]) 문자를 제거해서 응답을 나누지 않도록 했습니다. 표준 헤더의 값은 이미 줄 바꿈 문자가 제거되어 있습니다. 추가 헤더를 사용하는 경우는 드물어서 보안에 주는 영향은 낮습니다. (Ben Noordhuis) #2945.
  • npm: npm 2.14.3에서 2.14.4로 업그레이드 했습니다. 자세한 내용은 릴리스 노트를 참고하세요. (Kat Marchán) #2958
    • 여러 의존성이 더는 몽키패치를 한 fs에 의존하지 않도록 graceful-fs를 업그레이드 했습니다.
    • Node의 사전 릴리스와 RC 빌드를 위해 npm link를 수정했습니다.
  • v8: 다음을 찾아서 검사하는 포스트-모템 디버그 도구를 사용할 수 있도록 포스트-모템 메타데이터를 업데이트했습니다.
    • 딕셔너리 프로퍼티를 사용하는 자바스크립트 객체 (Julien Gilli) #2959
    • 클로저에 대한 정보를 가진 ScopeInfo (Julien Gilli) #2974

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug에서 확인할 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • DNS 질의 진행 중에 호출된 dns.setServers()가 단언문 실패로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

Commits

  • [d63e02e08d] - buffer: don’t set zero fill for zero-length buffer (Trevor Norris) #2931
  • [5905b14bff] - build: fix icutrim when building small-icu on BE (Stewart Addison) #2602
  • [f010cb5d96] - configure: detect mipsel host (Jérémy Lal) #2971
  • [b93ad5abbd] - deps: backport 357e6b9 from V8’s upstream (Julien Gilli) #2974
  • [8da3da4d41] - deps: backport ff7d70b from V8’s upstream (Julien Gilli) #2959
  • [2600fb8ae6] - deps: upgraded to node-gyp@3.0.3 in npm (Kat Marchán) #2958
  • [793aad2d7a] - deps: upgrade to npm 2.14.4 (Kat Marchán) #2958
  • [43e2b7f836] - doc: remove usage of events.EventEmitter (Sakthipriyan Vairamani) #2921
  • [9c59d2f16a] - doc: remove extra using v8::HandleScope statement (Christopher J. Brody) #2983
  • [f7edbab367] - doc: clarify description of assert.ifError() (Rich Trott) #2941
  • [b2ddf0f9a2] - doc: refine process.kill() and exit explanations (Rich Trott) #2918
  • [f68fed2e6f] - http: remove redundant code in _deferToConnect (Malcolm Ahoy) #2769
  • [f542e74c93] - http: guard against response splitting in trailers (Ben Noordhuis) #2945
  • [bc9f629387] - http_parser: do not dealloc during kOnExecute (Fedor Indutny) #2956
  • [1860e0cebd] - lib,src: remove usage of events.EventEmitter (Sakthipriyan Vairamani) #2921
  • [d4cd5ac407] - readline: fix tab completion bug (Matt Harrison) #2816
  • [9760e04839] - repl: don’t use tty control codes when $TERM is set to “dumb” (Salman Aljammaz) #2712
  • [cb971cc97d] - repl: backslash bug fix (Sakthipriyan Vairamani) #2968
  • [2034f68668] - src: honor –abort_on_uncaught_exception flag (Evan Lucas) #2776
  • [0b1ca4a9ef] - src: Add ABORT macro (Evan Lucas) #2776
  • [4519dd00f9] - test: test sync version of mkdir & rmdir (Sakthipriyan Vairamani) #2588
  • [816f609c8b] - test: use tmpDir instead of fixtures in readdir (Sakthipriyan Vairamani) #2587
  • [2084f52585] - test: test more http response splitting scenarios (Ben Noordhuis) #2945
  • [fa08d1d8a1] - test: add test-spawn-cmd-named-pipe (Alexis Campailla) #2770
  • [71b5d80682] - test: make cluster tests more time tolerant (Michael Dawson) #2891
  • [3e09dcfc32] - test: update cwd-enoent tests for AIX (Imran Iqbal) #2909
  • [6ea8ec1c59] - tools: single, cross-platform tick processor (Matt Loring) #2868

Windows 32-bit Installer: https://nodejs.org/dist/v4.1.1/node-v4.1.1-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v4.1.1/node-v4.1.1-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v4.1.1/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v4.1.1/win-x64/node.exe

Mac OS X 64-bit Installer: https://nodejs.org/dist/v4.1.1/node-v4.1.1.pkg

Mac OS X 64-bit Binary: https://nodejs.org/dist/v4.1.1/node-v4.1.1-darwin-x64.tar.gz

Linux 32-bit Binary: https://nodejs.org/dist/v4.1.1/node-v4.1.1-linux-x86.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v4.1.1/node-v4.1.1-linux-x64.tar.gz

SunOS 32-bit Binary: https://nodejs.org/dist/v4.1.1/node-v4.1.1-sunos-x86.tar.gz

SunOS 64-bit Binary: https://nodejs.org/dist/v4.1.1/node-v4.1.1-sunos-x64.tar.gz

ARMv6 32-bit Binary: https://nodejs.org/dist/v4.1.1/node-v4.1.1-linux-armv6l.tar.gz

ARMv7 32-bit Binary: https://nodejs.org/dist/v4.1.1/node-v4.1.1-linux-armv7l.tar.gz

ARMv8 64-bit Binary: https://nodejs.org/dist/v4.1.1/node-v4.1.1-linux-arm64.tar.gz

Source Code: https://nodejs.org/dist/v4.1.1/node-v4.1.1.tar.gz

Other release files: https://nodejs.org/dist/v4.1.1/

Documentation: https://nodejs.org/docs/v4.1.1/api/

Shasums (GPG signing hash: SHA512, file hash: SHA256):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

b7e72bf8364c35992a8bebc57bf68c596d622c33d409c0943bf7d24ca7205c76 node-v4.1.1-darwin-x64.tar.gz
ce887b8c4d38fc269d22c072224a13c686445ea4c84ee506d4edd27de169c34c node-v4.1.1-darwin-x64.tar.xz
d134614e78cfc406611e366c9618704a47c2ee1bf60f0a11909ba84d8b2a9e28 node-v4.1.1-headers.tar.gz
9edcf9fd5c79a3696faef185bc2e9ee51c709dda2381b1bc6deb49f240897e5d node-v4.1.1-headers.tar.xz
b2e1915a0c65dd9faee7f05a56792371958980e02d1f7cde447c8260bb805052 node-v4.1.1-linux-arm64.tar.gz
63b4705f3ae5ee9f97b319dbc68463c12478fbcfc1bdf654f760a2e5bea565e8 node-v4.1.1-linux-arm64.tar.xz
ca38cef96180916891a262bbb39f335eaa8de6c0c06933609f4f3d7bebdc94b5 node-v4.1.1-linux-armv6l.tar.gz
06eff36b1f65b917ddedd2d6143d56ccc509518ac7cace6375011e2c5a40c226 node-v4.1.1-linux-armv6l.tar.xz
2896f0ab7c53bb7b489a09f7344e059f898ae929c2a9bfb7dfce85a5846ab9d2 node-v4.1.1-linux-armv7l.tar.gz
a88e19a3f6be90c7f93b890b3ef2e91f9563ab0b270f619b0fb78c773771c0af node-v4.1.1-linux-armv7l.tar.xz
f5f7e11a503c997486d50d8683741a554bdda1d1181125a05ac5844cb29d1572 node-v4.1.1-linux-x64.tar.gz
ffd058c4742c0525cc9d59069f29768096caac6d8d7eac2300d486a7f2d8122e node-v4.1.1-linux-x64.tar.xz
3f9836b8a7e6e3d6591af6ef59e6055255439420518c3f77e0e65832a8486be1 node-v4.1.1-linux-x86.tar.gz
dc2813fcf233d5fd8a375839757a0225748cf65f3d1027cab6188cd9e99897cf node-v4.1.1-linux-x86.tar.xz
1d7ee48a3d66d895692ca8085470358306eb11f398564834c3030cf3fe9f77e0 node-v4.1.1.pkg
e1e991519f4147ccef0c1816d26905ccf0a0be094af08d302a63e1025a7369df node-v4.1.1-sunos-x64.tar.gz
6b0d3278bba8313c7894cf55b755556c549651d0027a3a735114fb99b3afa148 node-v4.1.1-sunos-x64.tar.xz
915ec11b4a64becd817a810b7d8ecb426da3c52465d3ac3dfae50b53ad1ea28c node-v4.1.1-sunos-x86.tar.gz
ef71fbfa086a5d6929f8a7cac0addb99d9c4f5a1f9caa889aecb1e5a980b4449 node-v4.1.1-sunos-x86.tar.xz
6a610935ff52de713cf2af6a26002322e24fd7933a444436f0817a2b84e15a58 node-v4.1.1.tar.gz
f7ca9ceb0b7cc49b12f28a652c908a1f0ffbf34cec73ad0805fe717b14996bb9 node-v4.1.1.tar.xz
04b65daa09c1daff6d0a4101a3256d18eb9d5b50ba3ba49184b5b032dd9a4c06 node-v4.1.1-x64.msi
e73db653f543e3f6bcd28451d82e491064405b70546849579b31587f74b1a504 node-v4.1.1-x86.msi
9e985444df6374fb9efaa8c43630a26ca4fc77dcdcb5564abf7c30a62033dd53 win-x64/node.exe
e416599fb719d32d88e5e1abb27d1225c65bea452d8f11d1608e6a2c91c7695c win-x64/node.lib
8fe8b23e11e6356b6ab50f18060939c3e7a9f56d8ca2189fc556c8185f1a5083 win-x86/node.exe
e2a6a441e26cd60043f7537552fd10a3f678bc9265af539256410c6da2a0e9b4 win-x86/node.lib
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJWA1eGAAoJEMJzeS99g1Rd/uMH+wT/zvf2BLZjyd95XvmgZ3yx
nCwZjGRLUfsMPd9Hk5x0D6Wpjq7hpIcN06W3ea6t7zgiZ/yCHBRfZ8KZHUkHP+Tm
/yNQwpZajEIL1RGssx/Wm1VMB3sysAl3RZ665OtvpuBgQ0w6PKNqB+WJG8G/1GSd
lB1sVYCq+CagjknPUMM+tYnxGDzSnJRcKdGI3DVvAu57AHdsYmuEfVxic2jRF1m+
yB2ncABRXYqcELt6U293B82Lr3zBYUd8gcBd2VzgOUSmMZh0YlqgPKt2Ll5/fEnY
fe3ditIQsQTiWtKzXr++Hd9iD2B+ppL3XBbiDByKFznIHg4BR61l8OuotHoL334=
=Oh4x
-----END PGP SIGNATURE-----

Node.js 주간 뉴스 2015년 9월 18일

Node.js 뉴스 — 9월 18일

Node.js v4.1.1이 배포되었습니다.

Node.js v4.1.1 릴리스

이번 주에는 Node.js v4.1.1 릴리스가 있었습니다. 이전 버전의 전체 변경사항은 GitHub에서 확인할 수 있습니다.

Node.js v4.1.1 주요 변경사항

  • buffer: v4.1.0에서 길이가 0인 버퍼를 새로 생성하면 JavaScript TypedArray의 다음 할당이 0으로 채워지지 않는 버그를 수정했습니다. 이 버그로 인해 TypedArray는 항상 0으로 채워져야 한다는 일반적인 보안 가정이 깨짐으로써 특정 상황에서 TypedArray의 메모리 공간을 재사용하게 되어 데이터 유출이 발생할 수 있습니다. (Trevor Norris) #2931.
  • http: response.addTrailers()로 마지막에 추가한 HTTP 헤더의 값에서 줄 바꿈([\r\n]) 문자를 제거해서 응답을 나누지 않도록 했습니다. 표준 헤더의 값은 이미 줄 바꿈 문자가 제거되어 있습니다. 추가 헤더를 사용하는 경우는 드물어서 보안에 주는 영향은 낮습니다. (Ben Noordhuis) #2945.
  • npm: npm 2.14.3에서 2.14.4로 업그레이드 했습니다. 자세한 내용은 릴리스 노트를 참고하세요. (Kat Marchán) #2958
    • 여러 의존성이 더는 몽키패치를 한 fs에 의존하지 않도록 graceful-fs를 업그레이드 했습니다.
    • Node의 사전 릴리스와 RC 빌드를 위해 npm link를 수정했습니다.
  • v8: 다음을 찾아서 검사하는 포스트-모템 디버그 도구를 사용할 수 있도록 포스트-모템 메타데이터를 업데이트했습니다.
    • 딕셔너리 프로퍼티를 사용하는 자바스크립트 객체 (Julien Gilli) #2959
    • 클로저에 대한 정보를 가진 ScopeInfo (Julien Gilli) #2974

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug에서 확인할 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • DNS 질의 진행 중에 호출된 dns.setServers()가 단언문 실패로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

커뮤니티 업데이트

Node.js나 io.js에 관한 글을 쓰거나 발견했다면, Evangelism 팀 저장소에 와서 이슈 페이지에 주간 업데이트 이슈로 알려주세요.

다가오는 이벤트

  • Node.js Italian Conference 입장권을 판매하고 있습니다. 10월 10일 이탈리아 Brescia의 Desenzano에서 열립니다.
  • JSConf CO가 10월 16일부터 17일까지 콜롬비아 Medellin의 Ruta N에서 열립니다.
  • EmpireNode, 10월 23일 미국 뉴욕에서 열립니다.
  • NodeFest, 11월 7일 일본 도쿄에서 열립니다.
  • Nodevember가 11월 14일부터 15일까지 미국 Tennessee의 Nashville에서 열립니다.
  • NodeConf Barcelona, 11월 21일 스페인 바르셀로나에서 열립니다.
  • Node.js Interactive, 12월 8일부터 9일까지 미국 포틀랜드에서 열립니다.

Node.js와 io.js의 다가오는 이벤트를 계획하고 있나요? Evangelism 팀 저장소이슈 페이지의 주간 업데이트 이슈를 통해 알릴 수 있습니다.

Node v4.1.0 (안정 버전)

2015-09-17, 4.1.0 (안정 버전), @Fishrock123

주요 변경 사항

  • buffer:
    • 버퍼는 이제 C++가 아닌 자바스크립트에서 만들어집니다. 이 변경은 버퍼의 생성 속도를 향상시킵니다. (Trevor Norris) #2866.
    • Buffer#slice()는 현재 slice()의 성능을 높이기 위해 내부적으로 Uint8Array#subarray()를 사용합니다. (Karl Skomski) #2777.
  • fs:
    • fs.utimes()는 숫자 문자열과 NaN, Infinity를 적절히 변환합니다. (Yazhong Liu) #2387.
    • fs.WriteStream에 매우 빠른 대용량 쓰기를 허용하는 _writev를 구현했습니다. (Ron Korving) #2167.
  • http: http.request()를 사용할 때 에러를 유발하는 write()의 정확한 크기에 관한 문제를 수정했습니다. (Fedor Indutny) #2824.
  • npm: 2.14.3 버전으로 업그레이드했습니다, 자세한 사항은 https://github.com/npm/npm/releases/tag/v2.14.3을 참조하세요. (Kat Marchán) #2822.
  • src: V8 cpu 정보 수집은 대기 상태일 때 더 이상 잘못 표기되지 않습니다. (Oleksandr Chekhovskyi) #2324.
  • timers: #ref()#unref()는 그들이 속한 타이머를 반환합니다. (Sam Roberts) #2905.
  • v8: 4.5.103.30에서 4.5.103.33으로 사소한 수정사항을 포함한 업그레이드가 있었습니다. (Ali Ijaz Sheikh) #2870.
    • 일부 계산된 객체의 단축 속성이 제대로 작동하지 않는 이전에 알려진 오류를 수정했습니다. (#2507).

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug에서 확인할 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • DNS 질의 진행 중에 호출된 dns.setServers()가 단언문 실패로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

Commits

  • [b1abe812cd] - Working on 4.0.1 (Rod Vagg)
  • [f9f8378853] - 2015-09-08, Version 4.0.0 (Stable) Release (Rod Vagg)
  • [9683e5df51] - bindings: close after reading module struct (Fedor Indutny) #2792
  • [4b4cfa2d44] - buffer: always allocate typed arrays outside heap (Trevor Norris) #2893
  • [7df018a29b] - buffer: construct Uint8Array in JS (Trevor Norris) #2866
  • [43397b204e] - (SEMVER-MINOR) build: Updates to enable AIX support (Michael Dawson) #2364
  • [e35b1fd610] - build: clean up the generated tap file (Sakthipriyan Vairamani) #2837
  • [96670ebe37] - deps: backport 6d32be2 from v8’s upstream (Michaël Zasso) #2916
  • [94972d5b13] - deps: backport 0d01728 from v8’s upstream (Fedor Indutny) #2912
  • [7ebd881c29] - deps: upgrade V8 to 4.5.103.33 (Ali Ijaz Sheikh) #2870
  • [ed47ab6e44] - deps: upgraded to node-gyp@3.0.3 in npm (Kat Marchán) #2822
  • [f4641ae875] - deps: upgrade to npm 2.14.3 (Kat Marchán) #2822
  • [8119693a3d] - deps: update libuv to version 1.7.4 (Saúl Ibarra Corretgé) #2817
  • [6098504685] - deps: cherry-pick 6da51b4 from v8’s upstream (Fedor Indutny) #2801
  • [bf42cc8dba] - doc: process exit event is not guaranteed to fire (Rich Trott) #2861
  • [bb0f869f67] - doc: remove incorrect reference to TCP in net docs (Sam Roberts) #2903
  • [302d59dce8] - doc: correct buffer.slice arg syntax (Sam Roberts) #2903
  • [74db9637b7] - doc: describe spawn option.detached (Sam Roberts) #2903
  • [a7bd897273] - doc: rename from iojs(1) to node(1) in benchmarks (Dmitry Vasilyev) #2884
  • [cd643d7c37] - doc: add missing backtick in buffer.markdown (Sven Slootweg) #2881
  • [e8a206e802] - doc: fix broken link in repl.markdown (Danny Nemer) #2827
  • [7ee36d61f7] - doc: fix typos in README (Ionică Bizău) #2852
  • [4d1ae26196] - doc: add tunniclm as a collaborator (Mike Tunnicliffe) #2826
  • [2d77d03643] - doc: fix two doc errors in stream and process (Jeremiah Senkpiel) #2549
  • [55ac24f721] - doc: fixed io.js references in process.markdown (Tristian Flanagan) #2846
  • [cd1297fb57] - doc: use “Calls” over “Executes” for consistency (Minwoo Jung) #2800
  • [d664b95581] - doc: use US English for consistency (Anne-Gaelle Colom) #2784
  • [82ba1839fb] - doc: use 3rd person singular for consistency (Anne-Gaelle Colom) #2765
  • [432cce6e95] - doc: describe process API for IPC (Sam Roberts) #1978
  • [1d75012b9d] - doc: fix comma splice in Assertion Testing doc (Rich Trott) #2728
  • [6108ea9bb4] - fs: consider NaN/Infinity in toUnixTimestamp (Yazhong Liu) #2387
  • [2b6aa9415f] - (SEMVER-MINOR) fs: implemented WriteStream#writev (Ron Korving) #2167
  • [431bf74c55] - http: default Agent.getName to ‘localhost’ (Malcolm Ahoy) #2825
  • [ea15d71c16] - http_server: fix resume after socket close (Fedor Indutny) #2824
  • [8e5843405b] - src: null env_ field from constructor (Trevor Norris) #2913
  • [0a5f80a11f] - src: use subarray() in Buffer#slice() for speedup (Karl Skomski) #2777
  • [57707e2490] - src: use ZCtxt as a source for v8::Isolates (Roman Klauke) #2547
  • [b0df2273ab] - src: fix v8::CpuProfiler idle sampling (Oleksandr Chekhovskyi) #2324
  • [eaa8e60b91] - streams: refactor LazyTransform to internal/ (Brendan Ashworth) #2566
  • [648c003e14] - test: use tmp directory in chdir test (Sakthipriyan Vairamani) #2589
  • [079a2173d4] - test: fix Buffer OOM error message (Trevor Norris) #2915
  • [52019a1b21] - test: fix default value for additional param (Sakthipriyan Vairamani) #2553
  • [5df5d0423a] - test: remove disabled test (Rich Trott) #2841
  • [9e5f0995bd] - test: split up internet dns tests (Rich Trott) #2802
  • [41f2dde51a] - test: increase dgram timeout for armv6 (Rich Trott) #2808
  • [6e2fe1c21a] - test: remove valid hostname check in test-dns.js (Rich Trott) #2785
  • [779e14f1a7] - test: expect error for test_lookup_ipv6_hint on FreeBSD (Rich Trott) #2724
  • [f931b9dd95] - (SEMVER-MINOR) timer: ref/unref return self (Sam Roberts) #2905
  • [59d03738cc] - tools: enable arrow functions in .eslintrc (Sakthipriyan Vairamani) #2840
  • [69e7b875a2] - tools: open test.tap file in write-binary mode (Sakthipriyan Vairamani) #2837
  • [ff6d30d784] - tools: add missing tick processor polyfill (Matt Loring) #2694
  • [519caba021] - tools: fix flakiness in test-tick-processor (Matt Loring) #2694
  • [ac004b8555] - tools: remove hyphen in TAP result (Sakthipriyan Vairamani) #2718
  • [ba47511976] - tsc: adjust TSC membership for IBM+StrongLoop (James M Snell) #2858
  • [e035266805] - win,msi: fix documentation shortcut url (Brian White) #2781

Windows 32-bit Installer: https://nodejs.org/dist/v4.1.0/node-v4.1.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v4.1.0/node-v4.1.0-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v4.1.0/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v4.1.0/win-x64/node.exe

Mac OS X 64-bit Installer: https://nodejs.org/dist/v4.1.0/node-v4.1.0.pkg

Mac OS X 64-bit Binary: https://nodejs.org/dist/v4.1.0/node-v4.1.0-darwin-x64.tar.gz

Linux 32-bit Binary: https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-x86.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-x64.tar.gz

SunOS 32-bit Binary: https://nodejs.org/dist/v4.1.0/node-v4.1.0-sunos-x86.tar.gz

SunOS 64-bit Binary: https://nodejs.org/dist/v4.1.0/node-v4.1.0-sunos-x64.tar.gz

ARMv6 32-bit Binary: https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-armv6l.tar.gz

ARMv7 32-bit Binary: https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-armv7.tar.gz

ARMv8 64-bit Binary: https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-arm64.tar.gz

Source Code: https://nodejs.org/dist/v4.1.0/node-v4.1.0.tar.gz

Other release files: https://nodejs.org/dist/v4.1.0/

Documentation: https://nodejs.org/docs/v4.1.0/api/

Shasums (GPG signing hash: SHA512, file hash: SHA256):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

ff1c4b13a10c0789709cd73980a496b27e434207802989377ec4cb56302a1ebc node-v4.1.0-darwin-x64.tar.gz
11d8d7367a7a7c91eb0ea7d8bdca7d24a9b944bf7a9c84389fbc3d3d35cb31a2 node-v4.1.0-darwin-x64.tar.xz
1ba579ead4cc6a70b1d74bbc3591ca9c9c46e4254ff6cebc9dedfaf98e1657aa node-v4.1.0-headers.tar.gz
550a3023531f8387dcd7b632ceda6b613e0464a78aba0c4ee30dcb69026829dd node-v4.1.0-headers.tar.xz
d27001f51d75c43cc1f444eab8aef0ced4ac4d162598be7eccf58790127e5368 node-v4.1.0-linux-arm64.tar.gz
8c0abe5f89ae9530751188cfef9640fa774c9812c15f7e168207d0adf51d8fff node-v4.1.0-linux-arm64.tar.xz
3b728cdb93d155cf532a8a7f57f5a86f6f67a73e57a7abe657ff88166995e99e node-v4.1.0-linux-armv7.tar.gz
3e1618a9c276fdcef45993ede68221667ef39c39356e8bc6f91c9ebf7310e8db node-v4.1.0-linux-armv7.tar.xz
7c6055e08127143d9a8f779aa56f3fe42035fff8843c2652b0b2726204556382 node-v4.1.0-linux-x64.tar.gz
0f062984d1f7ce40cd902120b40b916b50df8041adb851373dce178f5ea959a3 node-v4.1.0-linux-x64.tar.xz
2ceaf5e66993da50e4514ddc5c270dc15ee712d00c29a2108655d9d259b3b9bb node-v4.1.0-linux-x86.tar.gz
ac21e4c3628acfcd7df14cb4127691a4c55b9c7dbd5b1cba73c592f848e61cac node-v4.1.0-linux-x86.tar.xz
9df8830c12bd28a5c1a0e1355cad9f50546e40ce681061d62f7a16e351272764 node-v4.1.0.pkg
b9b176f4e54422ab73458dcc36eec34149ffb298a9f5a5aa042c4b7e59860113 node-v4.1.0-sunos-x64.tar.gz
dfdead90e1c0e9760aeef0acf198fd1450b9c2b7dd32b42bae6f9ee6e0046566 node-v4.1.0-sunos-x64.tar.xz
ed6c5163b3cb2e452e8e9bf4e3857af9e65eccd7fce0959fb97dcf03547c726a node-v4.1.0-sunos-x86.tar.gz
856e7478a237495ec1586054722b853a1b1f21dd29442fade9f8d2259967c214 node-v4.1.0-sunos-x86.tar.xz
453005f64ee529f7dcf1237eb27ee2fa2415c49f5c9e7463e8b71fba61c5b408 node-v4.1.0.tar.gz
2e153aaa72d73578e2ef68bd943e629904f00897769c2a2992ff4561d742772d node-v4.1.0.tar.xz
ebf934575177def034130e2adea292567956be7ef4ed6c11fe645bc59a6ace06 node-v4.1.0-x64.msi
4c6fae187c23b15ec1689d25ac0000d2902d8d5f6c64710ed4ad9e2166f6580f node-v4.1.0-x86.msi
95199ec14462edc982e01538d81ecd9af35ae3f9ef18c33be53102a5f93053e0 win-x64/node.exe
a00d40f053c7926f0999279c987cbd293a630853bb5565b0a07e61bece80fe34 win-x64/node.lib
62dca0c50648c3b87d9af1e469f290e82ab009f60892b164e1d1f6655c7310e3 win-x86/node.exe
6f84367eb539f230eef02714703d8a817b1c956ad302def07034f3cd310461df win-x86/node.lib
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJV+k2+AAoJEEX17r2BPa6OJjQP/1IAMo0X/9rSMwy8grbaj5Iy
E5sZTrTVZ7Xddzqu3c6zn/M9poK28aQUEPAkgXrICTXrmD6zM8In2wrmRMmcQkOn
iuS9rl7wsSLzfha2QnBbnl9XxEvSlf7csXsWuHKOk/MSPTqdowGbcWZhs2wsHpgX
Wv7yhaygvWZtboeZ3KTJsh48AcEru+Azm2jjU6/toBRCTTLWwXIYU8v1QdYhVVbM
A5nufi2tlpY4cBMZBOeEN/rFfCxoXvk8t0kR82qIGz28292p9anYt1I0MDMbK6Dq
N+ex02SQNcA+4+PMMBP5IyQXXIvi+jBzbDIxAHI/B3b+k5ZQXtV44sB+kiPS1H9Z
KHaC7ccom9Oo9lvU9KElTRJGD9JWdLvAENvsJO9CUFbR+NCcfk+amCcqK/UZxQeq
4s7cqnyM99oacX1fqqj+dMh8YxWB10lqz4ttdgkGX4yZtJQdp1OZ6F1NQuu839e7
TNUMa4MI0eZ/BjnocqlKnlCyMWQmWBPRIzfFXnRu+Q3Mq+3tpi6qKhE1Zda/E4Ow
+zUgRBDd94rE84rQNp9QLuEY0yhWWI2QQOOnBIRlfZPfDLcr12eSVm41yOYbL9pZ
wbF5+3DHMvjCC0IjcnFAja16joTps27eBsn2dNI72wyQod06W2qLZFS+Xt+AO6Tb
cFwYASzhWAmlr+3T6kFK
=VJ63
-----END PGP SIGNATURE-----

Node.js 재단이 새로운 릴리스에서 Node.js와 io.js를 하나의 코드로 합쳤다.

Node.js를 엔터프라이즈에서 사용하는 사람들에게 매력적이게 더 안정적이고 안전하면서 테스트 커버리지도 개선됨

샌프란시스코, 2015년 9월 14일 – 커뮤니티가 주도하고 기업들이 지원하는 컨소시엄으로 Node.js 플랫폼의 개발을 돕는 Node.js 재단에서 오늘 Node.js 4.0.0 버전을 발표했습니다. Node.js 재단의 방향성에 따라 하나의 코드로 합쳐진 Node.js 프로젝트와 io.js 프로젝트의 이번 릴리스에는 기록적인 수의 개인과 회사가 기여했습니다.

현재 Node.js는 매달 2백만 건 이상의 다운로드가 이뤄지고 200여 개국의 수만 개의 회사에서 사용되고 있습니다. 주요 안정성과 보안 업데이트 및 새로운 테스트 클러스터, ARM 프로세스의 지원과 장기 지원에 따라 Node.js v4는 Node.js를 사용하는 엔터프라이즈 사용자에게 JavaScript 프로그램을 실행하는 최신 프레임워크의 혁신이 되었습니다.

버전이 4.0.0이 된 것은 이번 버전이 io.js 3.0.0 버전의 주요 업데이트를 포함하고 있기 때문이고, 새로운 버전에는 현재 크롬 웹 브라우저가 사용하는 V8과 같은 버전인 V8 v4.5가 포함되어 있습니다. 이는 Node.js 사용자에게 많은 이점을 가져다주는데 블록 범위, 클래스, 타입을 가진 배열(Node의 Buffer는 이제 Uint8Array에 기반을 둡니다.), 제너레이터, 프로미스, 심볼, 템플릿 문자열, 컬렉션(Map, Set 등)을 포함해서 V8 v4.5에 새로 추가된 화살표 함수(arrow function) 등 새로운 ES6 기능이 기본적으로 활성화 되었다는 점이 주목할 부분입니다.

Node.js v4부터는 장기 지원(LTS)과 정기 릴리스 주기가 생겼습니다. 이제 릴리스 버전은 소프트웨어 라이브러리나 의존성의 버전 번호에 대한 명세인 유의적 버전 명세를 따르기 때문에 버그를 수정하고 기능을 추가함에 따라 부 버전과 수 버전을 올릴 것입니다. LTS는 장기적인 요구사항이 필요한 엔터프라이즈 사용자를 지원하고 Node.js가 계속해서 발전하도록 지속해서 혁신을 이뤄내고 V8 팀과 협업합니다.

“Node.js 재단아래 통합된 커뮤니티는 합쳐진 코드 기반에서 개발하면서 놀랍도록 진전했습니다.”이라고 Node.js 재단의 커뮤니티 관리자인 마이클 로저스가 얘기했습니다. “새로운 릴리스와 LTS 주기가 프로젝트의 혁신을 이뤄내면서 최신 JavaScript 기능을 도입하는 동시에, Node.js를 핵심 기술로 도입하는 엔터프라이즈 사용자가 증가함에 따라 필요해진 예측 가능한 장기적 안정성과 보안성의 요구도 만족하게 합니다.”

이번 업데이트에는 다음 사항도 포함되어 있습니다.

  • 안정성과 보안: IBM, NodeSource, StrongLoop 같은 핵심 Node.js 재단 회원사는 최신 릴리스에서 엔터프라이즈 환경에 강하게 집중된 부분에 기여했습니다. 이들의 기여로 최신 버전은 엔터프라이즈의 요구 사항에 맞게 더 안정적이면서 안전하게 만들어졌습니다.
  • 개선된 플랫폼 테스트 커버리지: RackSpace, DigitalOcean, Scaleway, ARM Holdings 같은 주요 파트너사의 도움으로 이번 릴리스에서는 플랫폼에서 추가적인 안정성을 만들어야 하는 주요 오픈 소스 프로젝트 중에서 가장 발전한 테스트 클러스터를 구축했습니다.
  • ARM 계열의 기본적인 지원: 테스트 인프라는 모든 주요 ARM 계열과 ARMv6, ARMv7, 서버 시장을 잠식하고 있는 새로운 64-bit ARMv8을 지원합니다. 엔터프라이즈에 준비된 애플리케이션이나 IoT 애플리케이션을 개발하기 위해 이러한 아키텍처를 사용해야 하는 개발자에게 훌륭한 런타임을 보장합니다.
  • 화살표 함수의 추가: Node.js v4는 io.js에서도 사용할 수 없었던 화살표 함수(arrow function)를 지원합니다.

Node.js 재단의 기술 결정 위원회(TSC)는 이제 15명이 되었고 40명의 핵심 커미터들과 커뮤니티에 기여하는 350여 명의 GitHub 조직 회원이 있습니다. Node.js 재단이라는 우산 아래 통합된 더 크고 활발한 커뮤니티 덕에 개발 단계와 릴리스 주기는 훨씬 더 빨라졌습니다. 다음 릴리스는 2015년이 지나기 전에 나올 것입니다. 프로젝트는 6개월마다 새로운 안정 버전을 릴리스를 위한 브랜치를 만들 것이고, 첫 안정 버전은 10월에 예정되어 있고 다음은 2016년 봄이 될 것입니다.

추가 자료

Node.js 재단에 대해서

Node.js 재단은 Node.js 플랫폼과 그 외 관련 모듈을 만들고 지원하는데 집중하는 협업 오픈 소스 프로젝트입니다. Node.js는 매달 2백만 건 이상의 다운로드가 이뤄지고 200여 개국의 수만개의 회사에서 사용되고 있고 엔터프라이즈 애플리케이션, 로봇, API 엔진, 클라우드 스택, 모바일 웹사이트의 모든 것을 운영하는 고성능, 저지연 애플리케이션의 런타임입니다. 재단은 플래티넘 회원사인 Famous, IBM, Intel, Joyent, Microsoft, PayPal과 골드 회원사인 GoDaddy, NodeSource, Modulus/Progress Software, 실버 회원사인 Apigee, Codefresh, DigitalOcean, Fidelity, Groupon, nearForm, npm, Sauce Labs, SAP, StrongLoop, YLD를 포함한 다양한 회사로 구성되었습니다! 참여하려면 http://nodejs.org를 방문하세요. Node.js 재단은 Linux 재단 산하의 협업 프로젝트(Collaborative Project)입니다. Linux 재단 협업 프로젝트는 협업 개발의 힘을 이용해 산업과 생태계 전반에 걸친 혁신을 돕기 위한 소프트웨어 프로젝트로 독립적으로 투자를 받습니다. https://nodejs.org/en/foundation/

Node.js Foundation은 Node.js 재단의 라이선스 마크입니다. Node.js는 Joyent, Inc의 등록 상표이고 Joyent의 허락을 받아 사용하고 있습니다.

미디어 연락처 Node.js 재단 Sarah Conway 978-578-5300 pr@nodejs.org

Node.js 주간 뉴스 2015년 9월 11일

Node.js 뉴스 — 9월 11일

Node.js v4.1.0과 io.js v3.3.1이 배포되었습니다.

Node.js v4.1.0과 io.js v3.3.1 릴리스

이번 주는 두 개의 릴리스가 있습니다. Node.js v4.1.0io.js v3.3.1이고, 이전 버전에서의 완전한 변경사항은 GitHub에서 확인할 수 있습니다.

Node.js v4.1.0 주요 변경사항

  • buffer:
    • 버퍼는 이제 C++가 아닌 자바스크립트에서 만들어집니다. 이 변경은 버퍼의 생성 속도를 향상시킵니다. (Trevor Norris) #2866.
    • Buffer#slice()는 현재 slice()의 성능을 높이기 위해 내부적으로 Uint8Array#subarray()를 사용합니다. (Karl Skomski) #2777.
  • fs:
    • fs.utimes()는 숫자 문자열과 NaN, Infinity를 적절히 변환합니다. (Yazhong Liu) #2387.
    • fs.WriteStream에 매우 빠른 대용량 쓰기를 허용하는 _writev를 구현했습니다. (Ron Korving) #2167.
  • http: http.request()를 사용할 때 특정 write() 크기들이 에러를 유발하는 문제를 수정했습니다. (Fedor Indutny) #2824.
  • npm: 2.14.3 버전으로 업그레이드 했습니다. 자세한 사항은 https://github.com/npm/npm/releases/tag/v2.14.3을 참조하세요. (Kat Marchán) #2822.
  • src: V8 cpu 정보 수집은 대기 상태일 때 더 이상 잘못 표기되지 않습니다. (Oleksandr Chekhovskyi) #2324.
  • timers: #ref()#unref()는 그들이 속한 타이머를 반환합니다. (Sam Roberts) #2905.
  • v8: 4.5.103.30에서 4.5.103.33으로 사소한 수정사항을 포함한 업그레이드가 있었습니다. (Ali Ijaz Sheikh) #2870.
    • 일부 계산된 객체의 단축 속성이 제대로 작동하지 않는 이전에 알려진 오류를 수정했습니다. (#2507).

io.js v3.3.1 주요 변경 사항

  • buffer: 종료를 유발했던 사소한 오류를 수정했습니다. (Michaël Zasso) #2635,
  • child_process: 종료를 유발했던 오류를 수정했습니다. (Evan Lucas) #2727
  • crypto: Windows XP / 2003에서 안전하지 않은 rwlocks를 대체했습니다. (Ben Noordhuis) #2723
  • libuv: 1.7.3에서 1.7.4로 업그레이드했습니다. (Saúl Ibarra Corretgé) #2817
  • node: 윈도우에서 흠이 있는 process.release.libUrl을 수정했습니다. (Rod Vagg) #2699
  • node-gyp: Node.js와 io.js의 v0.10에서 v4 이상의 버전까지의 지원을 향상하기 위해 v3.0.3를 유동적으로 설정했습니다. (Rod Vagg) #2700
  • npm: 2.13.3에서 2.14.3으로 보안 업데이트를 포함한 업그레이드를 했습니다. 더 자세한 사항은 https://github.com/npm/npm/releases/tag/v2.14.2를 참조하세요. (Kat Marchán) #2696.
  • timers: 0.12로 이식하면서 타이머의 성능 향상이 있었고, 사소한 수정사항도 포함 되어있습니다. (Jeremiah Senkpiel) #2540, (Julien Gilli) nodejs/node-v0.x-archive#8751 nodejs/node-v0.x-archive#8905

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug에서 확인할 수 있습니다.

  • 계산된 객체를 사용할 때 종종 일부 계산된 객체의 단축 속성이 현재 버전의 V8에서는 제대로 다뤄지지 않고 있습니다. 예를 들어 [{ [prop]: val }][{}]으로 인식되는 문제 등입니다. #2507
  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 멈출 수 있습니다. #690
  • DNS 질의 진행 중에 호출된 dns.setServers()가 실패한 단언문으로 프로세스의 충돌을 일으킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

Node.js 재단은 Node.js와 io.js를 새 릴리스에서 단일 코드 기반으로 합쳤습니다.

Node.js 재단은 Node.js의 새 릴리스 진입과 Node 재단을 소개하는 글을 게재했습니다. 자세한 사항은 여기를 참조하세요.

Node.js Interactive

Node.js Interactive는 Node.js를 위한 새롭고 정기적이며 벤더 중립적인 콘퍼런스입니다. 이 콘퍼런스는 새로운 형식으로 Node.js 재단을 이끌어갈 것입니다. Node.js Interactive(한국어)

커뮤니티 업데이트

  • LTS 빌드를 할 V8 메인테이너를 아직 구하고 있습니다! GitHub에서 요구사항을 확인하세요.
  • Raygun blog에 따르면 Node.js v4.0.0는 Node.js v0.12보다 8% 빠르다고 합니다.
  • 에반젤리즘 워킹 그룹 회원인 Tony Pujals가 Node.js v4.0.0으로의 진입이란 글을 게재했고, Node.js v4.0.0안의 ES6와 LTS, SemVer에 관해 이야기했습니다.

Node.js나 io.js에 관한 글을 쓰거나 발견했다면, Evangelism 팀 저장소에 와서 이슈 페이지에 주간 업데이트 이슈로 알려주세요.

다가오는 이벤트

  • Node.js Italian Conference 입장권을 판매하고 있습니다. 10월 10일 이탈리아 Brescia의 Desenzano에서 열립니다.
  • JSConf CO가 10월 16일부터 17일까지 Medellin의 Ruta N에서 열립니다.
  • EmpireNode, 10월 23일 미국 뉴욕에서 열립니다.
  • NodeFest, 11월 7일 일본 도쿄에서 열립니다.
  • Nodevember가 11월 14일부터 15일까지 미국의 Tennessee, Nashville에서 열립니다.
  • NodeConf Barcelona, 11월 21일 스페인 바르셀로나에서 열립니다.
  • Node.js Interactive, 12월 8일부터 9일까지 미국 포틀랜드에서 열립니다.

Node.js와 io.js의 다가오는 이벤트를 계획하고 있나요? Evangelism 팀 저장소이슈 페이지의 주간 업데이트 이슈를 통해 알릴 수 있습니다.

Node.js Interactive

Node.js Interactive를 맞이할 준비는 되셨나요?

Node.js 재단은 2015년 12월 8-9일, 오리건 주 포틀랜드에서 Node.js Interactive를 개최합니다. node.js가 광범위하게 성장함에 따라, 이 콘퍼런스는 빠른 웹 사이트와 실시간 애플리케이션의 효율적인 개발 방법부터 node.js 애플리케이션 관리를 위한 조언, 그 밖에 언급되지 않은 것까지 전반적으로 다루게 될 것입니다.

이번 행사는 Node.js 재단이 Linux 재단과 함께 협력한 첫 번째 일이 될 것입니다. 의도적으로 특정 벤더에 소속되지 않은 채, 이제는 합쳐진 node.js와 io.js 커뮤니티 간 오픈 거버넌스 협업의 이상을 이어나가는 데 집중할 것입니다. 콘퍼런스는 경력 개발자뿐만 아니라 IoT, 프론트엔드, 백엔드 기술에 초점을 맞춘 발표들을 자신의 사업에 어떻게 이용할 수 있을지 관심을 가진 사람들도 환영합니다. 이런 발표들을 모으고 참석자들에게 최상의 경험을 제공하기 위해서 발표 책임자는 잔뼈 굵은 베테랑들로 이루어져 있습니다.

  • Kassandra Perch, IoT 담당, 텍사스 오스틴에 사는 소프트웨어 개발자 / 에반젤리스트 / 지지자 / 교육자 / 로봇 기술자, @nodebotanist에서 팔로우.
  • Jessica Lord, 프론트엔드 담당, 오픈 소스, JavaScript, node.js, 튜더 영국의 이야기를 사랑하는 GitHub 개발자이자 디자이너, 포틀랜드 이주자.
  • C J Silvero, 백엔드 담당, 항상 node를 쓰고 샌프란시스코 베이 에어리어의 npm, Inc. 엔지니어링 책임자.

Node.js 커뮤니티가 성장함에 따라, Node.js 재단은 이번 행사가 엄청난 인기의 Node.js가 다음에는 어떻게 될지 이해하고 협업 개발을 이어나가는 최적의 장소가 될 것이라고 생각합니다. 우리와 함께 하고 싶은가요? 여기에서 등록하세요. 등록 시기에 따른 할인율은 다음과 같습니다.

  • 슈퍼 얼리 버드 - US$200, 첫 100장 한정
  • 얼리 버드 - US$325, 10월 17일에 종료
  • 표준 - US$425, 11월 21일에 종료
  • 늦은 구매, 현장 구매 - US$525, 11월 22일부터 시작

발표자가 되고 싶다면, 모집 공고 페이지를 참조하세요. 모집은 2015년 9월 24일에 종료됩니다.

Node v4.0.0 (안정 버전)

Node.js 프로젝트의 협력자와 Node.js 재단의 멤버는 v4.0.0을 공식적으로 릴리스하게 되어 자랑스럽습니다. 이제 하나의 코드로 합쳐진 Node.js와 io.js 프로젝트에서 이뤄진 수많은 시간의 고된 작업이 이번 릴리스에 담겨 있습니다. 현재 Node.js 프로젝트는 44명의 협력자로 운영되고 있고 그중의 15명은 기술 결정 위원회(Technical Steering Committee, TSC)입니다. 게다가 v0.12.7 이후 새로운 100여 명이 코드 기여 목록에 이름을 올렸습니다.

Node.js v4.0.0은 현재 크롬 웹 브라우저가 사용하는 V8과 같은 버전인 V8 v4.5를 사용합니다. 이로써 Node.js 사용자에게 많은 이점이 생겼는데 블록 범위, 클래스, 타입을 가진 배열(Node의 Buffer는 이제 Uint8Array에 기반을 둡니다.), 제너레이터, 프로미스, 심볼, 템플릿 문자열, 컬렉션(Map, Set 등)을 포함해서 V8 v4.5에 새로 추가된 화살표 함수(arrow function) 등 새로운 ES6 기능이 기본적으로 활성화 되었다는 점이 주목할 부분입니다.

지난 몇 년간 Rackspace, DigitalOcean, Scaleway, miniNodes, Voxer, Joyent, CloudFlare, ARM Holdings 같은 회사나 커뮤니티의 후원으로 고맙게도 다양한 Linux와 OS X, Windows, FreeBSD, SmartOS 등의 다양한 환경에서 놀라운 테스트 클러스터를 구축했습니다. 여기에 새로 ARM 프로세서도 기본으로 지원합니다. ARMv6, ARMv7와 새로운 64비트 ARMv8 프로세스에서도 테스트 슈트가 계속해서 통과해야 합니다. 이제 Node.js는 취미로 ARM을 쓰는 사람이나 ARM 서버 사용자들도 사용할 수 있게 되었습니다.

Node.js v4부터는 장기지원버전(LTS)와 정기 릴리스 주기가 생겼습니다. 이제 릴리스 버전은 SemVer를 따르기 때문에 버그를 수정하고 기능을 추가함에 따라 부 버전과 수 버전을 모두 올릴 것입니다. v4.x 브랜치에서는 호환성을 깨뜨리는 변경사항은 추가하지 않을 것입니다.

하지만 10월에 릴리스할 첫 LTS 버전에 첫 발걸음을 시작할 것입니다. 동시에 v5.x 브랜치를 새로 시작하고 v5.0.0으로 시작하는 새로운 안정 버전(Stable)의 릴리스를 사용 가능하게 할 것입니다. 이 브랜치에는 새로운 버전의 V8과 필요하다면 호환성이 없는 변경사항이 포함될 것입니다. v4.x 릴리스는 릴리스 이후 18개월 동안 LTS로 지원하면서 안정성과 보안에 집중하면서 새로운 기능은 추가하지 않을 것입니다. 18개월의 지원이 끝난 뒤 v4.x는 12개월 동안 추가로 치명적인 버그와 보안 수정사항에 집중하는 유지보수(Maintenance) 단계에 진입할 것입니다.

동시에 6개월마다 새로운 안정 버전의 브랜치를 만들어서 매년 4월과 10월에 릴리스할 예정입니다. 안정 버전은 계속해서 개발하면서 매주 혹은 격주로 부 버전과 수 버전을 올리면서 정기적인 릴리스를 할 계획입니다. 10월에 릴리스하는 두 번째 안정 버전 릴리스마다 LTS로 계속해서 지원할 것입니다. 즉, 전체 30개월(LTS와 유지보수 기간 포함) 동안 관심을 받으면서 1년 내내 관리되는 LTS 브랜치가 존재할 것입니다. 안정 버전과 LTS 주기를 통해 프로젝트가 계속해서 혁신을 이뤄내고 자랑스럽게 핵심기술로 Node.js를 도입하는 엔터프라이즈 사용자(일부는 이미 자신을 Node.js 재단의 멤버로 생각합니다.)가 늘어남에 따라 필요해진 예측 가능한 장기 안정성과 보안의 요구사항도 충족하면서 최신 자바스크립트를 사용할 수 있는 여유를 제공할 수 있다고 생각합니다.

모든 주요 릴리스가 항상 그렇듯이 Node.js v4의 도입에 문제가 없다고 생각하진 않습니다. 여기에는 시간이 걸릴 것이고 특히 새로운 버전의 V8을 따라잡아야 하는 컴파일된 애드온이라면 더욱 시간이 걸릴 것입니다.(힌트: 호환성 문제에 대한 공식적인 해결책은 NAN을 참고하세요.) 다행히도 애드온 작성자는 io.js v3.x 릴리스에서 Node.js v4에 대비할 수 있는 기회가 있었으므로 오늘날 npm 생태계는 꽤 많이 준비되어 있습니다.

v0.12와 v4 사이의 변경사항 목록은 LTS 위키에서 볼 수 있고 며칠 내에 반드시 알아야 하는 변경사항과 관련된 문서는 이 위키와 코어 위키에 모두 포함될 것입니다.

GitHub의 새로운 저장소(https://github.com/nodejs/node)에 버그를 보고하고, 핵심에 기여해 점점 늘어가는 협력자 명단에 이름을 올려보세요.

주요 변경 사항

이 변경사항은 마지막 io.js v3.x 릴리스인 v3.3.0에 관련된 것입니다. 0.12.x 이후의 전체 변경사항은 CHANGELOG에 정리된 v3.x, v2.x, v1.x 릴리스의 주요 변경사항 목록을 참고하길 바랍니다. 이번 릴리스의 호환성이 없는 주요 변경사항과 마찬가지로 v3.x의 일부 변경사항은 Node.js와 io.js 프로젝트가 완전히 합쳐지면서 필요한 변경사항으로 간주합니다.

  • child_process: ChildProcess.prototype.send()process.send()가 모든 플랫폼에서 비동기로 동작하므로 메시지를 보낸 후 호출될 선택적인 콜백 파라미터가 추가되었습니다. 예시: .send(message[, sendHandle][, callback]) (Ben Noordhuis) #2620.
  • node: “io.js” 코드를 “Node.js”로 변경했습니다. (cjihrig) #2367.
  • node-gyp: 이번 릴리스에는 갱신된 버전의 node-gyp가 포함되었습니다. 이번 node-gyp는 Node.js와 io.js의 모든 버전과 나이틀리와 릴리스 후보 빌드 모두에서 동작합니다. io.js v3와 Node.js v4부터 애드온을 빌드할 때 전체 소스를 다운로드 하지 않고 headers tarball만 다운로드 받습니다. (Rod Vagg) #2700
  • npm: 2.13.3에서 2.14.2 버전으로 업그레이드했습니다. (Kat Marchán) #2696.
  • timers: 0.12 구현을 포팅하고 일부 버그를 수정해서 timer의 성능이 개선되었습니다. (Jeremiah Senkpiel) #2540, (Julien Gilli) nodejs/node-v0.x-archive#8751 nodejs/node-v0.x-archive#8905
  • util: util.is*() 함수는 폐기 예정이므로 이번 릴리스부터는 문서에 폐기 경고를 표시하기 시작했습니다. 사용자는 npm 저장소에서 더 신뢰할 수 있는 대체제를 찾기를 권장합니다. (Sakthipriyan Vairamani) #2447.
  • v8: 4.4.63.30에서 4.5.103.30 버전으로 업그레이드했습니다. (Ali Ijaz Sheikh) #2632.

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug에서 확인할 수 있습니다.

  • 현재 버전의 V8에서는 계산된 객체의 축약 프로퍼티를 사용할 때 일부가 제대로 처리되지 않습니다. 예시로 [{ [prop]: val }][{}]로 평가됩니다. #2507
  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • DNS 질의 진행 중에 호출된 dns.setServers()가 assertion 실패로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

Commits

  • [4f50d3fb90] - (SEMVER-MAJOR) This commit sets the value of process.release.name to “node”. (cjihrig) #2367
  • [d3178d8b1b] - buffer: SlowBuffer only accept valid numeric values (Michaël Zasso) #2635
  • [0cb0f4a6e4] - build: fix v8_enable_handle_zapping override (Karl Skomski) #2731
  • [a7596d7efc] - build: remote commands on staging in single session (Rod Vagg) #2717
  • [be427e9efa] - build: make .msi install to “nodejs”, not “node” (Rod Vagg) #2701
  • [5652ce0dbc] - build: fix .pkg creation tooling (Rod Vagg) #2687
  • [101db80111] - build: add –enable-asan with builtin leakcheck (Karl Skomski) #2376
  • [2c3939c9c0] - child_process: use stdio.fd even if it is 0 (Evan Lucas) #2727
  • [609db5a1dd] - child_process: check execFile and fork args (James M Snell) #2667
  • [d010568c23] - (SEMVER-MAJOR) child_process: add callback parameter to .send() (Ben Noordhuis) #2620
  • [c60857a81a] - cluster: allow shared reused dgram sockets (Fedor Indutny) #2548
  • [b2ecbb6191] - contextify: ignore getters during initialization (Fedor Indutny) #2091
  • [3711934095] - cpplint: make it possible to run outside git repo (Ben Noordhuis) #2710
  • [03f900ab25] - crypto: replace rwlocks with simple mutexes (Ben Noordhuis) #2723
  • [847459c29b] - (SEMVER-MAJOR) crypto: show exponent in decimal and hex (Chad Johnston) #2320
  • [e1c976184d] - deps: improve ArrayBuffer performance in v8 (Fedor Indutny) #2732
  • [cc0ab17a23] - deps: float node-gyp v3.0.0 (Rod Vagg) #2700
  • [b2c3c6d727] - deps: create .npmrc during npm tests (Kat Marchán) #2696
  • [babdbfdbd5] - deps: upgrade to npm 2.14.2 (Kat Marchán) #2696
  • [155783d876] - deps: backport 75e43a6 from v8 upstream (again) (saper) #2692
  • [5424d6fcf0] - deps: upgrade V8 to 4.5.103.30 (Ali Ijaz Sheikh) #2632
  • [c43172578e] - (SEMVER-MAJOR) deps: upgrade V8 to 4.5.103.24 (Ali Ijaz Sheikh) #2509
  • [714e96e8b9] - deps: backport 75e43a6 from v8 upstream (saper) #2636
  • [8637755cbf] - doc: add TSC meeting minutes 2015-09-02 (Rod Vagg) #2674
  • [d3d5b93214] - doc: update environment vars in manpage and –help (Roman Reiss) #2690
  • [29f586ac0a] - doc: update url doc to account for escaping (Jeremiah Senkpiel) #2605
  • [ba50cfebef] - doc: reorder collaborators by their usernames (Johan Bergström) #2322
  • [8a9a3bf798] - doc: update changelog for io.js v3.3.0 (Rod Vagg) #2653
  • [6cd0e2664b] - doc: update io.js reference (Ben Noordhuis) #2580
  • [f9539c19e8] - doc: update changelog for io.js v3.2.0 (Rod Vagg) #2512
  • [cded6e7993] - doc: fix CHANGELOG.md on master (Roman Reiss) #2513
  • [93e2830686] - (SEMVER-MINOR) doc: document deprecation of util.is* functions (Sakthipriyan Vairamani) #2447
  • [7038388558] - doc,test: enable recursive file watching in Windows (Sakthipriyan Vairamani) #2649
  • [f3696f64a1] - events,lib: don’t require EE#listenerCount() (Jeremiah Senkpiel) #2661
  • [45a2046f5d] - (SEMVER-MAJOR) installer: fix installers for node.js rename (Frederic Hemberger) #2367
  • [7a999a1376] - (SEMVER-MAJOR) lib: add net.Socket#localFamily property (Ben Noordhuis) #956
  • [de88255b0f] - Revertlib,src: add unix socket getsockname/getpeername” (Ben Noordhuis) #2584
  • [f337595441] - (SEMVER-MAJOR) lib,src: add unix socket getsockname/getpeername (Ben Noordhuis) #956
  • [3b602527d1] - (SEMVER-MAJOR) node: additional cleanup for node rename (cjihrig) #2367
  • [a69ab27ab4] - (SEMVER-MAJOR) node: rename from io.js to node (cjihrig) #2367
  • [9358eee9dd] - node-gyp: float 3.0.1, minor fix for download url (Rod Vagg) #2737
  • [d2d981252b] - src: s/ia32/x86 for process.release.libUrl for win (Rod Vagg) #2699
  • [eba3d3dccd] - src: use standard conform snprintf on windows (Karl Skomski) #2404
  • [cddbec231f] - src: fix buffer overflow for long exception lines (Karl Skomski) #2404
  • [dd3f3417c7] - src: re-enable fast math on arm (Michaël Zasso) #2592
  • [e137c1177c] - (SEMVER-MAJOR) src: enable vector ics on arm again (Ali Ijaz Sheikh) #2509
  • [7ce749d722] - src: replace usage of v8::Handle with v8::Local (Michaël Zasso) #2202
  • [b1a2d9509f] - src: enable v8 deprecation warnings and fix them (Ben Noordhuis) #2091
  • [808de0da03] - (SEMVER-MAJOR) src: apply debug force load fixups from 41e63fb (Ali Ijaz Sheikh) #2509
  • [5201cb0ff1] - src: fix memory leak in ExternString (Karl Skomski) #2402
  • [2308a27c0a] - src: only set v8 flags if argc > 1 (Evan Lucas) #2646
  • [384effed20] - test: fix use of common before required (Rod Vagg) #2685
  • [f146f686b7] - (SEMVER-MAJOR) test: fix test-repl-tab-complete.js for V8 4.5 (Ali Ijaz Sheikh) #2509
  • [fe4b309fd3] - test: refactor to eliminate flaky test (Rich Trott) #2609
  • [619721e6b8] - test: mark eval_messages as flaky (Alexis Campailla) #2648
  • [93ba585b66] - test: mark test-vm-syntax-error-stderr as flaky (João Reis) #2662
  • [367140bca0] - test: mark test-repl-persistent-history as flaky (João Reis) #2659
  • [f6b093343d] - timers: minor _unrefActive fixes and improvements (Jeremiah Senkpiel) #2540
  • [403d7ee7d1] - timers: don’t mutate unref list while iterating it (Julien Gilli) #2540
  • [7a8c3e08c3] - timers: Avoid linear scan in _unrefActive. (Julien Gilli) #2540
  • [b630ebaf43] - win,msi: Upgrade from old upgrade code (João Reis) #2439

Windows 32-bit Installer: http://nodejs.org/dist/v4.0.0/node-v4.0.0-x86.msi

Windows 64-bit Installer: http://nodejs.org/dist/v4.0.0/node-v4.0.0-x64.msi

Mac OS X 64-bit Installer: http://nodejs.org/dist/v4.0.0/node-v4.0.0.pkg

Mac OS X 64-bit Binary: http://nodejs.org/dist/v4.0.0/node-v4.0.0-darwin-x64.tar.gz

Linux 32-bit Binary: http://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-x86.tar.gz

Linux 64-bit Binary: http://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-x64.tar.gz

SunOS 32-bit Binary: http://nodejs.org/dist/v4.0.0/node-v4.0.0-sunos-x86.tar.gz

SunOS 64-bit Binary: http://nodejs.org/dist/v4.0.0/node-v4.0.0-sunos-x64.tar.gz

ARMv6 32-bit Binary: http://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv6l.tar.gz

ARMv7 32-bit Binary: http://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv7l.tar.gz

ARMv8 64-bit Binary: http://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-arm64.tar.gz

Source Code: http://nodejs.org/dist/v4.0.0/node-v4.0.0.tar.gz

Other release files: http://nodejs.org/dist/v4.0.0/

Documentation: http://nodejs.org/docs/v4.0.0/api/

Shasums:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

4893cadaa55fe88b214371b23257d7fae4b30661ef01d352e3f930ba9d402ee0 node-v4.0.0-darwin-x64.tar.gz
1f2b278d4708d7d956f2a17be139af26955114b92cb4340735a10bb5f0585c0a node-v4.0.0-darwin-x64.tar.xz
8812b88e81ee258f7f9446b548f6b364edcdd455f73f06589f14dd71dca415d0 node-v4.0.0-headers.tar.gz
776962bd95bf295e336fbf04f0d8764bb9f6236e0c699358b17e4e2a95ee3d6f node-v4.0.0-headers.tar.xz
0436f107e1d82c61c3ee4f916781466a49bece74bf4d4fb4bf4d53a57b81df85 node-v4.0.0-linux-arm64.tar.gz
7fdb978ddda803b188958b368db13b97dcaacfbf96d40c99d13ed385499d3fdd node-v4.0.0-linux-arm64.tar.xz
6f88e532bbf55cff36d4940898b80359761de3a274cc214fbb58cc176ec49ba2 node-v4.0.0-linux-armv6l.tar.gz
d7c1e9fefb360bde70c543d8981d2cce9a1c8444e847d19a89604756570d3075 node-v4.0.0-linux-armv6l.tar.xz
a788ed1b04de00344f4bbb8a278b317c69f9672f5fd03adb24f53d7c3d6fc8f6 node-v4.0.0-linux-armv7l.tar.gz
1ed96526e87c29b4d3b5618b5d2e3e65e1aef6a5e40f90ec3a3afd21047517cf node-v4.0.0-linux-armv7l.tar.xz
df8ada31840e3dc48c7fe7291c7eba70b2ce5a6b6d959ac01157b04731c8a88f node-v4.0.0-linux-x64.tar.gz
cc4eae3e4c2dd8b068d69e6d1d9849a863c51e3ec3d7f85cfb1e91e63912b66a node-v4.0.0-linux-x64.tar.xz
444b0c2e38602699103e4adb76c9f15b76c405f58b1308751cdc194041a39b93 node-v4.0.0-linux-x86.tar.gz
6fe4ab43eae74c1cb376169f4f161bddef04ff8a693a772875de651fafa4252b node-v4.0.0-linux-x86.tar.xz
387dd01caf168267749b0ddc7702b2fef7c95fbe1b2dab9a41ded02c11f16889 node-v4.0.0.pkg
f17ea8b1ffa6d63ba4eaa37708a365e5aefdb7de136f8b1a5751f2f258507026 node-v4.0.0-sunos-x64.tar.gz
69188f3568bbc9c071c70cf92551dd15e6fb79c9bd5d8b3da136ed65af4adea1 node-v4.0.0-sunos-x64.tar.xz
4537640f912b1db217351271e15d092d4654ecbe7cdb0169313988de5e453cd3 node-v4.0.0-sunos-x86.tar.gz
99ce4830b6b4f10dfca050296c001beb60e47d3eda455bc5b287b4ecc0773c04 node-v4.0.0-sunos-x86.tar.xz
e110e5a066f3a6fe565ede7dd66f3727384b9b5c5fbf46f8db723d726e2f5900 node-v4.0.0.tar.gz
2e3c5069933bead1022848009a68426a10689e67c4204707798fa319a6847bb5 node-v4.0.0.tar.xz
28dfb26fddb3ff56456bfc0ec186db27e6b84d9ce98752f34d48758f4af05fbe node-v4.0.0-x64.msi
ba67b46504afeedfd43d0ebb51844e2b427d64b631fe05d6fc35f7fc59d05307 node-v4.0.0-x86.msi
4c468e9a5e664f700f664fde42576260a7dd2bd5625ab824a713845e231f8275 win-x64/node.exe
c8189c310c774ce3cbe960bd9920e49f47db97a19f1256b9b5bfa1f9d83d4dca win-x64/node.lib
02814e5fdddbf77840e14042e98de3b50e0c0167aa1a8cccdf3222e643dd016f win-x86/node.exe
1bbe7009ea25e3ffe72cc7da92725146536be698cefd960e0e22269d02368c25 win-x86/node.lib
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJV71yWAAoJEMJzeS99g1RdcXkH/3sBJ89TZdqvzGEB/FZ5x+5C
A4iAWfEa+RjSvJbtmo3noOUA7+OZPWVue6yEv3ZX4EEdk5ZIUEcf/4tYoW/D5cCm
SBlnCB5TXMp8ZafCni3OvR52gBPIB4EFPlqPDLLA6wloUYm7xhyJ5V+Z9DeTzvGl
CC6JDs0RkcqMT3799KBgrS/ud0G5BXCC1imnHxGUCgYc1BAcExHThbLs1zFyMuXg
SSQJVJGoxR7LWfvnGFPnEbliSCuUfjGIT3DHAgovJgjQirj/vLssLBYyxMhCVBEa
eR2+UlptmdbsIAsPvyNp2Tr466KlIawD99haYOfgmVnA1l1PWbAjJMdQZJPk+Mg=
=tBAw
-----END PGP SIGNATURE-----