의견.png

"노드제이에스"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(배경)
34번째 줄: 34번째 줄:
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
 
!릴리스
 
!릴리스
!코드명
+
!코드네임
 
!출시일
 
!출시일
 
!LTS 상태
 
!LTS 상태

2019년 7월 22일 (월) 16:35 판

노드제이에스(node.js)는 자바스크립트(JavaScript) 언어를 사용하여 서버 측 응용 프로그램을 개발할 수 있는 오픈소스 기반의 입출력(I/O) 프레임워크이다. 2009년 라이언 달(Ryan Dahl)이 개발했다. 기존의 자바스크립트는 프런트 엔드(front end) 개발에 주로 사용되었으나, 노드제이에스(node.js)의 출현으로 자바스크립트를 이용하여 서버 측의 백 엔드(back end)까지 개발할 수 있게 되었다.

리스크(Lisk)
시그마체인(Sigma Chain)

블록체인 기반의 암호화폐 중에서 리스크(Lisk)와 시그마체인(Sigma Chain)이 노드제이에스를 사용하여 개발되었다.

같이 보기


  의견.png 이 노드제이에스 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.  

개요

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

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

역사

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

최초 버전은 2009년 리눅스 기반으로 출시되었고, Inangural JSConf EU conference에서 Ryan Dahl의 발표[4] 직후 국제적인 관심을 끌기 시작했다.[5] 패키지 매니저인 npm은 2011년에 처음 소개되었다.

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

배경

릴리스 코드네임 출시일 LTS 상태 활동적인 LTS 시작일 유지보수 시작일 유지보수 종료일
v0.10 2013-03-11 수명 종료 - 2015-10-01 2016-10-31
v0.12 2015-02-06 수명 종료 - 2016-04-01 2016-12-31
v4 Argon[7] 2015-09-08 수명 종료 2015-10-01 2017-04-01 2018-04-01
v5 2015-10-29 LTS 없음 N/A 2016-06-30
v6 Boron[7] 2016-04-26 활동 중 2016-10-18 2018-04-18 2019-04-18
v7 2016-10-25 LTS 없음 N/A 2017-06-30
v8 Carbon[7] 2017-05-30 활동 중 2017-10-31 2019-04-01 2019-12 예정
v9 2017-10-01 LTS 없음 N/A 2018-06-30
v10 Dubnium[7] 2018-04-24 활동 중 2018-10-30 2020-04 예정 2021-04 예정

특징

  • Node.js 장점
  • Single Thread,비동기 IO처리에 기반한 속도가 빠르다.
  • 파일I/O나 네트워크 처리를 이벤트 드리븐 방식으로 처리하기 때문에 보다 빠른 처리가 가능하다.
  • CPU의 대기시간을 최소화 할 수 있다.
  • CPU부하가 적고, 많은 커넥션을 동시에 처리해야 되는 구조에 적합하다.
  • 자바스크립트를 이용하여 개발 할 수 있기 때문에 프론트엔드 개발자의 진입장벽이 낮다.
  • 기존 Java서버(JSP, Apache, Tomcat)에 비하여 생산성이 높다.


  • Node.js 단점
  • Single Thread 모델이기 때문에 하나의 작업에 시간이 오래걸릴시 시스템 전체의 성능이 급격히 떨어진다.
  • 이벤트 콜백 중심으로 코드가 중첩될 시 가독성이 떨어진다.
  • 에러 발생시 프로세스 자체가 다운됨으로 주의해야한다.
  • 멀티코어 활용을 위해 cluster모듈을 이용해야 하고, 세션을 공유할 경우 부가적인 작업이 요구됨.
  • http://wiki.commonjs.org/wiki/Implementations/node.js
  • Birth of Node: Where Did it Come From? Creator Ryan Dahl Shares the History
  • pushes JavaScript to the server-side
  • Dahl at JSConf EU 2009
  • Dahl at JSConf EU 2009 Video
  • Node to Windows
  • 7.0 7.1 7.2 7.3 [1]