Node v4.8.0(LTS)

주요 변경사항

  • child_process: spwan()에 셸 옵션을 추가했습니다. (cjihrig) #4598
  • deps:
    • v8: 힙 스페이스에 관한 통계를 볼 수 있습니다. (Ben Ripkens) #4463
  • crypto:
    • ALPN을 지원합니다. (Shigeki Ohtsu) #2564
    • 잘 알려진 CA 목록에 별도 인증서를 추가할 수 있습니다. (Sam Roberts) #9139
  • fs: fs.mkdtemp() 함수를 추가했습니다. (Florian MARGAINE) #5333
  • process:
    • externalMemoryprocess에 추가했습니다. (Fedor Indutny) #9587
    • process.cpuUsage()를 추가했습니다. (Patrick Mueller) #10796


  • [78010aa0cd] - build: add /opt/freeware/... to AIX library path (Stewart X Addison) #10128
  • [0bb77f24fa] - build: add (not) cross-compiled configure flags (Jesús Leganés-Combarro 'piranna) #10287
  • [58245225ef] - (SEMVER-MINOR) child_process: add shell option to spawn() (cjihrig) #4598
  • [1595328b44] - (SEMVER-MINOR) crypto: allow adding extra certs to well-known CAs (Sam Roberts) #9139
  • [bf882fba35] - crypto: Use reference count to manage cert_store (Adam Majer) #9409
  • [4cf7dcff99] - crypto: remove unnecessary variables of alpn/npn (Shigeki Ohtsu) #10831
  • [d8b902f787] - debugger: call this.resume() after (Lance Ball) #10099
  • [4e07bd45d6] - deps: update patch level in V8 (Myles Borins) #10668
  • [a234d445c4] - deps: backport a715957 from V8 upstream (Myles Borins) #10668
  • [ce66c8e424] - deps: backport 7a88ff3 from V8 upstream (Myles Borins) #10668
  • [8bd3d83e01] - deps: backport d800a65 from V8 upstream (Myles Borins) #10668
  • [81e9a3bfcb] - deps: V8: fix debug backtrace for symbols (Ali Ijaz Sheikh) #10732
  • [d8961bdb3b] - doc: correct vcbuild options for windows testing (Jonathan Boarman) #10686
  • [d3c5bc1c63] - doc: update (rainabba) #8704
  • [d61c181085] - doc: unify dirname and filename description (Sam Roberts) #10527
  • [8eeccd82d2] - doc: killSignal option accepts integer values (Sakthipriyan Vairamani (thefourtheye)) #10424
  • [7db7e47d7b] - doc: change logical to bitwise OR in dns lookup (Sakthipriyan Vairamani (thefourtheye)) #11037
  • [28b707ba42] - doc: replace newlines in deprecation with space (Sakthipriyan Vairamani (thefourtheye)) #11074
  • [79d49866f2] - doc: update CONTRIBUTING.MD with link to V8 guide (sarahmeyer) #10070
  • [acbe4d3516] - doc: add joyeecheung to collaborators (Joyee Cheung) #10603
  • [c7378c4d5f] - doc: warn about unvalidated input in child_process (Matthew Garrett) #10466
  • [08e924e45c] - doc: require two-factor authentication (Rich Trott) #10529
  • [d260fb2e7e] - doc: use "Node.js" in V8 guide (Rich Trott) #10438
  • [4f168a4a31] - doc: require() tries first core not native modules (Vicente Jimenez Aguilar) #10324
  • [5777c79c52] - doc: clarify the review and landing process (Joyee Cheung) #10202
  • [d3a7fb8a9e] - doc: redirect 'Start a Working Group' to TSC repo (William Kapke) #9655
  • [0e51cbb827] - doc: add Working Group dissolution text (William Kapke) #9656
  • [919e0cb8f2] - doc: more efficient example in the (Vse Mozhet Byt) #10451
  • [70ea38f2ee] - doc: var -> const / let in the (Vse Mozhet Byt) #10451
  • [dda777bf9e] - doc: consistent 'Returns:' part two (Myles Borins) #10391
  • [3b252a69a0] - doc: clarify macosx-firewall suggestion BUILDING (Chase Starr) #10311
  • [c4df02c815] - doc: add Michaël Zasso to the CTC (Michaël Zasso)
  • [2269d7db0f] - (SEMVER-MINOR) fs: add the fs.mkdtemp() function. (Florian MARGAINE) #5333
  • [2eda3c7c75] - lib,test: use consistent operator linebreak style (Michaël Zasso) #10178
  • [7505b86d2f] - os: fix os.release() for aix and add test (jBarz) #10245
  • [7a9c8d8f10] - (SEMVER-MINOR) process: add process.cpuUsage() - implementation, doc, tests (Patrick Mueller) #10796
  • [23a573f7cb] - (SEMVER-MINOR) process: add process.memoryUsage.external (Fedor Indutny) #9587
  • [be6203715a] - src: describe what NODE_MODULE_VERSION is for (Sam Roberts) #10414
  • [3f29cbb5bc] - src: fix string format mistake for 32 bit node (Alex Newman) #10082
  • [271f5783fe] - stream, test: test _readableState.emittedReadable (Joyee Cheung) #10249
  • [c279cbe6a9] - test: fix command line options processing (Julien Gilli) #11153
  • [0f5d82e583] - test: add --abort-on-timeout option to (Julien Gilli) #11086
  • [735119c6fb] - test: cleanup stream tests (Italo A. Casas) #8668
  • [f9f8e4ee3e] - test: refactor test-preload (Rich Trott) #9803
  • [e7c4dfb83b] - test: invalid package.json causes error when require()ing in directory (Sam Shull) #10044
  • [22226fa900] - test: refactoring test-pipe-head (Travis Bretton) #10036
  • [11115c0d85] - test: add second argument to assert.throws() (Ken Russo) #9987
  • [96ca40bdd8] - test: refactor test-tls-0-dns-altname (Richard Karmazin) #9948
  • [98496b6d3e] - test: test: refactor test-sync-fileread (Jason Wohlgemuth) #9941
  • [324c82b1c9] - test: use common.fixturesDir almost everywhere (Bryan English) #6997
  • [ce91bb21ba] - test: refactor test-repl-mode.js (Cesar Hernandez) #10061
  • [61cbc202a1] - test: refactor test-net-dns-custom-lookup (Kent.Fan) #10071
  • [812c6361ff] - test: refactor test-tls-server-verify (Hutson Betts) #10076
  • [19907c27a6] - test: use mustCall() for simple flow tracking (cjihrig) #7753
  • [42da81e6cc] - test: set stdin too for pseudo-tty tests (Anna Henningsen) #10149
  • [53404dbc1f] - test: add stdin-setrawmode.out file (Jonathan Darling) #10149
  • [1fac431307] - test: add tests for clearBuffer state machine (Safia Abdalla) #9922
  • [37a362275e] - test: update test-cluster-shared-handle-bind-error (cjihrig) #10547
  • [f5e54f5d5f] - test: avoid assigning this to variables (cjihrig) #10548
  • [28a5ce10af] - test: improve test-http-allow-req-after-204-res (Adrian Estrada) #10503
  • [52edebc8f3] - test: improve test-fs-empty-readStream.js (Adrian Estrada) #10479
  • [b74bc517a6] - test: use strictEqual in test-http-server (Fabrice Tatieze) #10478
  • [a9cd1d1267] - test: refactor test-stream2-unpipe-drain (Chris Story) #10033
  • [7020e9fd8b] - test: add test for SIGWINCH handling by stdio.js (Sarah Meyer) #10063
  • [56b193a9c2] - test: improve code in test-vm-preserves-property (Adrian Estrada) #10428
  • [8a26ba142f] - test: fix flaky test-https-timeout (Rich Trott) #10404
  • [eeb2d7885a] - test: improve test-cluster-worker-constructor.js (Adrian Estrada) #10396
  • [fd195b47d6] - test: stream readable resumeScheduled state (Italo A. Casas) #10299
  • [135a7c9e19] - test: stream readable needReadable state (Joyee Cheung) #10241
  • [f412b1fcfd] - test: clean up domain-no-error-handler test (weyj4) #10291
  • [14c28ebcf1] - test: update test-domain-uncaught-exception.js (Andy Chen) #10193
  • [928291c652] - test: refactor test-domain.js (Siddhartha Sahai) #10207
  • [13c6cec433] - test: fail for missing output files (Anna Henningsen) #10150
  • [544920f77b] - test: stream readableState readingMore state (Gregory) #9868
  • [2f8bc9a7bc] - test: s/ASSERT/assert/ (cjihrig) #10544
  • [380a5d5e12] - test: fix flaky test-http-client-timeout-with-data (Rich Trott) #10431
  • [14e07c96e1] - test: refactor test-stdin-from-file (Rob Adelmann) #10331
  • [424c86139d] - test: refactor the code in test-fs-chmod (Adrian Estrada) #10440
  • [31aa877003] - test: improve the code in test-pipe.js (Adrian Estrada) #10452
  • [4bbd50ee07] - test: improve code in test-fs-readfile-error (Adrian Estrada) #10367
  • [9840f505f0] - test: improve code in test-vm-symbols (Adrian Estrada) #10429
  • [4efdbafeb3] - test: refactor test-child-process-ipc (malen) #9990
  • [dbfec29663] - test: fix and improve debug-break-on-uncaught (Sakthipriyan Vairamani (thefourtheye)) #10370
  • [80f4a37023] - test: refactor test-pipe-file-to-http (Josh Mays) #10054
  • [a983400ac2] - test: refactor test-tls-interleave (Brian Chirgwin) #10017
  • [6db76da2c8] - test: refactor test-cluster-send-handle-twice.js (Amar Zavery) #10049
  • [19b314e40a] - test: update test-tls-check-server-identity.js (Kevin Cox) #9986
  • [ab3e4c6a9b] - test: improve test-cluster-net-listen.js (Rico Cai) #9953
  • [fb9a0ad6c0] - test: refactor test-child-process-stdin (Segu Riluvan) #10420
  • [122917df5a] - test: change var declarations, add mustCall check (Daniel Sims) #9962
  • [d5e911c51e] - test: refactoring test-cluster-worker-constructor (Christopher Rokita) #9956
  • [7d61bbf647] - test: refactor test-stdin-script-child (Emanuel Buholzer) #10321
  • [76bb3cbff9] - test: refactor test-stream2-writable (Rich Trott) #10353
  • [b87ee26b96] - test: change assert.strict to assert.strictEqual() (Ashita Nagesh) #9988
  • [4514fd78f4] - test: refactor the code in test-http-keep-alive (Adrian Estrada) #10350
  • [f301df405a] - test: use strictEqual in test-cwd-enoent-repl.js (Neeraj Sharma) #9952
  • [3b67001c99] - test: refactor test-net-reconnect-error (Duy Le) #9903
  • [34861efff6] - test: add test-require-invalid-package (Duy Le) #9903
  • [90a79b3967] - test: refactor test-timers-this (Rich Trott) #10315
  • [5335b0a0d1] - test: refactor test-tls-ecdh-disable (Aaron Williams) #9989
  • [0f8a323546] - test: cleanup test-stdout-close-catch.js (Travis Bretton) #10006
  • [fc67a955e2] - test: use const/let and common.mustCall (Outsider) #9959
  • [2f44d7f367] - test: refactor test-crypto-random (Rich Trott) #10232
  • [730c3b29e8] - test: refactor test-fs-fsync (Rob Adelmann) #10176
  • [9c9d422433] - test: refactor test-http-after-connect.js (larissayvette) #10229
  • [827bbe7985] - test: refactor assert.equal, update syntax to ES6 (Prieto, Marcos)
  • [121b68a283] - test: refactor http pipelined socket test (Rich Trott) #10189
  • [7ca31e38fb] - test: fix alpn tests for openssl1.0.2h (Shigeki Ohtsu) #6550
  • [278d718a93] - test: refactor test-handle-wrap-close-abort (Rich Trott) #10188
  • [f12bab65b8] - test: stream readableListening internal state (Italo A. Casas) #9864
  • [210290dfba] - test: check for error on invalid signal (Matt Phillips) #10026
  • [4f5f0e4975] - test: refactor test-net-keepalive.js (Kyle Corsi) #9995
  • [cfa2b87b5d] - test,lib,benchmark: match function names (Rich Trott) #9113
  • [a67ada7d32] - tls: copy the Buffer object before using (Sakthipriyan Vairamani) #8055
  • [e750f142ce] - (SEMVER-MINOR) tls, crypto: add ALPN Support (Shigeki Ohtsu) #2564
  • [ef547f3325] - (SEMVER-MINOR) tls,crypto: move NPN protcol data to hidden value (Shigeki Ohtsu) #2564
  • [31434a1202] - tools: enforce consistent operator linebreak style (Michaël Zasso) #10178
  • [9f13b5f7d5] - tools: forbid template literals in assert.throws (Michaël Zasso) #10301
  • [c801de9814] - tools: add ESLint rule for assert.throws arguments (Michaël Zasso) #10089
  • [b5e18f207f] - tools: add macosx-firwall script to avoid popups (Daniel Bevenius) #10114
  • [30d60cf81c] - (SEMVER-MINOR) v8,src: expose statistics about heap spaces (Ben Ripkens) #4463
  • [9556ef3241] - vm: add error message if we abort (Franziska Hinkelmann) #8634
  • [fa11f4b1fc] - win,msi: add required UIRef for localized strings (Bill Ticehurst) #8884

Windows 32-bit Installer:
Windows 64-bit Installer:
Windows 32-bit Binary:
Windows 64-bit Binary:
macOS 64-bit Installer:
macOS 64-bit Binary:
Linux 32-bit Binary:
Linux 64-bit Binary:
Linux PPC LE 64-bit Binary:
Linux PPC BE 64-bit Binary:
SunOS 32-bit Binary:
SunOS 64-bit Binary:
ARMv6 32-bit Binary:
ARMv7 32-bit Binary:
ARMv8 64-bit Binary:
Source Code:
Other release files:


Hash: SHA256

ea4d8dc0e77e744d78dbb5221f2711e77f90394a5a5296fc231757dd52afe9b0 node-v4.8.0-darwin-x64.tar.gz
73e23e85fa3e91c06156deddd52a037b0e9a94849fff6a91693737ee49094cc7 node-v4.8.0-darwin-x64.tar.xz
ba8bcb2e4187ee6b705605b4d55b0f5a0f9ad0ba3d24bd6f5d70dff26e9bcf97 node-v4.8.0-headers.tar.gz
a3a75cfee533ea41219796a89a4407608196e38f325ebf3127b12630d4f98b2a node-v4.8.0-headers.tar.xz
f796af7ea3c2ac085ba4d24b367c4a9ec73a0d6f469628470a8b7ac14e05d0a4 node-v4.8.0-linux-arm64.tar.gz
e0f5f7a2458c715c60ecb3966ee29bcdae95acceb2a611bd920ce1c649174732 node-v4.8.0-linux-arm64.tar.xz
737c4bdaf68e4f347aaa90f6abb44f8822ee2234a862c2248fa800a58ac0600b node-v4.8.0-linux-armv6l.tar.gz
1c828dbd59a2b5e226c5cce772cd6c4a01aaaa06f9c19ef06d9666b53fd54b5b node-v4.8.0-linux-armv6l.tar.xz
a6b1e35a6f3fbf05fef76f2672b55f07ea7ebd179440f212d80605bd1ef548c0 node-v4.8.0-linux-armv7l.tar.gz
ad05bf930ecbcda934628b33fa4f8dda909cbd30a9577d0b70f18ecb3774900d node-v4.8.0-linux-armv7l.tar.xz
cfe003b8984af329132e1027fd2c4a91f7e8aace0facde1789f55986f5671e63 node-v4.8.0-linux-ppc64le.tar.gz
86a43cb714d724a84b83954d548687b291abeeb7e8811e40a7633bd8e9532646 node-v4.8.0-linux-ppc64le.tar.xz
2aab5c30ff56be5811ec1181877014592bd301d5f4b60c7be6aabaa2e30b2639 node-v4.8.0-linux-ppc64.tar.gz
48535d3a1054faff37e49eedb757613b048edde4dcd92833d8e9c0db80545355 node-v4.8.0-linux-ppc64.tar.xz
43e50dfa950ccd0caf03ad71c65f8235aca6fe173596f2804b2f9dfaa45cabf1 node-v4.8.0-linux-x64.tar.gz
4597861fbbcfc120be608ec6ba18a61c5951d4093cf149bf98097972a4927a80 node-v4.8.0-linux-x64.tar.xz
20b3018ee2e0a5bedc5aa357607ceb9bfaeb215dc48f878a0a92b78288637eb7 node-v4.8.0-linux-x86.tar.gz
cd5e5e35398dc0fb347fbfefbf167b653d2b304bbd6d33b634bbe96b1c381f94 node-v4.8.0-linux-x86.tar.xz
e3ce14f5b249c888a3fdaae0360239f121f99dcd4d098df76f2a535e438e6cfd node-v4.8.0.pkg
9fa8fd422985a4194d96161ac19b3b2cd1098bfd581483f6ea7c0bad6344d42b node-v4.8.0-sunos-x64.tar.gz
817da2014e1a30c5ddc070340996e6ff2dd8790dc87c5de626e94027ad1f6177 node-v4.8.0-sunos-x64.tar.xz
b1472060cef54c54d516c20210648cc2836ee2fd56c35bd721b9c32d02d33308 node-v4.8.0-sunos-x86.tar.gz
b26d3630fcc2d72b8df9f8f821b4acf605edbe13a66d8c00c2fa2c800397812d node-v4.8.0-sunos-x86.tar.xz
6e65d19e0135be474df53a350af766a8f1ba5ef1a5288a4da993a1a9b0e04942 node-v4.8.0.tar.gz
67ea720419f902bd47e5c45a16ed45f8083c38ccd307b206a1dc53e862fad965 node-v4.8.0.tar.xz
2c4ad7799609d284f54b004a1f9896890ba12796e5bb026d4c6f3e5b27312a76 node-v4.8.0-win-x64.7z
58bcba2ce057a317bc7c3aff8e9ca6dfc3c9762bd51d91ddd4546ced7c598ef7 node-v4.8.0-win-x86.7z
07a44c3289f5fe8082388928b9511a75106392d01b10cc24b5a19e376912d264 node-v4.8.0-x64.msi
f6af223f732953981b94d576f492f59c168713d7c1148fc512e42e1dadd9b5e0 node-v4.8.0-x86.msi
9a24558be019277a9693083fe0cb2f99e531b678bcdb86c3136a4d647c10a500 win-x64/node.exe
bba83a782c15baca3ef81126ff4489b9ab33094383c9587d66b1551cf60a2f10 win-x64/node.lib
080cda13b6574ac545f1f10daf9d2442520549d238e33a5d575f554a6c41b3ee win-x64/node_pdb.7z
cd42e8b88d8816246ec08db2994ef13daf1ae599fb3aa1c5860c47d2e166bc0f win-x64/
cb46fddbd1aa986af7b50f8291015c02a3457649cd1fa5bb753c214f0efd5ba5 win-x86/node.exe
96d43ace5b353fe1dae498326a863b5725216e8a417e70dfc067dca2c3df061c win-x86/node.lib
b421d9c9f553e8fcdd5fd748a189ce4f7a45bf7d6302019d27ec22e53fcfb1f5 win-x86/node_pdb.7z
6ec54cb4666f39087257b32d0d11bf5db0465b68e849942f668d37dab54edf9e win-x86/


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

Node v7.5.0(현재 버전)

Node v4.7.3(LTS)

Node v6.9.5(LTS)

커뮤니티 업데이트

다가오는 이벤트

계획 중인 Node.js 이벤트가 있나요? Evangelism 팀 저장소이슈 페이지에 주간 업데이트 이슈를 통해 알릴 수 있습니다.

Node v6.9.5(LTS)

주요 변경사항

  • deps: OpenSSL 소스를 1.0.2k로 업그레이드했습니다. (Shigeki Ohtsu) #11021


Windows 32-bit Installer:
Windows 64-bit Installer:
Windows 32-bit Binary:
Windows 64-bit Binary:
macOS 64-bit Installer:
macOS 64-bit Binary:
Linux 32-bit Binary:
Linux 64-bit Binary:
Linux PPC LE 64-bit Binary:
Linux PPC BE 64-bit Binary:
Linux s390x 64-bit Binary:
AIX 64-bit Binary:
SunOS 32-bit Binary:
SunOS 64-bit Binary:
ARMv6 32-bit Binary:
ARMv7 32-bit Binary:
ARMv8 64-bit Binary:
Source Code:
Other release files:


Hash: SHA256

bb0c8db8c1a7e04667d482c0d44db9e7afa1a9ff6cde5829bb582e57727769f6 node-v6.9.5-aix-ppc64.tar.gz
96d80603fcd74ce2cc261d980d4f06b6ec10432b446ab13359c8ad7f631991e8 node-v6.9.5-darwin-x64.tar.gz
f34c6a2679570a5b34445d8211ab679377e0cba70e04f161e5ba2a72fda125ca node-v6.9.5-darwin-x64.tar.xz
c9e3d1e70ac277e38a8a10c6db59ece827b95de041970ba5d3f7853825aa11f7 node-v6.9.5-headers.tar.gz
ca3342fb24f9029d8c91b26b09976471b3809b8cf668ab513d9ca1fcea599716 node-v6.9.5-headers.tar.xz
f60799f0e15b61b900450c4bc36684885c57d5e0e9d34790bffbc5558944e6da node-v6.9.5-linux-arm64.tar.gz
b5f1099845ec434b728f0fef5d13970a7e49f5f4dcc4dcf3f96eb6fb94ed576f node-v6.9.5-linux-arm64.tar.xz
19dca947f63c06e1cb4162c254bfda7e844b0f337aea4fb10a52811bbfb97486 node-v6.9.5-linux-armv6l.tar.gz
b500cef8ce9d861894d4699f7ee11480333a7ad432cbd0bac1c4d33a4bba18f3 node-v6.9.5-linux-armv6l.tar.xz
dcba7b0b36fc3b0d56b6be6efb758c42b7e2e0452723690cf0a6ae1f22180346 node-v6.9.5-linux-armv7l.tar.gz
e3c8f027be7c0b9469b8a38e3e05a7a069881001aa8dac88650a2b6499a1c8ca node-v6.9.5-linux-armv7l.tar.xz
00e62593b78c58df714010abf116a3176f2a96ca324ea7e6ba6f6316120ff45f node-v6.9.5-linux-ppc64le.tar.gz
05d8a14c76befcfc6e2385e19d05d4050e2725e5fdf7faf79cf18781d088ad49 node-v6.9.5-linux-ppc64le.tar.xz
89f79364a780a62a254afe1068673a7348e6a5ab572536f60141b2d17b146e98 node-v6.9.5-linux-ppc64.tar.gz
262a75b65fcd4b28f2a338861083120e020715f3a22666f3559a0472ce7a681b node-v6.9.5-linux-ppc64.tar.xz
56ac183e85e5310d0439a4b1c9fbe2878740f47cb2664701bef8ea6a7e0ff2ac node-v6.9.5-linux-s390x.tar.gz
05b94437d798311a87e3fcfe6700c31fe3efee35174234744fe08843862c63c6 node-v6.9.5-linux-s390x.tar.xz
a4b464068cf2c2cc8ffba9ca0a6ee1ebf146509a86d46a4f92e761c31adebd29 node-v6.9.5-linux-x64.tar.gz
4831ba1a9f678f91dd7e2516eaa781341651b91ac908121db902f5355f0211d8 node-v6.9.5-linux-x64.tar.xz
5926601f73cfb5e417d7644624c8f597eebf43b392f7d02e3b4260093e74c3dd node-v6.9.5-linux-x86.tar.gz
a31a9612b5b11d9cf4aad05c406388760bde7b2bf0969a0e580b52cfbbf0bc09 node-v6.9.5-linux-x86.tar.xz
2806db08bf03cc30d05767c1ad686ab87c92b1b6a9b8e6ac4308f5474fe17cb5 node-v6.9.5.pkg
3b958ca8b51d1b8e4b9cfbd1edee54ab5dfe7ac8fea6eca8a1e73f00f7e3e34b node-v6.9.5-sunos-x64.tar.gz
8bc45d31eb843b956f0457082b99fa2803920e5612099c5526a9be100ff0daa8 node-v6.9.5-sunos-x64.tar.xz
7faf4af0e5e0dc34351278868bbeae3c05a5e8ecfcdacf22d9dc9c86ea75e6cc node-v6.9.5-sunos-x86.tar.gz
6ff1042bf13a1567059aeee15c6ea90d2616d678c972a1aa170d7da84c950e24 node-v6.9.5-sunos-x86.tar.xz
f7e9ab702c5d1f5a3521199c04cc670fda3cf4b0e48548b09ac7ac874ccb504a node-v6.9.5.tar.gz
d7fed1a354b29503f3e176d7fdb90b1a9de248e0ce9b3eb56cc26bb1f3d5b6b3 node-v6.9.5.tar.xz
7697f89b91220e9cfc9603821ebe1fa2ab716c5de7c8405aaa32d03f61906d5b node-v6.9.5-win-x64.7z
b1a8626eaf7bb7935c7c19735e0932a9c08665b7ffc2d1e1f2ead8b95ca07a14 node-v6.9.5-win-x86.7z
cfcc1f41907f40ffccebb24a409283853926ddf7b2b3d026db0edb40ed98d2ff node-v6.9.5-x64.msi
ff6c7033b51e8c3dd64a0e71d37738c0f96a4388a3f310151b172b028460776f node-v6.9.5-x86.msi
95142fad100dfd206739145fb8fa27767b54c272b272d33fd6c42476d299c619 win-x64/node.exe
b9c577e9f5bfc88a04462050a4fc53a3000a15293ac5bedcdc4bdeb3fc3d2b70 win-x64/node.lib
b7b83342a20cc1b8bef3d2a385d94c852c0e842f499e53950adb519f69281d97 win-x64/node_pdb.7z
673ca327694e4dda36af539d7975e57ca1f7f7fcc66cad0f3e8d99ee530b49c1 win-x64/
8e9aa5478b59cf70eb542fb64c77f41db275e22bea7f60ddab0c6bce4656a477 win-x86/node.exe
609a5daa6b055c18d5c502bdcf2c9e281f12afd4dc449c1a559d35c0839c59df win-x86/node.lib
d8dd3948841eed4ef32490ea522298c285b919bb738e7f437381015f81525893 win-x86/node_pdb.7z
2242446f7f9ae16f2f15e51c98c05c3cde3d59000420852a6999d4d9123bb735 win-x86/


Node v4.7.3(LTS)

주요 변경사항

  • deps: OpenSSL 소스를 1.0.2k로 업그레이드했습니다. (Shigeki Ohtsu) #11021


Windows 32-bit Installer:
Windows 64-bit Installer:
Windows 32-bit Binary:
Windows 64-bit Binary:
macOS 64-bit Installer:
macOS 64-bit Binary:
Linux 32-bit Binary:
Linux 64-bit Binary:
Linux PPC LE 64-bit Binary:
Linux PPC BE 64-bit Binary:
Linux s390x 64-bit Binary: Coming soon
AIX 64-bit Binary: Coming soon
SunOS 32-bit Binary:
SunOS 64-bit Binary:
ARMv6 32-bit Binary:
ARMv7 32-bit Binary:
ARMv8 64-bit Binary:
Source Code:
Other release files:


Hash: SHA256

1d69b0919250cac5997be5623eb916ae7087f5c91c8bad17afffe32ac1cbced8 node-v4.7.3-darwin-x64.tar.gz
2b711d96678537a91686b3deda4ac4c30702048e351219db3bdf40f1b12217ab node-v4.7.3-darwin-x64.tar.xz
4c9c36f1bec9e31e20df7a7baa4d53fe54ca2effa05dcbaf3f916f2dc411ddf0 node-v4.7.3-headers.tar.gz
aec18e4360154770f9ab3d4a5b1c76f1dd0eabb509982c3a353d685c99b2d527 node-v4.7.3-headers.tar.xz
4d3199e69259452d1e1cfc06da851e8c26590613f845a997d613228954225124 node-v4.7.3-linux-arm64.tar.gz
4b963bba23c9f8dc7172c7d528f57cffe79b2b0b6131f35e60d38ecaab8cc199 node-v4.7.3-linux-arm64.tar.xz
e6d8e00b8c8afe046e99759b2b450d0fc09ea12ff8ff5ac9707b7c18e159b5bd node-v4.7.3-linux-armv6l.tar.gz
8ebdeb1cf4002474a39557790c8f5f4396ee43965e08b801ca9c285ae8a9a895 node-v4.7.3-linux-armv6l.tar.xz
954b51068273cf228f831b1f701a47dd14268be108f8a6c89d4d49413c63935f node-v4.7.3-linux-armv7l.tar.gz
c3dd8964f2e063e0b77f0095c7e8b42d427f2a9bd2ae5965a2fe009993a56419 node-v4.7.3-linux-armv7l.tar.xz
9a53a29314e6b929eb94eb4ca81720f306eb51399eb42a63ae8e643245387718 node-v4.7.3-linux-ppc64le.tar.gz
ffb91e0b38a476ac87e9050d9567e465fc77910b4052026008926faa1d85db04 node-v4.7.3-linux-ppc64le.tar.xz
5ab32ef9e5908f3ace49976b4bdd628df70ebfea39b35ee9e681f39a3d429078 node-v4.7.3-linux-ppc64.tar.gz
53b374cbe3d4bd969f9c6624bb8da4d54fe787cd8acf6460eb448ade500d47d4 node-v4.7.3-linux-ppc64.tar.xz
720b62ed3a733578c429448c8c373743866f55db6e9763a11b87bb324740a33b node-v4.7.3-linux-x64.tar.gz
7f53fa4b6de5d4ba131bcaff10bb24e73f6f14486fc7333fbcebbc217874c0c1 node-v4.7.3-linux-x64.tar.xz
7cca3b061ff2791c46303655fdd57a85223bc2382a44a39b90edff43434e34c6 node-v4.7.3-linux-x86.tar.gz
8e6a2351f4876fb141755379ea9c23dc825f931d130c68c749d705dbcb7be1ca node-v4.7.3-linux-x86.tar.xz
99a4ba7e59dcb1cc0229df9f9ce3b4835492338ea5e3c4e67151f5ac88a569c8 node-v4.7.3.pkg
3ab3a2123639ee18a4fc5253f2fbfcbd7a43404fe34d1cf51568d45838a3b15f node-v4.7.3-sunos-x64.tar.gz
c4b577ce25bdc70532b195b017c5715024195cd5ed829cebfaabadc55f035d0c node-v4.7.3-sunos-x64.tar.xz
9efef37f072ef48444d15faeec8f4ab8af7e6c71a03e47031b76781929854062 node-v4.7.3-sunos-x86.tar.gz
877ae980f0152c136a4fdcb04ad1e6cbdf9834944ba1e83b5e31575616ae41ab node-v4.7.3-sunos-x86.tar.xz
1549d4e0aeb9419ddb85ba4dffdba8d0e2f9a9b904e80765b044c4f7d9f485ed node-v4.7.3.tar.gz
7f35dc7adf0b348857b98e543a54c2b2cafb92c27d9d32799a81ac66cbf035f0 node-v4.7.3.tar.xz
816960d115fb3cc41356397d83c8fbe3c105caad919b9f0307bc009997d84008 node-v4.7.3-win-x64.7z
e34738b8af5fa6b3d27b8935a2765be13d75a7a1f60273aee7a03253eb0f271c node-v4.7.3-win-x86.7z
a8955cc0578214ab0a303332c565bd2df35db42a4b4c7f9c6e898197ac6645b8 node-v4.7.3-x64.msi
09bc8958dc4d5a074a3829a2446faa5de3ec30f249fde46a54591062e900d02e node-v4.7.3-x86.msi
89e92970d4f3f0ef5925c2ee769e875c30fa7fcfb209df96acfe0ff2da2a774a win-x64/node.exe
f50c7fa61ae78067ca7b462a6e8e361bd571f2cbc2116b0d86116d5e686c56d3 win-x64/node.lib
74ce34398a2633c71ca16b260957ef49c8e0e36ed468770067800232c30cfbb6 win-x64/node_pdb.7z
28ef69cf8e6c1e60e49c89d9060d677cbf2d24e6b27df2cfa2d40a474d786a05 win-x64/
f7ec11abe97babe7230b9aa6b67f8be104c1f4bb923bd0bcb5e7ddff4bf2f5f4 win-x86/node.exe
f5d00b3ec2f9cfc236cfad7568b1f0acc632eae7815df61b8eaceea71c4732a4 win-x86/node.lib
37daa3c3dc6a261e59bf01f40ca1686ebcf102774a2c186029b9e5cccd1156aa win-x86/node_pdb.7z
ab4c08a25531e54906da9d239b0a14e663be976805dcb07c47487dd68e333185 win-x86/


Node v7.5.0(현재 버전)

주요 변경 사항

  • crypto:
    • 런타임에 인증서 저장소를 선택할 수 있게 됐습니다. (Adam Majer) #8334
    • 번들된 CA 대신 시스템 CA를 사용합니다. (Adam Majer) #8334
  • deps:
    • npm을 4.1.2 버전으로 업그레이드했습니다. (Kat Marchán) #11020
    • OpenSSL 소스를 1.0.2k로 업그레이드했습니다. (Shigeki Ohtsu) #11021
  • doc: WHATWG URL API를 위한 간단한 문서를 추가했습니다. (James M Snell) #10620
  • process: NODE_NO_WARNINGS 환경 변수를 추가했습니다. (cjihrig) #10842
  • url: http.request와 https.request에 URL을 사용할 수 있게 됐습니다. (James M Snell) #10638


  • [61f6f1260d] - (SEMVER-MINOR) src/doc: improve man page and --help (Roman Reiss) #10157
  • [b2d0c44fb1] - assert: update comments (Kai Cataldo) #10579
  • [c217b438f2] - assert, tools: enforce strict (not)equal in eslint (Gibson Fahnestock) #10698
  • [94c4323d56] - async_wrap: close the destroy_ids_idle_handle_ (René Schünemann) #10385
  • [f61c71b533] - benchmark: add progress indicator to compare.js (Joyee Cheung) #10823
  • [ccdc922ada] - benchmark: move setImmediate benchmarks to timers (Joshua Colvin) #11010
  • [062c8513ad] - benchmark: add more thorough timers benchmarks (Jeremiah Senkpiel) #10925
  • [1e0294ccc9] - benchmark: add benchmark for object properties (Michaël Zasso) #10949
  • [47c0953b12] - benchmark: add benchmark for vm.runIn*() (Rich Trott) #10816
  • [2f339e7200] - benchmark: cleanup child_process IPC benchmark (Yuya Tanaka) #10557
  • [eac1871c45] - benchmark: improve WHATWG URL benchmarks (Joyee Cheung) #10678
  • [ecf72d8b54] - benchmark: use "confidence" in output of compare.R (Joyee Cheung) #10737
  • [35334273b9] - benchmark: don't lint autogenerated modules (Brian White) #10756
  • [4f96272f12] - benchmark: fix typo "categoty" -> "category" (Victor Felder) #10568
  • [2f4577c07d] - benchmark: keep decimals in results (Brian White) #10559
  • [372e3eeb4b] - benchmark: improve readability of net benchmarks (Brian White) #10446
  • [d19136da84] - benchmark: move punycode benchmark out of net (Brian White) #10446
  • [be24cc0187] - benchmark: add ClientRequest creation benchmark (Brian White) #10654
  • [1438d00119] - benchmark,lib,test: adjust for linting (Rich Trott) #10561
  • [d13aba8499] - buffer: improve compare() performance (Brian White) #10927
  • [6549bc2a35] - buffer: fix comments in bidirectionalIndexOf ( #10162
  • [a114f63627] - buffer: improve toJSON() performance (Brian White) #10895
  • [9c2f686f7e] - build: don't build deps/zlib if --shared-zlib set (Gibson Fahnestock) #10657
  • [659428fe1d] - build: sort sources alphabetically (Daniel Bevenius) #10892
  • [74f9cc9f0a] - build: move source files from headers section (Daniel Bevenius) #10850
  • [a408ba6454] - build: don't squash signal handlers with --shared (Stewart X Addison) #10539
  • [ddcd1a202f] - child_process: optimize IPC for large data (Yuya Tanaka) #10557
  • [d751afae0f] - cluster: refactor module into multiple files (cjihrig) #10746
  • [6687b95263] - crypto: return the retval of HMAC_Update (Travis Meisenheimer) #10891
  • [a1897c1445] - (SEMVER-MINOR) crypto: ability to select cert store at runtime (Adam Majer) #8334
  • [aeea13b6f6] - (SEMVER-MINOR) crypto: Use system CAs instead of using bundled ones (Adam Majer) #8334
  • [ac2b059500] - (SEMVER-MINOR) crypto: do not use pointers to std::vector (Adam Majer) #8334
  • [5fd0f9ae63] - crypto: freelist_max_len is gone in OpenSSL 1.1.0 (Adam Langley) #10859
  • [4e7a31b3a0] - crypto,tls: fix mutability of return values (Rich Trott) #10795
  • [84a9c158ef] - deps: fix npm files from upgrade to 4.1.2 (João Reis) #11085
  • [9e60af893c] - deps: upgrade npm to 4.1.2 (Kat Marchán) #11020
  • [da59a57d60] - deps: limit regress/regress-crbug-514081 v8 test (Michael Dawson) #6678
  • [edd20720ac] - deps: update openssl asm and asm_obsolete files (Shigeki Ohtsu) #11021
  • [ce20ad76ec] - deps: add -no_rand_screen to openssl s_client (Shigeki Ohtsu) nodejs/io.js#1836
  • [06f87c3e0a] - deps: fix asm build error of openssl in x86_win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [093cacf61b] - deps: fix openssl assembly error on ia32 win32 (Fedor Indutny) iojs/io.js#1389
  • [a3b3b35c53] - deps: copy all openssl header files to include dir (Shigeki Ohtsu) #11021
  • [6a0f1fabb1] - deps: upgrade openssl sources to 1.0.2k (Shigeki Ohtsu) #11021
  • [1fae98b833] - deps: upgrade npm to 4.1.1 (Rebecca Turner) #10781
  • [6e0888ad9e] - deps: add test for v8 bug in toUpper('ç') (Steven R. Loomis) #9828
  • [1c4bf9e8ff] - deps: cherry-pick 2f5da9a from V8 upstream (Steven R. Loomis) #9828
  • [ffd938a694] - deps: upgrade libuv to 1.10.2 (cjihrig) #10717
  • [aa6b9f979e] - deps: cherry-pick baba152 from V8 upstream (Michaël Zasso) #10688
  • [5887396150] - deps: cherry-pick a814b8a from upstream V8 ( #10733
  • [cfc4c62249] - doc: correct and complete dgram's Socket.bind docs (Alex Jordan) #11025
  • [55e98c66c0] - doc: add abouthiroppy to collaborators (Yuta Hiroto) #11080
  • [722ae8700f] - doc: add who to CC list for dgram (cjihrig) #11035
  • [a8533acee6] - doc: change logical to bitwise OR in dns lookup (Sakthipriyan Vairamani (thefourtheye)) #11037
  • [ac36d78d56] - doc: fix typo in (Peter Mescalchin) #10975
  • [0bf3b24771] - doc: remove Chris Dickinson from active releasers (Ben Noordhuis) #11011
  • [9ca404ed25] - doc: for style, remove "isn't" contraction (Sam Roberts) #10981
  • [4be9e98448] - doc: make os api doc more consistent (Evan Lucas) #10994
  • [7dff6aa67f] - doc: update for consistency and clarity (Lance Ball) #10715
  • [dd608591a8] - doc: clarify Buffer.indexOf/lastIndexOf edge cases ( #10162
  • [5250b3358e] - doc: document argument variant in the (Vse Mozhet Byt) #10221
  • [c4b9f0a75e] - doc: DEFAULT_ECDH_CURVE was added in 0.11.13 (Sam Roberts) #10983
  • [84e2ff3738] - (SEMVER-MINOR) doc: add basic documentation for WHATWG URL API (James M Snell) #10620
  • [9d91bf9788] - doc: HTTP response getHeader doc fix (Faiz Halde) #10817
  • [06acf88117] - doc: remove duplicate properties bullet in readme (Javis Sullivan) #10741
  • [09ac2a2cb7] - doc: specify sorted requires in tests (Sam Roberts) #10716
  • [f380a5fb5a] - doc: mention cc-ing nodejs/python team for reviews (Anna Henningsen) #10637
  • [58bb263438] - doc: update TheAlphaNerd to MylesBorins (Myles Borins) #10586
  • [1253650cf4] - doc: update examples in api/ (Vse Mozhet Byt) #10909
  • [3177d6557a] - doc: move topics/guides to website (Evan Lucas) #10896
  • [d2896d92a7] - doc: update AUTHORS list to fix name (Noah Rose Ledesma) #10945
  • [4ffcefdc09] - doc: add TimothyGu to collaborators (Timothy Gu) #10954
  • [3fcf0aed4a] - doc: mention moderation repo in onboarding doc (Anna Henningsen) #10869
  • [79d8db0fef] - doc: add edsadr to collaborators (Adrian Estrada) #10883
  • [520b1f7853] - doc: clarifying variables in fs.write() (Jessica Quynh Tran) #9792
  • [daf1bf588b] - doc: add links for zlib convenience methods (Anna Henningsen) #10829
  • [aeaf887700] - doc: fix markdown escaping in (Anna Henningsen) #10827
  • [c8b0fc6d8b] - doc: remove duplicate PR link from changelog (Anna Henningsen) #10827
  • [049258b062] - doc: fixup added tags in (Anna Henningsen) #10826
  • [61798d1fa4] - doc: add missing added: tag for zlib.constants (Anna Henningsen) #10826
  • [73939ec701] - doc: clarify memory sharing behavior of buffer ctor (Zach Bjornson) #10778
  • [f8b081b519] - doc: fix broken internal link in (Anna Henningsen) #10828
  • [a53f881f57] - doc: update writable.write return value (Nathan Phillip Brink) #10582
  • [6e1a3d1e57] - doc: use correct tls certificate property name (Sam Roberts) #10389
  • [23edfe00b3] - doc: edit (Rich Trott) #10585
  • [9b73a8524f] - doc: fix misleading language in vm docs (Alexey Orlenko) #10708
  • [56ea7eb9a7] - doc: mention cc-ing nodejs/url team for reviews (Anna Henningsen) #10652
  • [66b34eac2f] - doc: sort require statements in tests (Sam Roberts) #10616
  • [238466bcf0] - doc: handle backpressure when write() return false (Matteo Collina) #10631
  • [ec226a2a3b] - doc: add test naming information to guide (Rich Trott) #10584
  • [b73e98bf48] - doc: fix missing negation in (Johannes Rieken) #10712
  • [bf95b074cd] - doc: "s/git apply/git am -3" in V8 guide (Myles Borins) #10665
  • [9c89b2f704] - doc: update LTS info for current releases (Evan Lucas) #10720
  • [3f1775707e] - doc: correct vcbuild options for windows testing (Jonathan Boarman) #10686
  • [8314d9ee73] - doc: killSignal option accepts integer values (Sakthipriyan Vairamani (thefourtheye)) #10424
  • [736a7f3dd3] - doc: update (Lukasz Gasior) #10669
  • [f81bd48818] - doc: document use of Refs: for references (Gibson Fahnestock) #10670
  • [b70dde0050] - doc: new TLSSocket has no secure context options (Sam Roberts) #10545
  • [d3628d9e47] - doc: modernize child_process example code (Vse Mozhet Byt) #10102
  • [3270d4c89b] - doc: clarify information about ABI version (Rich Trott) #10419
  • [1fca69c263] - doc,test: tls .ca option supports multi-PEM files (Sam Roberts) #10389
  • [78a495e1a4] - eslint: remove dangling eslint symlink (Sam Roberts) #10771
  • [5cca69320f] - events: avoid emit() eager deopt (Victor Felder) #10568
  • [ded17579e5] - events: improve removeListener() performance (Brian White) #10572
  • [d047f8e8f8] - fs: remove unused parameter for encodeRealpathResult (Jackson Tian) #10862
  • [4c0f29723c] - http: use direct parameters instead (Jackson Tian) #10833
  • [c32984361a] - http: make request.abort() destroy the socket (Luigi Pinca) #10818
  • [8ba2cf9c51] - http: define all used properties in constructors (vitkarpov) #9116
  • [75aa6050ab] - http: eliminate capture of ClientRequest in Agent (Evan Torrie) #10134
  • [5059b76cbc] - http: misc ClientRequest cleanup (Brian White) #10654
  • [44c0e4f1ad] - http: avoid duplicate isArray() (Brian White) #10654
  • [e7859c217f] - http: optimize default method case (Brian White) #10654
  • [c9bff043c7] - http: optimize short path validation (Brian White) #10654
  • [c012dd79dc] - https: Use secureProtocol in Agent#getName (Andreas Lind) #9452
  • [9a111e701e] - inspector: no crash when WS server can't start (Eugene Ostroukhov) #10878
  • [2d08bbadd6] - inspector: stop relying on magic strings (Eugene Ostroukhov) #10159
  • [e30e307a70] - inspector: move options parsing (Eugene Ostroukhov) #9691
  • [60f27f91e4] - inspector: remove unused uv_async_t (Eugene Ostroukhov) #10392
  • [a3abba0b1a] - lib: remove unnecessary parameter for assertCrypto() (Jackson Tian) #10834
  • [4de7b03a7d] - lib: refactor bootstrap_node.js regular expression (Rich Trott) #10749
  • [a6c93af244] - lib: refactor crypto cipher/hash/curve getters (Rich Trott) #10682
  • [6e8d627217] - lib,src: support values > 4GB in heap statistics (Ben Noordhuis) #10186
  • [de8eee6b16] - meta: decharter the http working group (James M Snell) #10604
  • [4caa0126aa] - openssl: fix keypress requirement in apps on win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [d24491c6a7] - (SEMVER-MINOR) process: add NODE_NO_WARNINGS environment variable (cjihrig) #10842
  • [97ff43232b] - querystring: improve unescapeBuffer performance (Brian White) #10837
  • [f4796d5f6e] - querystring: improve stringify() performance (Brian White) #10852
  • [53421b174c] - querystring: improve parse() performance (Brian White) #10874
  • [d64e2371f6] - readline: refactor construct Interface (Jackson Tian) #4740
  • [e7b656db6e] - Revert "repl: disable Ctrl+C support on win32 for now" (Anna Henningsen) #8645
  • [a24264eb18] - src: fix v8 local handling in (Anna Henningsen) #11064
  • [8a6367cb20] - Revert "src: don't overwrite non-writable vm globals" (Anna Henningsen) #10920
  • [978acd138f] - (SEMVER-MINOR) src: support "--" after "-e" as end-of-options (John Barboza) #10651
  • [cd94642356] - src: add NODE_NO_WARNINGS to --help output (cjihrig) #10918
  • [63f43021b0] - src: remove unused PROTOCOL_JSON array (Ben Noordhuis) #10407
  • [5a976decf7] - src: remove unnecessary req_wrap_obj (Daniel Bevenius) #10942
  • [0c0334f7a4] - src: add a missing space in (Alexey Orlenko) #10931
  • [b89d848b36] - src: enable writev for pipe handles on Unix (Alexey Orlenko) #10677
  • [f0de955220] - src: reduce test_inspector_socket_server output (Daniel Bevenius) #10537
  • [59196af646] - stream: avoid additional validation for Buffers (Brian White) #10580
  • [fe80bd9600] - test: add 2nd argument to throws in test-assert (Marlena Compton) #11061
  • [8ef4add4c3] - test: require handler to be run in sigwinch test (Rich Trott) #11068
  • [e367b74c4f] - test: add an exception test to http-write-head (Yuta Hiroto) #11034
  • [65691d68d5] - test: increase coverage of internal/util (DavidCai) #10964
  • [0753bc17b6] - test: increase timeout in break-on-uncaught (Sakthipriyan Vairamani (thefourtheye)) #10822
  • [eff3a48e63] - test: add known_issues test for #10223 (AnnaMag) #11024
  • [72a97b66dc] - test: guarantee test runs in test-readline-keys (Rich Trott) #11023
  • [e3a316f3e6] - test: check error message in test-http-outgoing-proto (Alex Ling) #10943
  • [fcd08b8a1e] - test: add tests for searchParams (abouthiroppy) #10952
  • [f3efaeed35] - test: increase coverage for stream's duplex (abouthiroppy) #10963
  • [b5e8413c3f] - test: allow for slow hosts in spawnSync() test (Rich Trott) #10998
  • [cfd1b19c34] - test: expand test coverage of fs.js (Vinícius do Carmo) #10947
  • [4aedde8d82] - test: expand test coverage of events.js (Vinícius do Carmo) #10947
  • [c1e166a168] - test: check noAssert option in buf.write*() (larissayvette) #10790
  • [580a453fcf] - test: expand test coverage of fs.js (Vinícius do Carmo) #10972
  • [fa8baa2aa1] - test: enhance test-timers (Rich Trott) #10960
  • [74ff804dbd] - test: add regression tests for vm bugs (Anna Henningsen) #10920
  • [1a39bfb7e2] - test: increase coverage for exec() functions (cjihrig) #10919
  • [4b38744e9b] - test: add process.assert's test (abouthiroppy) #10911
  • [e7c953a5f9] - test: update Buffer.lastIndexOf ( #10162
  • [eb7ee50717] - test: improve code in test-crypto-verify (Adrian Estrada) #10845
  • [efa9845946] - test: refactor test-cli-eval.js (cjihrig) #10898
  • [b7bf43aa2b] - test: use instead of assert(false) (cjihrig) #10899
  • [90a99177a3] - test: add dgram.Socket.prototype.bind's test (abouthiroppy) #10894
  • [dc826caed2] - test: update V8 flag in test (Franziska Hinkelmann) #10917
  • [537d954ed2] - test: increase coverage of string-decoder (abouthiroppy) #10863
  • [3cd9833eff] - test: add tests for rs+, sr+ to test-fs-open-flags.js (abouthiroppy) #10780
  • [c8a069e544] - test: improving coverage of dns-lookup (abouthiroppy) #10844
  • [939517abfd] - test: refactor test-fs-read-zero-length.js (abouthiroppy) #10729
  • [ffdf605f14] - test: improving coverage for dgram (abouthiroppy) #10783
  • [1666600f16] - test: improve code in test-console-instance (Adrian Estrada) #10813
  • [b496374363] - test: improve code in test-domain-multi (Adrian Estrada) #10798
  • [46bbabe6c2] - test: improve test-stream2-large-read-stall (stefan judis) #10725
  • [7f043779eb] - test: improve code in test-http-host-headers (Adrian Estrada) #10830
  • [66c57a24c2] - test: add test case to test-http-response-statuscode.js (abouthiroppy) #10808
  • [4a7bb5b4d1] - test: improve the code in test-crypto-dh (Adrian Estrada) #10734
  • [825842c185] - test: getgroups() may contain duplicate GIDs (Sam Roberts) #10389
  • [c6618df2cc] - test: improve test stream transform constructor (Adrian Estrada) #10699
  • [51f4c8bf5c] - test: s/assert.equal/assert.strictEqual/ (Gibson Fahnestock) #10698
  • [a6bd287724] - test: use eslint to fix var->const/let (Gibson Fahnestock) #10685
  • [e6b6ce429c] - test: refactor test-http-mutable-headers.js (cjihrig) #10664
  • [8262d49a44] - test: refactor cluster-preload.js (abouthiroppy) #10701
  • [fc0551072b] - test: improve test-crypto-rsa-dsa (Adrian Estrada) #10681
  • [727c5e3c96] - test: improve test-fs-write-file-sync (Adrian Estrada) #10624
  • [50130220dc] - test: s/assert.notEqual()/assert.notStrictEqual()/ (cjihrig) #10541
  • [44174a52a6] - test: refactor the code in test-util-debug.js (sivaprasanna) #10531
  • [b1c742e107] - test: improve test-fs-access (Adrian Estrada) #10542
  • [db7b27abb9] - test: refactor beforeExit tests (Rich Trott) #10581
  • [33851d1e2c] - test: fix process.title expectation (Sakthipriyan Vairamani (thefourtheye)) #10597
  • [af2bea70e0] - test: refactor test-beforeexit-event-exit.js (cjihrig) #10577
  • [0a2fb0d3e1] - test: refactor several parallel/test-timer tests (Beth Griggs) #10524
  • [dba8d20ccc] - test: improve the code in test-fs-read-stream (Adrian Estrada) #10556
  • [eba9add48e] - test: refactor test-timer-close (BethGriggs) #10517
  • [dd9aefde69] - test: use const for all require() calls (cjihrig) #10550
  • [807e99b81d] - test: validate errors in test-buffer-indexof (Adrian Estrada) #10752
  • [32da59ab18] - test: fix broken assertion (cjihrig) #10840
  • [29a4d354bc] - test: refactor test-cli-eval.js (Sumit Goel) #10759
  • [a06419b045] - test: refactor test-stream2-readable-wrap.js (David Goussev) #10551
  • [55377db9b0] - test: refactor test-stream-transform-object (Rich Trott) #10588
  • [fb35ca3598] - test: test hmac binding robustness (Sam Roberts) #10923
  • [94a266e1ef] - test: refactor the code in test-fs-watch.js (sivaprasanna) #10357
  • [3575f5159e] - test: reduce unmanaged parallelism in domain test (Joyee Cheung) #10329
  • [7822d86ee6] - test: increase usage of assert.ifError() (cjihrig) #10543
  • [e161dcf1fc] - test: add dgram.Socket.prototype.sendto's test (abouthiroppy) #10901
  • [be3e82dbbb] - test: check error message in test-fs-make-callback (legalcodes) #10914
  • [67d97bce5a] - test: improve test-assert (richnologies) #10916
  • [69a04a9c7b] - test: increase coverage for punycode's decode (abouthiroppy) #10940
  • [8778fca82b] - test: check fd 0,1,2 are used, not access mode (John Barboza) #10339
  • [e80f35c973] - test: verify shell option internals (cjihrig) #10924
  • [9d5170f850] - test: fix flaky test-regress-GH-897 (Rich Trott) #10903
  • [c60d87b1ad] - test: don't connect to :: (use localhost instead) (Gibson Fahnestock) #10854
  • [aa4b028523] - test: improve test-fs-open-flags (Vinícius do Carmo)
  • [35d665958e] - test: increase coverage of _http_outgoing (abouthiroppy) #10820
  • [c4f16949b8] - test: add message verification on assert.throws (Travis Meisenheimer) #10890
  • [5ce2ac800b] - test: refactor test-repl-tab-complete (Rich Trott) #10879
  • [999f685a69] - test: simplify array initialization (Rich Trott) #10860
  • [c77078f29f] - test: have inspector test pick an open port (Eugene Ostroukhov) #10861
  • [aa8771f842] - test: use common.hasIntl in tests related to ICU (Daijiro Wachi) #10841
  • [5b38776243] - test: add http-common's test (abouthiroppy) #10832
  • [96babb2090] - test: tests for _readableStream.awaitDrain (Mark) #8914
  • [7165f1d409] - test: improve the code in test-process-cpuUsage (Adrian Estrada) #10714
  • [b5c0b43efa] - test: increase test-crypto.js strictness (Rich Trott) #10784
  • [d818cfaaad] - test: improve test-fs-write-stream-throw-type (Adrian Estrada) #10779
  • [77cbc26a96] - test: delete duplicate test of noAssert in readUInt* (larissayvette) #10791
  • [36db5a663a] - test: add http_incoming's matchKnownFields test (abouthiroppy) #10811
  • [31d3a22989] - test: skip test-icu-transcode if Intl is not present (Daijiro Wachi) #10707
  • [8b02b4ebb4] - test: check error msg test-writeint.js (Irene Li) #10755
  • [5aad0ccefe] - test: no unused args test-fs-watch-file.js (istinson) #10758
  • [fca0da711d] - test: improve tests in pummel/test-exec (Chase Starr) #10757
  • [7d917dcb27] - test: fix temp-dir option in tools/ (Gibson Fahnestock) #10723
  • [6b54024324] - test: use realpath for NODE_TEST_DIR in common.js (Gibson Fahnestock) #10723
  • [c6aeb4491b] - test: fix linting for test-tls-add-ca-cert.js (Sam Roberts) #10771
  • [542f65c66b] - test: tls cert chain completion scenarios (Sam Roberts) #10389
  • [97a8bd20c6] - test: check tls server verification with addCACert (Sam Roberts) #10389
  • [ebcf834c14] - test: move common tls connect setup into fixtures (Sam Roberts) #10389
  • [30926ac6d6] - test: move resource intensive test to sequential (Rich Trott) #10744
  • [06a1e9eb7b] - test: add test for noAssert option in*() (larissayvette) #10713
  • [160d0381d2] - test: refactor test-crypto-padding-aes256 (adelmann) #10622
  • [cb111c96cc] - test: refactor the code of test-keep-alive.js (sivaprasanna) #10684
  • [dbb7727320] - test: validate 'expected' argument to mustCall() (Nathan Friedly) #10692
  • [e408f0a1f5] - test: fix misplaced ) in http response statuscode test (Nathan Friedly) #10692
  • [4c8676bc26] - test: refactor test-doctool-html.js (abouthiroppy) #10696
  • [da572131db] - test: improve the code in test-process-hrtime (Adrian Estrada) #10667
  • [17d9a739c1] - test: refactor test-watch-file.js (sivaprasanna) #10679
  • [cf5579d746] - test: improve zlib-from-gzip-with-trailing-garbage (Michael Lefkowitz) #10674
  • [2d856097b3] - test: refactor the code in test-child-process-spawn-loop.js (sivaprasanna) #10605
  • [1329eb47f0] - test: allow testing uid and gid separately (cjihrig) #10647
  • [4aa32c196a] - test: improve code in test-https-strict (Adrian Estrada) #10648
  • [e78de99bcb] - test: improve test-http-chunked-304 (Adrian Estrada) #10462
  • [ff23d8112a] - test: improve test-fs-readfile-zero-byte-liar (Adrian Estrada) #10570
  • [38bdfb0b8e] - test: refactor test-fs-utimes (Junshu Okamoto) #9290
  • [09f35a49e3] - test: provide duration/interval to timers (Rich Trott) #9472
  • [06a82436c2] - test: improve test-event-emitter-modify-in-emit (Adrian Estrada) #10600
  • [736b95a617] - test: check error and cleanups in test-fs-read-buffer (Anna Henningsen) #10611
  • [a77940c2d5] - test: mark test-tty-wrap as flaky for AIX (Michael Dawson) #10618
  • [cf875d17f3] - test: improve test-fs-null-bytes (Adrian Estrada) #10521
  • [656ba86a27] - test: fix Coverity warning in inspector test (Eugene Ostroukhov) #10510
  • [9916ee8c36] - test: refactor test-https-truncate (Rich Trott) #10225
  • [4ff1d3107f] - test: add http.ClientRequest defaults test (Brian White) #10654
  • [1555ced404] - test, win: fix up symlink tests (Hitesh Kanwathirtha) #10477
  • [4323c8018e] - test,cluster: add test-cluster-worker-deprecated (Rich Trott) #10675
  • [33af09fe6a] - test,net: add tests for server.connections (Rich Trott) #10762
  • [fc2db50021] - test,repl: add coverage for repl .clear+useGlobal (Rich Trott) #10777
  • [84bf04b0c1] - test,util: remove lint workarounds (Rich Trott) #10785
  • [c6af766ad9] - test-console: streamline arrow fn and refine regex (John Maguire) #11039
  • [8fae9d4cfb] - tools: rename eslintrc to an undeprecated format (Sakthipriyan Vairamani) #7699
  • [dd5a4e1d75] - tools: update ESLint to current version (Rich Trott) #10561
  • [c92b8ecd81] - (SEMVER-MINOR) tools: add mdn link for Iterator (James M Snell) #10620
  • [dec5900c42] - tools: add lint rule to enforce timer arguments (Rich Trott) #9472
  • [891874406a] - tools: remove no-useless-regex-char-class-escape (Rich Trott) #10561
  • [1634a7017e] - tools: remove custom align-function-arguments rule (Rich Trott) #10561
  • [31f8f6f768] - tools, test: require const/let in test (Gibson Fahnestock) #10685
  • [d39543e73d] - tools,doc: add Google Analytics tracking. (Phillip Johnsen) #6601
  • [3adda4b2ad] - tools,test: enforce assert.ifError with lint rule (Teddy Katz) #10671
  • [438a98ca95] - url: make URLSearchParams/Iterator match spec (Timothy Gu) #11057
  • [2bfd58adb1] - url: define @@toStringTag as a data property (Timothy Gu) #10906
  • [f1851cb8e4] - url: do not public expose inspect methods on URL (Timothy Gu) #10906
  • [b48b80f630] - url: stop exporting originFor() (Timothy Gu) #10955
  • [c0c1a4c029] - url: refactor lib/internal/url.js (Rich Trott) #10912
  • [2f9fdc454f] - (SEMVER-MINOR) url: allow use of URL with http.request and https.request (James M Snell) #10638
  • [95faa55ab9] - url: check forEach callback is a function (Timothy Gu) #10905
  • [3642f35d09] - url: add return value to ToUnicode/ToAscii stubs (Birunthan Mohanathas) #10893
  • [021338dc6d] - url: export URLSearchParams (Timothy Gu)
  • [5d33c96679] - url: improving URLSearchParams (Timothy Gu) #10399
  • [824978e337] - url: do not decode arbitrary %2e sequences in paths (James M Snell) #10602
  • [e46bdcf2bb] - url: change null password handling (James M Snell) #10601
  • [2b01138451] - url: TupleOrigin#toString use unicode by default (Joyee Cheung) #10552
  • [9f6d1f6fc2] - util: improve readability of normalizeEncoding (Joyee Cheung) #10439
  • [d628f3a227] - util: avoid out-of-bounds arguments index access (Teddy Katz) #10569
  • [2641cd496d] - vm: improve performance of vm.runIn*() (Rich Trott) #10816

Windows 32-bit Installer:
Windows 64-bit Installer:
Windows 32-bit Binary:
Windows 64-bit Binary:
macOS 64-bit Installer:
macOS 64-bit Binary:
Linux 32-bit Binary:
Linux 64-bit Binary:
Linux PPC LE 64-bit Binary:
Linux PPC BE 64-bit Binary:
Linux s390x 64-bit Binary:
AIX 64-bit Binary:
SunOS 32-bit Binary:
SunOS 64-bit Binary:
ARMv6 32-bit Binary:
ARMv7 32-bit Binary:
ARMv8 64-bit Binary:
Source Code:
Other release files:


Hash: SHA256

b97c867927ee4d32526ff411b2fc53b6131f5defbf3c1f487c7068da7d2ad3bf node-v7.5.0-aix-ppc64.tar.gz
97b54cc473710585c7277c1786cd7085eae157f6dc8f77b71bc4de1cb3dacda7 node-v7.5.0-darwin-x64.tar.gz
e9e3537e9adc24b6845a36c2545492c24d550b4c87223ed0c0e951aad543f5a4 node-v7.5.0-darwin-x64.tar.xz
f32d269310ef465ccb0937a90ee2a495749988c54acb75348989aed2aed9fe3f node-v7.5.0-headers.tar.gz
6c13bb11ea0d925b8d348932d459c876cfd0b754b369015a75661a8293c4c469 node-v7.5.0-headers.tar.xz
101e89fd4547569bbc4bcf1081bf6bb6c8410bdfe913ffbf35f25789eda9bca9 node-v7.5.0-linux-arm64.tar.gz
3b548d106dccb53ad5468eb3120f9db9b71c5ae854dfe5cfde9ba6f5d7519bfa node-v7.5.0-linux-arm64.tar.xz
18e6710519eefb0345878618e9f8139361f9efb966a72e522e4011bd38b5d9f9 node-v7.5.0-linux-armv6l.tar.gz
9560e61603ef8a36ee881f55e4f505fe1c62377a3479a5f3dc8a8d8da6f0c2a1 node-v7.5.0-linux-armv6l.tar.xz
cc8feda1f4f2eb995857f98ca96390d3fd794edc8e14363072f5923d81ae96f7 node-v7.5.0-linux-armv7l.tar.gz
b4ceb22b2ea519d41be76161be95ac96c01b5fd8cf17060635497621b89d171b node-v7.5.0-linux-armv7l.tar.xz
79fe8b93e2c3ffc9636d96a91fb3b8728462132ba4b6a4b0dca1a50fe1523237 node-v7.5.0-linux-ppc64le.tar.gz
3603ea26ac041d2bedda91680117b7046d6c78d9dbc905599309725c8e2337b8 node-v7.5.0-linux-ppc64le.tar.xz
b3fc5671dfd8a646abbd4db13a4eb16f6ae8d77688584b17d3fa3ff0b242fa64 node-v7.5.0-linux-ppc64.tar.gz
5c52f7215c8f460c562e4441cc06c2ffb48391acf30e5530cd5b3c18fe4fbb50 node-v7.5.0-linux-ppc64.tar.xz
bf2ec793df9ad0f543e37b6d02ef53d12162f96a8bd2e8359b2405b9e34d3d11 node-v7.5.0-linux-s390x.tar.gz
702cc054dc7072a1690b6211cef13aa5ff210665aa40dfcdc763158651a1c06a node-v7.5.0-linux-s390x.tar.xz
901cc6ef6a12e6807d21090868b16bd41df3e9c41a92065bd0dfea1ef1a35730 node-v7.5.0-linux-x64.tar.gz
600e38b3b76baa2d9537ecf9b6d39b6c021326683db0f42e12178530ff867b61 node-v7.5.0-linux-x64.tar.xz
976dca95f2a06034c37415869472bbce288143d1660af4b79304caa063ac766f node-v7.5.0-linux-x86.tar.gz
28069d4ade798a940c7844e47b1220b062e31759d0205c233a4943a02fd7fce5 node-v7.5.0-linux-x86.tar.xz
2049c13ff11cce47a31cbf434aedc7449cd1248e630d997e7f8c03967b27d054 node-v7.5.0.pkg
5eb6d7e2305b59bc0acf4d85eb07282ee06bbcf55677535935bb8069b7477029 node-v7.5.0-sunos-x64.tar.gz
7e5b15d9adacaa52e19381db64f4494c18034562385b5520da1271d4122682c8 node-v7.5.0-sunos-x64.tar.xz
62ffc2f5f8f6d5006d31c64bfab0826fbacc6a00625810bd23ddfcece5bf820d node-v7.5.0-sunos-x86.tar.gz
c30d9bc9ad01c43bcd95f83ff7e43da3d88c1eab57f83fbe08cbe4d0ee4c75dc node-v7.5.0-sunos-x86.tar.xz
0da8e0288b5c0f136e650b7119219968720caf88b5a67ef0591555113f0844c2 node-v7.5.0.tar.gz
f99ee74647fe223eb03f2dd1dc6acdc14d9a881621376c848236c8d2ac8afd03 node-v7.5.0.tar.xz
0bc433d59d2ce1b991fc5f56ab69bd170e935841650bae40d3626da61f1fce6d node-v7.5.0-win-x64.7z
953162b30208ccc77b3a3548c5e5dc9a6fb3e5489c5fd1ef313c5d0983a1eea9 node-v7.5.0-win-x86.7z
be6f9b7575a8a2d26b959814899d6aa4a91bc06bf65081064bb3b1cbe7a3e142 node-v7.5.0-x64.msi
2e63fde6af03e510dee11fbf0217a3a96a64fed712ae5ec6a8ae6541df791e77 node-v7.5.0-x86.msi
b9c25d0a25c1f884351d7f9a45b0aa006401587cf94c99ac5045126de2daf0d7 win-x64/node.exe
1c9a1a9daf54fd24bd53f72189ad71c9620de827865d4448aabb0d58f8f8dd41 win-x64/node.lib
0e3a3dda9a32c1c153c5a5ae852dc01f345dad4822342800c36ee39cb31828ac win-x64/node_pdb.7z
e46d1e2ed36d04230f68c08fc7710ad61ce734c8cb7367e29bd3a0e62e89febf win-x64/
1ff170e3fa92765b676f12a514944a3f3f95df463b335bb897ddaafa108e06be win-x86/node.exe
6b1796289ac29a6b242e7a9b2ab4c1c2064527e6efb06af30b8c60a24e723268 win-x86/node.lib
cc91420405a7d34bf5a46d2915d1265c625532919f681eab6e70345af193f8a3 win-x86/node_pdb.7z
4f0c765e1687b76003b4152cdd4e66acaead160cb9f44d40bb4f8e9ab51a6d91 win-x86/
Comment: GPGTools -


OpenSSL 업데이트, 1.0.2k

(2017년 2월 1일 수정사항) 릴리스 되었습니다.

Node.js의 모든 릴리스 라인이 업데이트 되었습니다.

다음 릴리스에는 OpenSSL 1.0.2k가 포함되어 있습니다.

중대한 업데이트는 아니지만, 이 릴리스 라인을 사용하는 모든 사용자는 가능한 한 빨리 업데이트해야 합니다.

이하는 원문의 내용입니다.

OpenSSL 프로젝트에서 OpenSSL 1.0.2k 버전을 바로 사용할 수 있다고 발표했습니다.

OpenSSL 팀이 최고 심각성 등급을 "중간"으로 결정했지만 Node.js 암호화 팀(Ben Noordhuis, Shigeki Ohtsu, Fedor Indutny)은 Node 사용자에게 미칠 영향을 "낮음"으로 결정했습니다. 이 결정의 자세한 내용은 아래에 나와 있습니다.

그러므로 1월 31일 화요일에 활성화된 모든 릴리스 라인(7 "현재 버전", 6 "LTS Boron", 4 "LTS Argon")을 업데이트하기로 했습니다. 릴리스 되면 뉴스 피드와 이 글에 자세한 내용을 올릴 예정입니다.

Node.js 영향 평가

CVE-2017-3731: OOB 읽기에서 끝이 잘린 패킷이 크래시를 일으킬 수 있습니다.

이는 OpenSSL에서 중간 등급의 심각도를 가진 결함입니다. 기본적으로 Node.js가 RC4를 비활성화하므로 대부분 사용자는 영향을 받지 않습니다. 프로그래밍적으로 RC4를 활성화할 수 있으므로 Node.js 개발자가 이 결함에 취약한 코드를 만들 수 있습니다. 작성한 코드에서 RC4를 활성화한 사용자는 이 수정사항을 중요하게 여겨야 합니다.

Node.js의 모든 활성 버전이 영향을 받지만, 대부분 사용자에게 심각도는 아주 낮습니다.

CVE-2017-3730: 잘못된 DHE와 ECDHE 파라미터가 클라이언트의 크래시를 일으킬 수 있습니다.

이 결함은 OpenSSL 1.1.0에만 영향을 주고 현재 활성화된 Node.js 릴리스는 이 버전을 포함하고 있지 않으므로 Node.js는 영향을 받지 않습니다.

CVE-2017-3732: x86_64에서 BN_mod_exp가 잘못된 결과를 만들 수 있습니다.

OpenSSL 팀이 언급한 대로 이 결함을 사용해서 실제 공격을 할 가능성은 아주 낮습니다. 게다가 Node.js는 SSL_OP_SINGLE_DH_USE를 활성화했으므로 Node.js 서비스에서 이 취약점을 이용할 가능성은 더 낮아집니다.

Node.js의 모든 활성 버전이 영향을 받지만, 대부분 사용자에게 심각도는 아주 낮습니다.

CVE-2016-7055: 몽고메리 곱셈이 잘못된 결과를 만들 수 있습니다.

어떤 계산이 Intel 브로드웰이나 더 최신 CPU에서 동작할 때 잘못된 결과를 만들 수 있습니다. 이 결함은 GitHub Node.js 팀에서 이미 논의했습니다. 아주 특정 환경이 아니라면 이 취약점을 이용해서 실제 공격을 할 수 있다고 생각하지 않습니다. 그러므로 이는 심각도가 낮은 결함입니다.

Node.js의 모든 활성 버전이 영향을 받지만, 대부분 사용자에게 심각도는 아주 낮습니다.

Node.js 재단과 리눅스 재단, 새로운 Node.js 인증 프로그램 위해 협력

Node.js 재단이 가장 빠르게 성장하는 플랫폼 Node.js를 위한 기업 중립적인 인증 프로그램을 시행합니다.

샌프란시스코, 2017년 1월 26일 - Node.js 플랫폼의 개발을 개선하려고 커뮤니티와 기업이 함께 만든 Node.js 재단에서 오늘 Node.js 분야의 자격 기준을 확립하기 위한 Node.js 인증 프로그램을 최초로 개발하겠다고 발표했습니다.

Node.js는 월평균 450만 명 이상의 활성 사용자가 있는 가장 유명한 프로그래밍 언어 중 하나입니다. 오늘날 Node.js는 다양한 규모의 기업에 상승세를 그리며 널리 사용되고 있지만, Node.js 사용을 확대하려는 기업에서는 Java 개발자를 재교육하거나 신규 직원을 고용하는데 어려움을 겪고 있습니다.

Node.js 재단의 교육 커뮤니티 관리자인 Tracy Hinds는 “숙련된 Node.js 전문 기술의 부족 현상을 개선하기 위해 Node.js 재단은 훌륭한 커뮤니티 회원 및 코어 전문가들의 도움을 받아 광범위한 인증 프로그램을 개발하고 있습니다. 기업 환경에서 일하든 프리랜서로 일하든 Node.js 인증 개발자가 된다면 수요가 많은 기술에 능숙한 Node.js 개발자로 성공하는 데 득이 될 것입니다.” 라고 말했습니다.

Node.js 전문가와 공헌자들의 노력으로 만들어지는 Node.js 개발자 인증 프로그램은 2017년 2분기에 공개될 전망입니다. 이 프로그램은 일반적인 Node.js 자격에 관한 틀을 제시하며 기업에는 자격 있는 Node.js 개발자를 빠르게 확인할 수 있도록 돕는 한편, 개발자, 프리랜서, 컨설턴트에게는 시장에서 자신을 차별화 할 방안이 되어줄 것입니다.

Node.js 재단은 인증 프로그램의 청사진과 관리 프로세스를 작성하기 위해 리눅스 재단과 긴밀히 협업했습니다. 리눅스 재단은 오픈소스 커뮤니티와 밀접한 관련이 있어서 Node.js 교육과 인증 프로그램을 시행하기 위한 터전을 제공해주었습니다. 리눅스 입문, DevOps 입문: 운영 혁신과 개선, 리눅스 애플리케이션 개발, 쿠버네티스(Kubernetes) 기초를 비롯한 여러 공개 온라인 코스(MOOC)가 제공될 것입니다.

Node.js 개발자 인증의 대상은 Node.js 플랫폼과 JavaScript를 능숙하게 사용할 줄 아는 초중급 개발자입니다. 자습형 온라인 시험의 가격은 현재 미정입니다.

현재 Node.js 재단은 커뮤니티와 함께 시험 문제를 작성하고 있습니다. Node.js 재단 인증 개발 문제 출제 워크숍 세션(Node.js Foundation Certification Development Item Writing Workshop Sessions)에 공헌하고 싶다면 지원서를 작성해서 제출하면 됩니다.

향후 공개될 시험 주제는 인증 시험을 준비하는 자료로서는 물론 Node.js 학습의 지표로 삼을 수 있을 전망입니다.

Node.js 개발자 인증 프로그램이 다음 단계로 나아가기 위해 지원자가 필요합니다.

우리(Node.js 재단)는 새로운 Node.js 개발자 인증 프로그램에 대한 작업을 촉진하기 위해 11월에 Node.js Interactive에서 커뮤니티와 함께 직접 개발 워크숍을 개최했습니다.

인증 프로그램은 Node.js의 기준 역량을 수립하는 것을 목표로 합니다. 모든 분야의 전문가는 아니지만 인증을 통과한 개발자는 Node.js 분야에서 열정적으로 일을 시작할 수 있을 것입니다.

직접 모여 이루어진 개발 워크숍에서 인증 후보자가 Node.js 인증 개발자가 되는 것을 검증할 수 있는 시험, 기술에 대한 구체적인 주제를 포함하여, 지식 및 능력에 대한 구체적인 주제를 결정했습니다.

현재 우리는 커뮤니티와 협력하여 시험에서 요구되는 특정 문제를 고려하고 있습니다. 워크숍 세션을 작성하는 Node.js 재단 인증 개발 항목에 기여하려면 신청서를 작성하세요.

올해 2분기에 출시될 것으로 예상되며, 자체 진행 온라인 시험의 가격은 아직 결정되지 않았습니다. 시험은 약 3.5 시간이 걸릴 것으로 예상됩니다. 시험에서 다루게 될 주제는 인증을 준비하는 데 도움이 되는 자원으로 공개적으로 게시되며, 다른 사람들이 자신의 Node.js 학습을 위해 소스 자료를 활용할 수 있도록 합니다.

아래는 인증 프로그램의 목표, 지금까지 수행된 작업 및 참여 방법에 대한 자세한 내용입니다.

누가 인증 혜택을 얻습니까?

이 인증은 벤더 중립적인 프로그래밍 언어 인증 프로그램 중 가장 큰 프로그램 중 하나이며, Node.js의 성장을 더욱 촉진하도록 설계되었습니다. 다음은 인증이 도움을 주는 경우입니다.

  • 회사 내에서 Node.js 역량을 증명해야 하는 사람들
  • 고용 또는 경력 교육을 위해 이력서를 향상시키고자 하는 대체 프로그래밍 학습자
  • Node.js 기술을 검증하여 시장에서 차별화하기를 희망하는 계약자 및 컨설턴트
  • 개발자의 시장성을 높이는 Node.js 기술 식별

이상적인 Node.js 인증 개발자 후보자는 안전한 프레임워크 독립 애플리케이션 및 CLI 도구를 작성, 디버그, 테스트 및 유지 관리하기 위해 Node.js 플랫폼에서 JavaScript로 능숙하게 작업할 수 있는 초기 중급 수준의 엔지니어입니다. 이들은 비동기 I/O를 효과적으로 처리 할 수 있으며 HTTP, 파일, 스트림 및 다중 프로세스를 사용하여 다양한 데이터를 효율적으로 조작, 변환 및 유지할 수 있습니다. 또한 타사 모듈을 효과적으로 활용하고 통합 할 수 있습니다.

프로세스 : 토론, 합의, 결과

Node.js 사용자의 규모와 필요성을 감안할 때 현재 한 달에 4.5 백만 이상의 활성 사용자가 있습니다. 이 플랫폼 및 다양한 커뮤니티에 대한 인증을 만드는 것은 결코 쉬운 일이 아닙니다. Node.js 개발자 인증 프로그램을 만드는 과정과 노력은 우리에게 매우 진지합니다.

우리는 Linux 재단과 긴밀하게 협력하여 청사진을 만들고 프로그램 관리 프로세스를 진행했습니다. Linux 재단은 오픈 소스 커뮤니티와의 긴밀한 관계 덕분에 교육 및 인증 프로그램을 운영 할 수 있는 중립적인 장소를 제공합니다. Kubernetes 기초를 포함한 몇 가지 온라인 코스 및 자격증을 제공합니다. 다른 많은 것들 중에, Linux 재단 인증 시스템 관리자(LFCS), Linux 재단 인증 엔지니어(LFCE)가 있습니다.

Linux 재단의 일환으로 우리는 7월에 워킹 그룹을 시작하여 다음과 같은 작업을 수행했습니다.

  • 인증 정의: 레벨, 타이틀, 프로그램 목표의 수.
  • 직무 작업 분석 수행: 인증 후보자가 수행할 수 있어야 하는 각 도메인 내의 작업 도메인 및 해당 작업을 정의합니다.
  • 인증의 범위 진술 정의: 유능한 것으로 간주되기 위해 Node.js 엔지니어가 알아야 할 기본 토대를 결정하는 작업 태스크 분석 워크숍.
  • 시험 내 청사진 정의: 시험 내 특정 시험 영역 및 작업 및 관련 가중치가 포함된 청사진을 정의합니다.

이 그룹에는 많은 가상 회의가 있었고 북미 Node.js Interactive에서 직접 작업 태스크 분석(JTA) 워크숍을 개최했습니다. JTA는 인증된 응시자가 시험 청사진인 JTA의 결과를 통해 보여줄 수 있어야 하는 기술, 지식 및 능력을 그룹이 결정할 수 있도록 도움을 주었습니다.

워크숍과 지금까지의 진척 상황은 Tierney Coren, Ryan Lewis, Fabio Fonseca, Rajat Kumar, Charlie Robbins, Brad Farias, David Clements, Nathan White, Lawrence Grant, Chase Moody와 같은 많은 개인의 도움으로 가능했습니다.

고맙습니다! 고맙습니다! 모든 도움에 감사드립니다!

향후 계획은 무엇인가요? 내가 도움이 될 수 있습니까?

다음 작업 단계에서는 시험에 중점을 둘 주제(항목 작성자가 필요합니다!)에 대한 구체적인 질문을 마무리합니다. 우리는 이 작업에 참여하기 위해 Node.js에 대한 이해가 중급 정도인 사람들을 찾고 있습니다. 당신은 글쓰기에 관한 질문에 매우 익숙해져야 하며, 도메인에 관련된 "어려움"을 알아야 합니다.

각 항목 작성자는 하나의 질문만 작성할 수 있으며 자신의 인증을 받을 수 있는 자격을 유지하기 위해 몇 가지 질문만 볼 수 있습니다. 형식 및 질문 작성 방법을 검토하는 소개 웹 세미나에 1.5시간, 핵심 항목 검토 팀과 함께 질문을 작성하고 검토하는 데 2-5시간 제공될 것입니다.

이 과정에 참여하고 싶다면 Node.js 재단 개발 인증 항목 작성 워크숍 세션에 참여하세요. Node.js 주변의 인증 프로그램이나 일반 교육 이니셔티브에 대한 정보를 얻으려면 교육 페이지를 확인하거나 커뮤니티 뉴스 레터에 가입하십시오.

Node.js 재단 개인 회원 이사 선출, 1월 20일 금요일 개회

Node.js 재단은 회원이 지원하는 조직입니다. Node.js 재단의 개인 회원 이사는 Node.js 프로젝트 커뮤니티의 목소리를 이사회에 전달하는 역할을 합니다. Node.js 재단에는 두 명의 개별 이사가 있으며, 그들은 2년의 임기를 가집니다.

“커뮤니티를 대표하게 되는 것은 오픈 소스 프로젝트에 매우 중요합니다. 이사회에 커뮤니티가 목소리를 낼 수 있도록 하고 우리가 투자 결정을 내리는 방법을 안내하는 데 도움이 됩니다. 개별 이사회 회원은 제안된 게시판 항목이 커뮤니티에 미치는 영향에 대한 피드백을 제공할 수 있으며 Node.js 재단이 어떻게 커뮤니티를 더 잘 지원할 수 있을지에 대해 제안할 수 있습니다. 이러한 지식과 피드백을 통해 이사회는 커뮤니티가 건강을 유지하고 계속 성장할 수 있는 자원을 제공할 수 있습니다.”

Todd Moore, Node.js 재단 관리자

개인 회원 이사는 다른 개인 회원 및 커뮤니티 전체의 소망을 나타내는 피드백 및 데이터를 요청할 책임이 있습니다. 그들은 커뮤니티를 가장 잘 대표할 수 있는 정보를 토대로 결정을 내릴 의무를 맡았습니다. 그리고 관련성이 있고 그렇게 할 수 있는 허가가 있을 때 제안서에 대한 의견을 수집할 수 있습니다.

여기에는 이사회 회의에 참여하고 투표하는 것, Node.js 프로젝트의 임무 달성을 위한 계획을 세우고 주도하는 것, 연설 참여 시 이사회를 대표하는 것이 포함됩니다.(이는 포괄적인 목록이 아닙니다) 더 자세히 알아보려면 "What’s it like being on the Node.js Foundation Board of Directors?"를 읽어보세요.

이사회는 무엇을 합니까?

이사회는 결의안을 승인하고 Node.js 재단 행정 문제에 대해 논의하기 위해 매달 만납니다. 여기에는 법적 고려 사항, 예산 책정 및 재단 주도 회의 및 기타 이니셔티브 승인이 포함됩니다. 기술 거버넌스는 이사회가 아닌 TSC가 감독합니다.

현재 이사회 멤버는 여기에 나열되어 있습니다.

개인 회원 이사 자리를 누가 운영합니까?

후보자가 아래에서 왜 활동하는지 자세히 알아보십시오.

선거는 언제입니까? 추천은 1월 15일까지 권유되었습니다.

  • 투표용지는 1월 20일에 배포될 예정입니다.
  • 선거는 1월 30일 17:00 UTC에 끝납니다.

선거 참여는 어떻게 합니까?

투표를 하려면 Node.js 재단의 개별 회원이어야 합니다. 회원인 경우 지금 투표 할 수 있습니다!

회원이 되려면 어떻게 해야 합니까?

연간 회원 비용 연 100$, 또는 학생용 25$입니다. 모든 워킹 그룹 및 하위 프로젝트를 포함하여 Node.js 프로젝트 참여자는 무료 회원 자격을 얻을 수 있습니다. 할인 코드는 저희에게 문의해 주십시오. 등록하려면 GitHub 계정이 있어야 합니다.

개별 회원이 되는 것의 이점은 무엇입니까?

  • 위에서 언급한 두 명의 선출된 개별 회원 이사를 통해 Node.js 재단 이사회에서 투표를 하거나 목소리를 낼 수 있습니다.
  • Node Interactive 2017를 정기 가격의 20% 할인해줍니다.

(디지털)설문 조사에서 만나요.

Node.js 코어에 기여하고 싶습니까? 읽어보세요.

  • 처음 PR을 제출한 후 기분이 어떨까요.

당신의 2017년에 새해 결심 중 하나가 Node.js 프로젝트에 다시 기여하기입니다. 그럼 어디서 시작해야 할까요?

Node.js 핵심 기술위원회 멤버인 Rich Trott는 이 Node.js Interactive North America 비디오에서 Node.js Core에 기여하는 것에 대해 이야기했지만, 이야기가 끝난 후에도 여전히 많은 질문이 있었습니다.

그는 Node.js 공동 작업자인 Anna Henningsen, Bryan English와 Sideway에서 대화를 진행해서 Node.js 프로젝트에 참여하고자 하는 사람들로부터 추가 질문에 답할 수 있도록 했습니다.

아래 대화의 요약 버전입니다. 이 주제에 대해 더 궁금한 점이 있습니까? 트위터 또는 GitHub에서 Anna, Bryan, Rich에게 문의하세요.

Node.js에 기여하는 것이 중요한 이유는 무엇입니까?

Rich: Node.js Core에 기여하는 사람들을 돕는 것이 적어도 두 가지 이유에서 중요합니다.

  • 첫째, 프로젝트의 건강에 기여합니다. 재능을 가진 사람들이 재능을 사용하여 프로젝트를 도울 수 있다면 프로젝트에게 이익입니다.
  • 둘째로, 이것은 (사견으로는)도덕적인 책임입니다. 기여자를 도우려고 열정적이라면 이는 우리가 배타적이지 않음을 의미합니다. 최소한 새로운 기여자나 기존의 기여자를 도우려고 하지 않는 것보다는 덜 배타적입니다.

Bryan: 저는 사람들이 프로젝트를 "다른" 사람들이 작성한 코드의 업스트림 덩어리가 아니라 자신의 응용 프로그램으로 생각하는 것이 중요하다고 얘기하고 싶습니다. 그래서 더 많은 사람들을 기여하도록 하는 것이 중요합니다.

Anna: 좋은 의견입니다. Node.js 코어가 과거에 가지고 있던 문제이고 저는 이 부분이 실제로 동작하게 하는 중요한 방법이라고 생각합니다!

질문: 대단한 개발자가 아닌 개발자가 Node.js Core에 어떻게 기여할 수 있습니까?

Rich: 그 질문에는 두 가지 답변이 있다고 생각합니다. 하나는 개발자가 아니면서 개발자가 되는 데 관심이 없는 사람이고 다른 하나는 개발자이지만 경험이 많지 않은 사람들입니다.

Anna: 개발자가 아닌 경우 항상 문서를 찾아보고 자신에게 명확하지 않은 오타나 구절을 찾아봐야 합니다.(특히 개발자가 아니거나 경험이 없는 개발자의 경우)

William Kapke는 Node.js Core 자체에 코드를 작성하지 않고 Node 프로젝트에 기여하는 방법에 대해 이야기합니다. 텍사스 오스틴에서 열린 Node Interactive의 발표 - 시간이 있다면 들을 만한 가치가 있습니다.

Rich: 영어를 잘한다면 문서에서 도울 수 있는 부분이 많습니다. 하이픈의 남용, 많은 쉼표와 이어쓰기, 수동문의 남용, 너무 장황하고 편집할 필요가 있는 많은 부분들... 물론 문서의 누락과 오류도 여기에 포함됩니다. 이런 부분을 고쳐주세요.

영어가 아닌 다른 언어에 강하다면, 번역 작업은 도움이 항상 필요하며 환영합니다. (불행하게도, 영어 이외의 문서는 각 언어를 기반으로 별도의 저장소에 있습니다.)

Anna: 이 작업에 열심인 경우 문서의 소스 파일은 다음 위치에 있습니다.

Rich: 발견한 버그에 대한 이슈를 등록하는 것도 Node.js Core에 기여하는 방법에 포함시키고 싶습니다. 좋은 버그 리포트(좋은에 강조)는 아주 가치있습니다.

경험이 별로 없다면 코드 기여를 하는 방법에 관한 다른 질문으로 테스트에서 코드를 정리하는데 사람들을 배정하려고 합니다. 처음 기여하는 사람에게 적합한 작업이라고 생각합니다. 경험이 있든 없든 시작하기 좋습니다. 왜냐하면 코드가 어떻게 작동하는지에 초점을 맞추는 것이 아니라 처음 기여할 때 프로세스에 집중하는 것이 바람직하기 때문입니다.

테스트는 대개 이해할 수 있으며, 그렇지 않은 경우에도 var의 일부 인스턴스를 const로 변경하고 assert.equal() 인스턴스 몇 개를 assert.strictEqual()로 바꾸는 것이 안전하다고 느낄 수 있습니다.

Node.js에 기여한 적이 없는 사람이라면 간단한 첫 번째 커밋을 요청할 수 있는 트위터 계정(@NodeTodo)과 이메일 주소 (가 있습니다.

Anna: 그래서 한 가지, 걱정 마세요! Node.js는 대규모 소프트웨어 프로젝트이기 때문에 기본적으로 위협적입니다. 그러나 실수로 무언가를 깨뜨리는 것에 대해 걱정해야 한다는 것은 현실적이지 않습니다. 우리는 그러한 사고를 막기 위한 많은 메커니즘을 가지고 있습니다. 우리는 처음으로 기여자들이 도전에 나서는 것에 대해 항상 행복하게 생각합니다! :)

Bryan: 저의 첫 번째 기여를 비롯한 많은 기여는 자신의 일상 업무에서 필요로 하는 것이 아니므로, 버그 리포트(Rich가 언급한 좋은 버그 리포트)를 제출할 때, 이를 첫 PR로 만들 수 있을지 생각해보세요.

Anna: 맞아요. 당신이 일을 하고 있는 것처럼 느껴진다면 git 저장소에서 Node.js를 컴파일하고 설치하여 기본 노드 바이너리가 되고 때때로 업데이트할 수 있습니다. 이것이 기본적으로 Node.js에서 버그를 찾기 시작하는 방법입니다.

Rich: 간혹 프로그램이 깨져도 처리할 수 있는 환경에서만 그렇게 해야 합니다. :-D

Anna: 맞습니다. ;) 버그가 발생하는 경우 - 감당하지 못할 것으로 보일 경우 직접 수정해야 한다고 생각하지 마세요. Rich가 말했듯이, 좋은 버그 리포트는 금의 가치가 있습니다.

질문: 테스트 하위 시스템에서 코드 정리 후 다음 단계는 무엇입니까?

Rich: 테스트 정리를 해본 적이 있는 사람의 좋은 질문입니다. :-D

Anna는 (다른 사람의 도움을 받아서) coverage.nodejs.org를 설정합니다. 나는 종종 사람들에게 테스트 커버리지를 보고 첫 번째 커밋을 시작한 후 좋은 두 번째 커밋을 찾습니다. 그러면 기존 테스트를 정리하고 새 테스트를 작성할 수 있습니다. 소스 트리에는 doc/guides/ 가이드가 있습니다. Node.js core에 대한 테스트를 작성합니다.

C을 사용한다면 Anna와 같은 C 사용자에게 물어보십시오.

Anna: 비슷한 맥락에서 한 가지 더 멀리 나아가는 단계일 수도 있습니다. 우리의 벤치 마크도 완벽하지 못합니다. 그 폴더를 둘러보고 당신이 무언가 잊었는지 확인하십시오!

Bryan: 커버리지가 높아도 일부 코드 경로가 누락될 수 있으므로 테스트 파일을 보고 누락된 부분이 있는지 알아보는 것이 좋습니다.

Rich: 저는 테스트에 확실히 편견이 있습니다. Node.js에 처음 기여한 것이 테스트는 아니었지만 압도적으로 많은 시간을 소비한 것은 확실합니다. 다른 사람에게 묻는 것은 다른 대답을 얻을 수 있습니다. Freenode IRC의 #node-dev 채널에서 언제든 질문할 수 있고 여기는 Node.js Core를 논의하는 곳입니다. 일반적인 Node.js 질문은 #Node.js을 이용해야 합니다.

질문: 간단한 이슈에 한 번 기여했습니다. @NodeTodo에서 다시 더 새롭고 간단한 이슈를 찾아야 하나요?

Rich: 저는 NodeTodo로 특정 두 번째 커밋을 너무 많이 분배하려고 하지 않습니다. 사람들이 coverage.nodejs.org로 가게 하거나 자신의 이슈로 돌아올 수 있게 노력합니다. NodeTodo는 처음 기여하는 사람들을 위한 예비 커밋으로 유지하려고 합니다. 이렇게 하는 좋은 이유에 대한 확신은 없지만 저는 이게 옳다고 믿습니다. 하지만 두 번째 (혹은 세 번째나 네 번째) 커밋을 사람들이 찾아낼 수 있도록 돕고 싶습니다. 이는 더 오래 걸리고 더 많은 노력이 필요할 것입니다.

질문: 노드 로드맵이 잘 정의되어 있습니까? 커뮤니티의 기능 요청을 수락합니까 아니면 대부분의 아이디어가 핵심 그룹에서 왔습니까?

Anna: 우리는 고정된 중앙 집중식 로드맵을 가지고 있지 않으며 커뮤니티와의 기능 요청에 대해 분명히 이야기하고 싶습니다. 그러나 많은 사람들이 Node core에서 쉽게 구현하고 유지할 수 없는 것을 유저랜드(예: npm 패키지와 같은 Node core의 외부)에 가지고 싶어 합니다.

Rich: 이슈를 열어서 묻는 것에 부끄러워하지 않아야 합니다.

예, 이슈 트래커에 기능 요청 라벨이 있으므로 기능 요청을 환영합니다.

또한 구체적인 아이디어, 구현 설계 및 모든 것이 있으면를 살펴보십시오.

Anna: 그 node-eps는 정말 크고 광범위한 변화를 위한 것입니다. 실제로 먼저 거기에 가지 않는 것이 좋습니다. 구현된 기능을 보고 싶다면 nodejs/node로 가면 거기에서 갈 위치를 볼 수 있습니다 :)

Rich: 네, node-eps 저장소는 확실히 첫 정류장이 아닙니다.

질문: C++와 JS 중 어느 부분에 노력이 더 많이 필요한가요?

Anna: Node core의 코드 대부분이 JS로 작성되었으며, Node에 기여하기 위해 C++ 지식이 필요 없다고 확신합니다! 그 반대의 경우도 마찬가지입니다. 실제로 C++ 측면에 기여한 JS를 실제로 알 필요는 없습니다.

즉, Node의 JS 부분 주위에는 훨씬 더 많은 활동이 있으며, 더 많은 사람들이 그 부분에 참여하고 있습니다.

Bryan: 제가 핵심으로 본 C++ 코드의 대부분은 글루 코드입니다. LibUV 및 OpenSSL과 같은 라이브러리에서 JavaScript로 제공합니다. 실제로 핵심에서 실제로 일어나고 있는 것의 대부분은 JavaScript-land에 있는 것처럼 보입니다.

질문: 저는 크고 공개적인 Node 기반 프로젝에 PR을 작업하고 있습니다. 다수의 작은 PR을 마무리했고 현재 '가진' PR을 작업하고 있지만 미래에는 Node 코어에도 기여하고 싶습니다. 제가 약간 어려움을 겪었던 질문은 PR은 많은 작업이 필요하다는 것입니다. 특히 '당신의 첫 PR'이 아닌 어떤 작업을 제출할 때 많은 작업이 필요합니다. PR이 노골적으로 거절될 수 있으므로 젊은 개발자들은 이 부분이 두려울 수 있습니다. 하나의 비교를 수정하는 것은 간단하지만 많은 이슈들은 많은 줄의 수정이 필요합니다. 저 같은 젊은 개발자가 힘을 얻고 때로는 수준 이하의 코드를 제출해서 이득은 적지만 시간을 잃더라도 받아들일 수 있도록 격려할 수 있을까요? 아니면 이슈에서 토론을 권장하거나 어떤 방향을 갖기 위해 일찍 PR을 열거나 자신감을 갖고 작업할 수 있게 할 수 있을까요?

Rich: 제가 생각하기엔 두 가지 접근 방식이 있습니다.

  • 하나는 IRC(또는 Slack 이나 다른 무엇이든)를 뛰어다니고 프로젝트에서 개발자들과 채팅하는 것입니다. 분명히 문제의 프로젝트가 개발자들과 사용할 수 있고 질문할 때 올바른 사람들이 사용할 수 있는 경우에만 작동합니다. 그래서 이것은 주사위를 던지는 행위일 수 있습니다.
  • 다른 접근법(당신이 다루는)은 이슈 트래커를 기반으로 합니다. 댓글, 대화, "여기 이 코드의 접근 방식이 올바른가요?" 등은 당연히 도움이 됩니다.

그러니 최소한의 접근 방법을 같이 제시할 수 있을 때 PR을 열어서, 3주간 작업한 뒤에 거부당하는 일이 없도록 하세요.

그것에 대해 철학적으로 생각하고 목표가 자신과 세계를 배우고 향상하는 것이라고 결정하면 거부된 PR은 실패가 아닙니다. 그것은 여행입니다. 학습 과정입니다. 그러나 그러한 태도를 내면화하는 것보다 타자를 치는 것이 더 쉽습니다.

또 다른 한 가지는 "오 맙소사, 모든 영리한 사람들이 나를 놀릴 것이기 때문에 나는 PR을 제출할 수 없다"는 말입니다. 내 말은, 당신은 그렇게 말하지 않았지만, 극단적으로 생각하면 그렇다는 이야기입니다. 아마도... 이것이 프로젝트가 지향하는 태도라면, 우리는 해야 할 일이 많습니다.

그것이 큰 프로젝트에 대해 어떻게 느낄지 모르겠다면, 우리는 여전히 해야 할 일이 있습니다. 우리는 환영받는 느낌의 프로젝트가 되어야 합니다.

나는 문자 메시지를 하고 실제 질문에서 표류하고 있습니다. 가자, 브라이언!

Bryan: 글쎄요, 필자가 제출한 거의 모든 PR 또는 적어도 어떤 형태로든 그 느낌을 받았다고 말할 것입니다. 아무도 잘못한 것이 아니라, 공개 리뷰를 위해 작성한 자료를 넣는 것에 신경을 쓰고 있습니다. 그것은 신경이 쓰일 수 있습니다.

거절에 대한 두려움은 사실이지만, 그것을 통해 나아가는 것은 결국 당신을 더 나은 개발자로 만들 것입니다. 그리고 어떤 주석이든 그것을 사용하여 PR(또는 당신의 다음 것)을 더 잘 만드십시오.

또한, (저도 처음엔 어려웠지만) PR에 대한 비판을 개인적인 공격으로 받아들이지 마세요.

Anna: 오, 명확하게 말하면 귀하의 PR에 대한 비판이 기술적인 장점에 근거하지 않고 개인적인 공격이라면, 우리 중 한 사람(또는 조금 신뢰하는 핵심 팀 구성원)에게 보고하면 우리는 그것을 처리할 것입니다.

질문: Code & Learn, Node Todo, NodeSchool... 의 차이점은 무엇입니까?

Rich: Code & Learn은 코드를 이해하는 사람들의 수가 불충분한 코드의 구석에 대해 새로운 사람들에게 가르치려는 노력으로 시작되었습니다. 사람들이 기여자가 되는 데 도움이 되도록 변형되었습니다. 처음에는 코드 작성자가 많았지만 핵심 개발자가 항상 있기 때문에 코드에서 더 깊어지기를 원한다면 코드 작성자에 대한 지식이 있는 사용자가 많습니다.

Node Todo는 처음 기여한 사람에 관한 모든 것입니다. Code & Learn과 Node Todo의 주요 차이점은 다음과 같습니다.

  • Code & Learn은 Node.js Foundation의 프로젝트이며 Node Todo는 누구나 할 수 있는 일입니다.
  • 스폰서가 없으며 Node Todo는 항상 무료이며 공개됩니다.
  • Node Todo에 대한 다른 점은 단지 이벤트가 아니라는 것입니다. 이메일을 보내거나 트위터를 사용하여 접근할 수 있습니다.

NodeSchool은 또한 커뮤니티 노력이지만 Node.js core를 시작하고 기여하는 것과 아무런 관련이 없습니다. 프로젝트의 핵심 코드가 아니라 Node.js와 인접 기술에 대해 배우는 것이 전부입니다.

질문: Node Core에 기여할 수 있는 것들을 찾을 수 있는 가장 쉬운 방법은 무엇입니까?

Rich: 노드 코어에 기여할 수 있는 것들을 찾는 가장 쉬운 방법에 대한 내 간단한 대답은 다음과 같습니다.

그러나 그것은 "가장 쉬운" 부분에 중점을 둔 질문의 답입니다. 나는 Tierney가 "가능하다"는 강조점을 의도했을지도 모른다고 생각합니다. 즉, "어떻게 하면 무언가를 쉽게 찾을 수 있습니까?" 대신에 "기여할 수 있는 모든 것을 찾을 수 있는 방법"이 될 수 있습니다.

Node.js에 기여하기 시작하기. 내 대답은 다음과 같습니다. Ask William Kapke. :-D

웹사이트에는 Getting Involved 섹션과 모든 작업 그룹이 있습니다. 이것은 시작하기에 좋은 곳입니다.

Bryan: Node 사용은 기여의 수단 중 가장 좋은 방법이라고 생각합니다. 노드를 매일 사용하는 경우 작업이나 재미로 항상 필요한 것을 찾을 수 있습니다.

질문: 첫 번째 기여를 제출하기 전에 알아야 할 것이 있습니까?

Rich: 바라건대, 당신이 알 필요가 있는 모든 것은 여기 있습니다. 그렇지 않다면 아마도 해당 문서를 업데이트해야 합니다.

Anna: 또한, 행동 강령을 읽으십시오. 감사합니다!

Rich Trott: 그래요, 그게 문서에서 맨 처음 시작입니다.

우리가 여기서 끝내기 전에 추가할 게 있나요?

Anna: 네, 저는 Node core에 기여하거나 Node core와 상호 작용할 때 어떤 것에 대해 확신이 없으면 언제나 비공개로 연락할 수 있는 사람입니다. addaleax on Twitter, IRC 등을 사용하면 도움이 될 수 있습니다.

Rich: 저두요. :-D (Contact for Rich)

Bryan: 저도 (Contact for Bryan)