Node.js
![]() | |
원저자 | 라이언 라인하트 달(Ryan Lienhart Dahl) |
---|---|
개발자 | Node.js 개발자 |
발표일 | 2009년 5월 27일[1] |
안정화 버전 | 22.7.0[2] ![]() |
저장소 | |
프로그래밍 언어 | C++,자바스크립트 |
운영 체제 | macOS,리눅스,솔라리스,FreeBSD,OpenBSD,윈도우(시그윈),webOS |
종류 | 런타임 환경 |
라이선스 | MIT 허가서 |
상태 | 개발 중 |
웹사이트 | nodejs![]() |
Node.js는크로스플랫폼오픈소스자바스크립트런타임 환경으로윈도우,리눅스,macOS등을 지원한다. Node.js는V8자바스크립트 엔진으로 구동되며,웹 브라우저바깥에서 자바스크립트 코드를 실행할 수 있다.[3]
주로 확장성 있는 네트워크 애플리케이션과 서버 사이드 개발에 사용되는 소프트웨어 플랫폼이며, 논블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.
내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며, 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.
개요
[편집]Node.js는V8으로 빌드된이벤트기반자바스크립트런타임이다.웹 서버와 같이 확장성 있는 네트워크 프로그램 제작을 위해 고안되었다.
파이썬으로 만든트위스티드,펄로 만든펄 객체 환경,루비로 만든 이벤트 머신과 그 용도가 비슷하다. 대부분의자바스크립트가 웹 브라우저에서 실행되는 것과는 달리, 서버 측에서 실행된다. 일부CommonJS명세[4]를 구현하고 있으며, 쌍방향 테스트를 위해REPL환경을 포함하고 있다.
역사
[편집]![](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Ryan_Dahl.jpg/220px-Ryan_Dahl.jpg)
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를 운영하는 재단의한국어 웹페이지Archived2019년 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 |
범례: 오래된 버전 오래된 버전, 지원 중 최신 버전 배포 예정 |
예제
[편집]varhttp=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번포트를 여는 간단한TCPEcho서버:
varnet=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);
같이 보기
[편집]각주
[편집]- ↑“node-v0.x-archive on GitHub”.2014년 8월 2일에 확인함.
- ↑“Release 22.7.0”.2024년 8월 22일.2024년 8월 23일에 확인함.
- ↑“Introduction to Node.js”.2023년 12월 20일에 확인함.
- ↑http://wiki monjs.org/wiki/Implementations/node.js
- ↑Harris, Amber (2012년 4월 1일).“The Birth of Node: Where Did it Come From? Creator Ryan Dahl Shares the History”.Devops Angle. 2014년 10월 18일에원본 문서에서 보존된 문서.2013년 10월 26일에 확인함.
- ↑Alex Handy (2011년 6월 24일).“Node.js pushes JavaScript to the server-side”.SDTimes.2011년 9월 4일에 확인함.
- ↑“Ryan Dahl at JSConf EU 2009”.
- ↑“Ryan Dahl at JSConf EU 2009 Video”.
- ↑“Porting Node to Windows”.2014년 7월 8일에원본 문서에서 보존된 문서.2014년 8월 2일에 확인함.
- ↑“Node.js Foundation Combines Node.js and io.js Into Single Codebase in New Release”.2016년 1월 28일에 확인함.
- ↑가나다라마바사아자차카타파하거“nodejs/Release”.《GitHub》 (영어).2018년 5월 3일에 확인함.
- ↑Bringing forward the End-of-Life Date for Node.js 16,Node.js Website
- ↑가나“Node.JS CODENAMES.md”.《GitHub》 (영어).2023년 9월 6일에 확인함.
외부 링크
[편집]- Node.js
- 공식 웹사이트
- 깃허브 저장소
- The Node Beginner Book