Node.js

확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼 위키백과, 무료 백과사전

Node.js

Node.js크로스플랫폼 오픈소스 자바스크립트 런타임 환경으로 윈도우, 리눅스, macOS 등을 지원한다. Node.js는 V8 자바스크립트 엔진으로 구동되며, 웹 브라우저 바깥에서 자바스크립트 코드를 실행할 수 있다.[3]

간략 정보 원저자, 개발자 ...
Node.js
원저자라이언 라인하트 달(Ryan Lienhart Dahl)
개발자Node.js 개발자
발표일2009년 5월 27일(15년 전)(2009-05-27)[1]
안정화 버전
23.11.0[2]  / 2025년 4월 1일(21일 전)(2025년 4월 1일)
저장소
프로그래밍 언어C++, 자바스크립트
운영 체제macOS, 리눅스, 솔라리스, FreeBSD, OpenBSD, 윈도우 (시그윈), webOS
종류런타임 환경
라이선스MIT 허가서
상태개발 중
웹사이트nodejs.org 
닫기

주로 확장성 있는 네트워크 애플리케이션과 서버 사이드 개발에 사용되는 소프트웨어 플랫폼이며, 논블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.

내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며, 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.

개요

Node.js는 V8으로 빌드된 이벤트 기반 자바스크립트 런타임이다. 웹 서버와 같이 확장성 있는 네트워크 프로그램 제작을 위해 고안되었다.

파이썬으로 만든 트위스티드, 로 만든 펄 객체 환경, 루비로 만든 이벤트 머신과 그 용도가 비슷하다. 대부분의 자바스크립트가 웹 브라우저에서 실행되는 것과는 달리, 서버 측에서 실행된다. 일부 CommonJS 명세[4]를 구현하고 있으며, 쌍방향 테스트를 위해 REPL 환경을 포함하고 있다.

역사

Thumb
라이언 달: Node.js의 개발자 (2010년)

2009년 라이언 달은 플리커의 파일 업로드 진행 표시줄을 보았을 때, 파일이 얼마나 업로드되었는지 알기 위해서는 서버에 쿼리를 전송해야 한다는 점을 보고 조금 더 쉬운 방법을 찾다가 고안해 내었으며,[5] 그가 일하던 Joyent라는 회사에서 개발 및 운영을 담당하고 있다.[6]

최초 버전은 2009년 리눅스 기반으로 출시되었고, 첫 JSConf EU 콘퍼런스에서 라이언 달의 발표[7] 직후 국제적인 관심을 끌기 시작했다.[8] 패키지 매니저인 npm은 2011년에 처음 소개되었다.

2011년 6월 마이크로소프트는 Joyent와 파트너십을 맺고[9] 같은 해 7월 윈도우용 최초 버전을 출시했다.

2014년 12월, Fedor Indutny는 Node.js의 포크인 io.js를 시작했다.

2015년 9월, Node.js v0.12와 io.js v3.3은 병합되어 Node v4.0으로 합쳐졌다.[10]

종전 서드파티 모듈인 CommonJS만을 사용하고 있었으나, 2019년 4월 Node.js v12부터 ECMA스크립트의 공식 모듈 시스템 사용을 실험적으로 지원하기 시작했다.

출시

요약
관점

Node.js의 버전별 출시 및 관리는 규칙적인 주기를 가지고 이루어지고 있으며, v4 이후로 약 6개월 주기로 새로운 버전을 출시하고 있다. 이 중 짝수버전의 경우 장기지원 버전(LTS) 이라고 하여 별도의 코드명을 부여받으며, 약 3년간 유지보수 대상이 된다.

Node.js를 운영하는 재단의 한국어 웹페이지 보관됨 2019-12-29 - 웨이백 머신에서는 버전별 출시 및 유지보수 일정을 명시해두고 있다.

자세한 정보 릴리스, 상태 ...
릴리스 상태 코드명 출시일 유지보수 종료일
오래된 버전, 지원 중단: 0.10.x 오래된 버전, 지원 중단: 수명 종료 2013-03-11 2016-10-31
오래된 버전, 지원 중단: 0.12.x 오래된 버전, 지원 중단: 수명 종료 2015-02-06 2016-12-31
오래된 버전, 지원 중단: 4.x 오래된 버전, 지원 중단: 수명 종료 Argon[11] 2015-09-08 2018-04-30
오래된 버전, 지원 중단: 5.x 오래된 버전, 지원 중단: 수명 종료 2015-10-29 2016-06-30
오래된 버전, 지원 중단: 6.x 오래된 버전, 지원 중단: 수명 종료 Boron[11] 2016-04-26 2019-04-30
오래된 버전, 지원 중단: 7.x 오래된 버전, 지원 중단: 수명 종료 2016-10-25 2017-06-30
오래된 버전, 지원 중단: 8.x 오래된 버전, 지원 중단: 수명 종료 Carbon[11] 2017-05-30 2019-12-31
오래된 버전, 지원 중단: 9.x 오래된 버전, 지원 중단: 수명 종료 2017-10-01 2018-06-30
오래된 버전, 지원 중단: 10.x 오래된 버전, 지원 중단: 수명 종료 Dubnium[11] 2018-04-24 2021-04-30
오래된 버전, 지원 중단: 11.x 오래된 버전, 지원 중단: 수명 종료 2018-10-23 2019-06-01
오래된 버전, 지원 중단: 0.12.x 오래된 버전, 지원 중단: 수명 종료 2015-02-06 2016-12-31
오래된 버전, 지원 중단: 4.x 오래된 버전, 지원 중단: 수명 종료 Argon[11] 2015-09-08 2018-04-30
오래된 버전, 지원 중단: 5.x 오래된 버전, 지원 중단: 수명 종료 2015-10-29 2016-06-30
오래된 버전, 지원 중단: 6.x 오래된 버전, 지원 중단: 수명 종료 Boron[11] 2016-04-26 2019-04-30
오래된 버전, 지원 중단: 7.x 오래된 버전, 지원 중단: 수명 종료 2016-10-25 2017-06-30
오래된 버전, 지원 중단: 8.x 오래된 버전, 지원 중단: 수명 종료 Carbon[11] 2017-05-30 2019-12-31
오래된 버전, 지원 중단: 9.x 오래된 버전, 지원 중단: 수명 종료 2017-10-01 2018-06-30
오래된 버전, 지원 중단: 10.x 오래된 버전, 지원 중단: 수명 종료 Dubnium[11] 2018-04-24 2021-04-30
오래된 버전, 지원 중단: 11.x 오래된 버전, 지원 중단: 수명 종료 2018-10-23 2019-06-01
오래된 버전, 지원 중단: 12.x 오래된 버전, 지원 중단: 수명 종료 Erbium[11] 2019-04-23 2022-04-30
오래된 버전, 지원 중단: 13.x 오래된 버전, 지원 중단: 수명 종료 2019-10-22 2020-06-01
오래된 버전, 지원 중단: 14.x 오래된 버전, 지원 중단: 수명 종료 Fermium[11] 2020-04-21 2023-04-30
오래된 버전, 지원 중단: 15.x 오래된 버전, 지원 중단: 수명 종료 2020-10-20 2021-06-01
오래된 버전, 지원 중단: 16.x 오래된 버전, 지원 중단: 수명 종료 Gallium[11] 2021-04-20 2023-09-11[12]
오래된 버전, 지원 중단: 17.x 오래된 버전, 지원 중단: 수명 종료 2021-10-19 2022-06-01
오래된 버전, 지원 중: 18.x 오래된 버전, 지원 중: 유지보수 LTS Hydrogen[11] 2022-04-19 2025-04-30
오래된 버전, 지원 중단: 19.x 오래된 버전, 지원 중단: 수명 종료 2022-10-18 2023-06-01
오래된 버전, 지원 중: 20.x 오래된 버전, 지원 중: 지원 중인 LTS Iron[13] 2023-04-18 2026-04-30
현재 안정화 버전: 21.x 현재 안정화 버전: 현재 [11] 2023-10-17 2024-05-30
배포 예정: 22.x 배포 예정: 보류 Jod[13][11] 2024-04-15 2027-04-28
배포 예정: 23.x 배포 예정: 보류 [11] 2024-10-14 2025-05-27
범례:
오래된 버전
오래된 버전, 지원 중
최신 버전
최신 미리보기 버전
배포 예정
닫기

예제

Hello world HTTP 서버:

var http = require('http');

http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8000);

console.log('Server running at http://localhost:8000/');

다른 예제, 7000번 포트를 여는 간단한 TCP Echo 서버:

var net = require('net');

net.createServer(function (stream) {
    stream.write('hello\r\n');

    stream.on('end', function () {
        stream.end('goodbye\r\n');
    });

    stream.pipe(stream);
}).listen(7000);

같이 보기

각주

외부 링크

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.