Node.JS

Node.js는 서버에서 실행되는 오픈 소스 크로스 플랫폼 JavaScript 런타임입니다. 2009 년 출시 된 이래이 플랫폼은 매우 인기를 얻었으며 요즘 웹 개발 분야에서 매우 중요한 역할을하고 있습니다.
Node.JS의 전체 기사 ...

필터 표시
호스팅 필터
Host Me Host Filter

운영 시스템

디스크 공간

RAM 메모리

디스크 유형

CPU 코어

종류

점수-9
A2hosting Logo
A2hosting

A2 호스팅

Lite
$3.92 /월간 간행물

50 쿠폰

서버 위치


A2hosting Servers in Amsterdam네덜란드 A2hosting Servers in Michigan미국 A2hosting Servers in Singapore싱가포르
비교
점수-5.2
Dream Host Logo
Dream Host

드림 호스트

DreamObjects 40 GB
$0.95 /월간 간행물

29 쿠폰

서버 위치


Dream Host Servers in Ashburn미국
비교
신뢰 지표 ICDSoft
점수-10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /월간 간행물

리뷰 233


서버 위치


ICDSoft Servers in Sofia불가리아 ICDSoft Servers in Boston미국 ICDSoft Servers in Hong Kong홍콩
비교
신뢰 지표 ICDSoft
점수-10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /월간 간행물

리뷰 233


서버 위치


ICDSoft Servers in Sofia불가리아 ICDSoft Servers in Boston미국 ICDSoft Servers in Hong Kong홍콩
비교
신뢰 지표 Keliweb
점수-9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /월간 간행물

리뷰 453


서버 위치


Keliweb Servers in Milano이탈리아
비교
신뢰 지표 JustHostMe
점수-9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /월간 간행물

리뷰 72


서버 위치


JustHostMe Servers in United Kingdom영국
비교
신뢰 지표 Dream VPS
점수-8.6
Dream VPS Logo
Dream VPS

드림 VPS

STARTER
$3.75 /월간 간행물

리뷰 7


서버 위치


Dream VPS Servers in Hong Kong홍콩 Dream VPS Servers in Santa Clara Dream VPS Servers in New York미국 Dream VPS Servers in London영국 Dream VPS Servers in Amsterdam네덜란드 Dream VPS Servers in Frankfurt독일 Dream VPS Servers in Israel이스라엘
비교
신뢰 지표 Reseller Cube
점수-8
Reseller Cube Logo
Reseller Cube

리셀러 큐브

Basic USA
$5 /월간 간행물

리뷰 4


서버 위치


Reseller Cube Servers in Raleigh미국
비교
신뢰 지표 Univa Host
점수-8
Univa Host Logo
Univa Host

Univa 호스트

E-ECONOMY
$2.99 /월간 간행물

리뷰 3


서버 위치


Univa Host Servers in Germany독일 Univa Host Servers in United States미국
비교
신뢰 지표 OperaVPS
점수-7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /월간 간행물

리뷰 3


서버 위치


OperaVPS Servers in United Kingdom영국 OperaVPS Servers in Austria오스트리아 OperaVPS Servers in Canada캐나다 OperaVPS Servers in Denmark덴마크 OperaVPS Servers in France프랑스 OperaVPS Servers in Germany독일 OperaVPS Servers in Italy이탈리아 OperaVPS Servers in Netherlands네덜란드 OperaVPS Servers in Romania루마니아 OperaVPS Servers in United States미국
비교
신뢰 지표 L3Web Hosting
점수-7.6
L3Web Hosting Logo
L3Web Hosting

L3Web 호스팅

START UP
$1.99 /월간 간행물

리뷰 2


서버 위치


L3Web Hosting Servers in India인도 L3Web Hosting Servers in Munich독일 L3Web Hosting Servers in Miami미국 L3Web Hosting Servers in Singapore싱가포르 L3Web Hosting Servers in United Kingdom영국
비교
신뢰 지표 Idea Stack
점수-7.4
Idea Stack Logo
Idea Stack

아이디어 스택

LEVEL 1
$2 /월간 간행물

리뷰 2


서버 위치


Idea Stack Servers in Seattle미국
비교
신뢰 지표 Epic Host
점수-7.4
Epic Host Logo
Epic Host

에픽 호스트

Cloud hosting
$2.37 /월간 간행물

리뷰 1


서버 위치


Epic Host Servers in New Delhi인도 Epic Host Servers in Union미국
비교
신뢰 지표 itanets.co.uk
점수-7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /월간 간행물

리뷰 2

비교
신뢰 지표 Digital Ocean
점수-3.8
Digital Ocean Logo
Digital Ocean

디지털 오션

$5 /mo
$5 /월간 간행물

리뷰 214

38 쿠폰

서버 위치


Digital Ocean Servers in India인도 Digital Ocean Servers in New York미국 Digital Ocean Servers in Amsterdam네덜란드 Digital Ocean Servers in London영국 Digital Ocean Servers in Toronto캐나다 Digital Ocean Servers in Frankfurt am Main독일 Digital Ocean Servers in Singapore싱가포르
비교
점수-10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /매년


서버 위치


HOST PRO KE Servers in Germany독일
비교
점수-9.4
Accu WebHosting Logo
Accu WebHosting

Accu 웹 호스팅

Windows Personal Web Hosting
$2.99 /월간 간행물

19 쿠폰

서버 위치


Accu WebHosting Servers in France프랑스 Accu WebHosting Servers in Denver미국 Accu WebHosting Servers in Mumbai인도 Accu WebHosting Servers in Amsterdam네덜란드 Accu WebHosting Servers in Frankfurt am Main독일 Accu WebHosting Servers in Sydney호주 Accu WebHosting Servers in London영국 Accu WebHosting Servers in Poland폴란드 Accu WebHosting Servers in Canada캐나다 Accu WebHosting Servers in Singapore싱가포르
비교
점수-9
Be hostings Logo
Be hostings

호스팅

StarterSSL
$3.36 /월간 간행물


서버 위치


Be hostings Servers in Brussels벨기에
비교
점수-4.3
Gear Host Logo
Gear Host

기어 호스트

CloudSite Hobby
$5 /월간 간행물


서버 위치


Gear Host Servers in Denver미국
비교
점수-1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /월간 간행물


서버 위치


Mikro VPS Servers in Budapest헝가리
비교
점수-0
Simple Node Logo
Simple Node

단순 노드

OpenVZ - 256MB
$3 /월간 간행물

비교

 

Node.js

 

 

Node.js는 서버에서 실행되는 오픈 소스 크로스 플랫폼 JavaScript 런타임입니다. 2009 년 출시 된 이래이 플랫폼은 매우 인기를 얻었으며 요즘 웹 개발 분야에서 매우 중요한 역할을하고 있습니다. GitHub에서 프로젝트가 수집 한 별의 수를 인기 지표로 고려하면 50,000 개 이상의 별을 보유한 Node.js는 매우 인기있는 프로젝트입니다.

 

Node.js 플랫폼은 Google Chrome 브라우저에서 사용되는 Google의 V8 JavaScript 엔진을 기반으로합니다. 이 플랫폼은 주로 웹 서버를 만드는 데 사용되지만 그 범위는 이것으로 제한되지 않습니다.

 

Node.js의 주요 기능을 살펴 보겠습니다.

 

속도

 

Node.js의 주요 매력 중 하나는 속도입니다. Node.js에서 실행되는 JavaScript 코드는 C 또는 Java와 같은 컴파일 된 언어로 작성된 코드보다 두 배 빠르며 Python 또는 Ruby와 같은 해석 언어보다 훨씬 빠릅니다. 그 이유는 플랫폼의 비 차단 아키텍처이고 구체적인 결과는 사용 된 벤치 마크에 따라 다르지만 전반적으로 Node.js는 매우 빠른 플랫폼입니다.

 

간단

 

Node.js 플랫폼은 배우고 사용하기 쉽습니다. 사실, 특히 다른 서버 플랫폼과 비교할 때 매우 간단합니다.

 

자바 스크립트

 

JavaScript는 Node.js 환경에서 실행됩니다. 이는 이미 브라우저에서 JavaScript를 사용하는 수백만 명의 프런트 엔드 개발자가 서버 측 개발로 이동하기 위해 완전히 새로운 도구를 배우지 않고도 동일한 프로그래밍 언어로 서버 측 및 클라이언트 측 코드를 모두 작성할 수 있음을 의미합니다.

 

브라우저와 서버는 동일한 언어 개념을 사용합니다. 또한 Node.js는 플랫폼에서 구현되는 새로운 ECMAScript 표준으로 빠르게 전환 할 수 있습니다.

 

Node.js는 개발자가 완전히 제어하는 ​​서버 측 환경이므로 사용자가 브라우저를 새로 고칠 때까지 기다릴 필요가 없습니다. 결과적으로 Node.js의 지원 버전을 설치하면 새로운 언어 기능을 사용할 수 있습니다.

 

V8 엔진

 

다른 솔루션 중에서도 Node.js의 핵심은 Google 크롬 및 기타 브라우저에서 사용되는 Google의 오픈 소스 V8 JavaScript 엔진입니다. 이는 Node.js가 JavaScript Chrome 런타임을 믿을 수 없을 정도로 빠르게 만들고 V8 개선을 위해 계속 노력하는 수천 명의 엔지니어를 활용하고 있음을 의미합니다.

 

비동기

 

기존 프로그래밍 언어 (C, Java, Python, PHP)에서는 개발자가 코드를 비동기 적으로 실행하는 것을 명시 적으로 처리하지 않는 한 모든 명령이 기본적으로 차단됩니다. 그 결과, 예를 들어 이러한 환경에서 네트워크에서 일부 JSON 코드를 다운로드하도록 요청하면 응답이 수신 및 처리 될 때까지 요청이 이루어진 스트림의 실행이 일시 중단됩니다.

 

JavaScript를 사용하면 단일 스레드, 콜백 및 이벤트 기반 개발 방식을 사용하여 비동기 및 비 차단 코드를 훨씬 쉽게 작성할 수 있습니다. 무거운 작업을 수행해야 할 때마다 적절한 메커니즘으로 콜백을 전달합니다.이 작업이 완료되면 즉시 호출됩니다. 결과적으로 프로그램이 계속 작동하기 위해 이러한 작업의 결과를 기다릴 필요가 없습니다.

 

유사한 메커니즘이 브라우저에서 시작되었습니다. 우리는 기다릴 여유가 없습니다.AJAX버튼 클릭과 같은 사용자 작업에 응답하지 않고 완료하도록 요청합니다. 사용자가 웹 페이지 작업을 편리하게 수행하려면 네트워크에서 데이터를 다운로드하고 버튼 클릭을 처리하는 모든 작업이 실시간으로 동시에 발생해야합니다.

 

버튼 클릭 이벤트 핸들러를 만든 적이 있다면 이미 비동기 프로그래밍 기술을 사용한 것입니다.

 

비동기 메커니즘을 사용하면 단일 Node.js 서버가 스레드 관리 및 병렬 코드 실행 작업으로 프로그래머에게 부담을주지 않고 수천 개의 연결을 동시에 처리 할 수 ​​있습니다. 그러한 것들은 종종 오류의 원인이됩니다.

 

Node.js는 개발자에게 비 차단 기본 I / O 메커니즘을 제공하며 일반적으로 Node.js 프레임 워크에서 사용되는 라이브러리는 비 차단 패러다임을 사용하여 작성됩니다.이것은 차단 동작을 표준이 아닌 예외로 만듭니다.

 

Node.js가 네트워크에서 데이터로드, 데이터베이스 또는 파일 시스템 액세스와 같은 I / O 작업을 수행해야하는 경우 이러한 작업의 결과를 기다리는 주 스레드를 차단하는 대신 Node.js는 해당 작업을 시작합니다. 이 작업의 결과를 수신 할 때까지 다른 작업을 계속합니다.

 

도서관

 

npm이라는 Node.js 용 패키지 관리자로 작업하는 쉽고 편리함으로 Node.js 생태계는 번창하고 있습니다. 이제 npm 레지스트리에는 모든 Node.js 개발자가 자유롭게 사용할 수있는 50 만 개 이상의 오픈 소스 패키지가 있습니다.

 

Node.js 플랫폼의 주요 기능 중 일부를 검토 한 후 실제로 사용해 보겠습니다. 설치부터 시작하겠습니다.

 

 

Node.js

 

 

Node.js 설치

 

Node.js는 다양한 방법으로 설치할 수 있으며, 이에 대해서는 잠시 후에 다룰 것입니다. 따라서 모든 주요 플랫폼에 대한 공식 설치 패키지를 찾을 수 있습니다.

 

Node.js를 설치하는 또 다른 매우 편리한 방법은 운영 체제에서 제공하는 패키지 관리자를 사용하는 것입니다. 예를 들어,이 영역에서 사실상의 표준 인 macOS 패키지 관리자를 Homebrew라고합니다.

 

시스템에 하나가있는 경우 명령 줄에서 다음 명령을 실행하여 Node.js를 설치할 수 있습니다.

 

양조 설치 노드

 

Linux 및 Windows를 포함한 다른 운영 체제 용 패키지 관리자 목록은 여기에서 찾을 수 있습니다.

 

인기있는 Node.js 버전 관리자는 nvm입니다. 이 도구를 사용하면 Node.js의 다른 버전간에 편리하게 전환 할 수 있습니다. 예를 들어 새 버전의 Node.js를 설치하고 시도한 다음 필요한 경우 이전 버전으로 되돌릴 수 있습니다. Nvm은 이전 버전의 Node.js에서 일부 코드를 테스트해야하는 상황에서도 유용합니다.

 

초보자가 공식 Node.js 설치 프로그램을 사용하는 경우. macOS 사용자의 경우 Homebrew를 사용하여 Node.js를 설치하는 것이 좋습니다. 이제 Node.js를 설치 했으므로 "Hello World"를 작성할 차례입니다.

 

첫 번째 Node.js 애플리케이션

 

첫 번째 Node.js 애플리케이션의 가장 일반적인 예는 간단한 웹 서버입니다. 코드는 다음과 같습니다.

const http = require ( 'http')

const 호스트 이름 = '127.0.0.1'

const 포트 = 3000

const 서버 = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ( 'Content-Type', 'text / plain')

res.end ( 'Hello World \ n')

})

server.listen (port, hostname, () = & gt; {

console.log (`http : // $ {hostname} : $ {port} /`에서 실행되는 서버)

})

 

이 코드를 실행하려면 server.js 파일에 저장하고 터미널에서 다음 명령을 실행합니다.

 

노드 server.js

 

서버를 확인하려면 브라우저를 열고 주소 표시 줄 http://127.0.0.1:3000, 즉 성공적인 실행 후 콘솔에 표시 될 서버 주소를 입력합니다. 모든 것이 정상적으로 작동하면 페이지에 "Hello World"가 표시됩니다.

 

이 예를 살펴 보겠습니다.

 

먼저 코드에 HTTP 모듈을 연결하는 명령이 포함되어 있습니다.

 

Node.js 플랫폼에는 네트워크 작업을 위해 잘 개발 된 메커니즘이 포함 된 우수한 표준 모듈 세트가 있습니다.

createServer () object 메소드 http는 새 HTTP 서버를 생성하고 반환합니다.

 

서버는 특정 호스트의 특정 포트에서 수신하도록 구성됩니다. 서버가 준비되면 해당 콜백이 호출되어 서버가 실행 중임을 알려줍니다.

서버가 요청을 받으면 두 개의 개체를 제공하는 이벤트가 시작됩니다. 첫 번째는 요청 (req, http.IncomingMessage 개체)이고 두 번째는 응답 (res, http.ServerResponse 개체)입니다. HTTP 요청을 처리하는 가장 중요한 메커니즘입니다.

 

첫 번째는 요청에 대한 정보를 제공합니다. 간단한 예제에서는이 데이터를 사용하지 않지만 필요한 경우 객체를 사용하여 요청 헤더와 전달 된 데이터에 액세스 할 수 있어야합니다.

 

두 번째는 요청을 구성하고 응답을 보내는 데 필요합니다.

 

이 경우 다음과 같이 요청에 대한 응답을 구성합니다. 먼저 속성 상태 코드를 200으로 설정하여 성공적인 작업을 나타냅니다.

 

res.statusCode = 200

다음으로 제목 Content-Type을 설정합니다.

res.setHeader ( 'Content-Type', 'text / plain')

그런 다음 end () 메서드에 인수로 내용을 추가하여 응답 준비를 완료합니다.

res.end ( 'Hello World \ n')

 

Node.js 플랫폼을 중심으로 강력한 생태계가 형성되었다고 이미 언급했습니다. 이제 Node.js를위한 몇 가지 인기있는 프레임 워크와 도우미 도구에 대해 설명하겠습니다.

 

Node.js 용 프레임 워크 및 도우미 도구

 

Node.js는 저수준 플랫폼입니다. 이를위한 개발을 단순화하고 프로그래머의 삶을 더 쉽게 만들기 위해 수많은 라이브러리가 만들어졌습니다. 그들 중 일부는 시간이 지남에 따라 매우 인기가 있습니다. 다음은 잘 수행되고 탐색 할 가치가있는 라이브러리 목록입니다.

 

표현하다:이 라이브러리는 개발자에게 웹 서버 구축을위한 매우 간단하면서도 강력한 도구를 제공합니다. Express 성공의 핵심은 "원 스톱"서버 아키텍처의 비전을 강요하지 않고 기본 서버 측 메커니즘에 초점을 맞춘 미니멀 한 접근 방식이었습니다.

 

유성: JavaScript 애플리케이션을 개발하고 클라이언트와 서버 모두에서 코드를 사용하기 위해 동형 접근 방식을 취하는 강력한 풀 스택 프레임 워크입니다. 한때 Meteor는 개발자에게 필요한 모든 것을 포함하는 독립형 도구였습니다. 이제 React, Vue 및 Angular와 같은 프런트 엔드 라이브러리와 통합됩니다. Meteor는 일반적인 웹 응용 프로그램을 개발하는 것 외에도 모바일 개발에도 사용할 수 있습니다.

 

Koa:이 웹 프레임 워크는 Express 뒤에서 동일한 팀에 의해 구축되었습니다. Express에 대한 수년간의 경험을 바탕으로 단순성과 소형화에 중점을두고 개발되었습니다. 이 프로젝트는 커뮤니티를 분할 할 수있는 다른 프레임 워크 메커니즘과 호환되지 않는 Express의 주요 변경 문제에 대한 해결책으로 시작되었습니다.

 

Next.js:이 프레임 워크는 React 애플리케이션의 서버 측 렌더링을 구성하도록 설계되었습니다.

 

Micro: 비동기 HTTP 마이크로 서비스를 구축하기위한 매우 가벼운 라이브러리입니다.

Socket.io. 실시간 네트워크 애플리케이션 개발을위한 라이브러리입니다.

 

실제로 Node.js 생태계에서는 거의 모든 작업에 대한 도우미 라이브러리를 찾을 수 있습니다. 상상할 수 있듯이 이러한 생태계를 구축하려면 많은 시간이 걸립니다. Node.js 플랫폼은 2009 년에 나타났습니다. 존재하는 동안이 플랫폼을 배우고 자하는 프로그래머에게 알아야 할 많은 일이 발생했습니다.

 

Node.js의 간략한 역사

 

Node.js는 올해 9 년이되었습니다. 물론,이 나이를 이미 23 세인 자바 스크립트의 나이와 비교할 때, 또는 Mosaic의 출현으로 세어 보면 우리가 알고있는 웹의 25 세 나이와 비교할 때 그다지 크지 않습니다. 브라우저.

 

9 년은 기술의 짧은 시간이지만 이제는 Node.js 플랫폼이 항상 존재 해 온 것처럼 보입니다.

 

2 년 전 플랫폼 초기 버전의 Node.js를 사용합니다. 그럼에도 불구하고 Node.js에 대한 정보가 그다지 많지 않았음에도 불구하고 Node.js가 매우 심각하다는 것을 이미 느낄 수있었습니다.

 

이제 Node.js 뒤에있는 기술에 대해 이야기하고이 플랫폼과 관련된 주요 개발.

 

따라서 JavaScript는 Netscape Navigator 브라우저에서 웹 페이지를 조작하기위한 스크립팅 언어로 Netscape에서 만든 프로그래밍 언어입니다.

Netscape 사업의 일부는 Netscape LiveWire라는 환경이 포함 된 웹 서버 판매였습니다. 서버 측 JavaScript를 사용하여 동적 웹 페이지를 만들 수 있습니다.

 

서버 측 개발을 위해 JS를 사용한다는 아이디어는 Node.js보다 훨씬 오래되었습니다. 이 아이디어는 JavaScript 자체만큼이나 오래되었지만 문제의 당시에는 서버 측 JS가 인기가 없었습니다.

 

Node.js 플랫폼을 널리 보급하고 대중화 한 주요 요인 중 하나는 처음 등장했을 때입니다. 그래서 몇 년 전에 JavaScript는 심각한 언어로 간주되기 시작했습니다. 이는 최신 웹 기술의 힘을 세상에 보여준 Google Maps 또는 Gmail과 같은 Web 2.0 애플리케이션 덕분입니다.

 

오늘날까지 계속되고있는 브라우저의 경쟁 전 덕분에 JavaScript 엔진의 성능이 크게 향상되었습니다. 주요 브라우저의 개발 팀은 일반적으로 JavaScript에 유익한 영향을주는 솔루션의 성능을 개선하기 위해 매일 노력하고 있습니다.

 

이러한 엔진 중 하나는 이미 언급 한 V8로, Chrome 브라우저에서 사용되고 Node.js에서 사용됩니다. 이는 고성능 JavaScript 코드를 위해 노력하는 브라우저 개발자의 결과 중 하나입니다.

 

물론 Node.js의 인기는 운이 좋은 우연과 플랫폼이 적시에 탄생했다는 사실에 기반을두고 있습니다. 그녀는 서버 측 JavaScript 개발에 대한 혁신적인 접근 방식을 세상에 소개했습니다. Node.js의 역사에서 주요 이정표를 살펴 보겠습니다.

 

2009


  • Node.js의 출현

  • 첫 번째 npm 변형 ​​만들기.

 

2010

  • Express의 모습.

  • Socket.io의 출현.

 

2011


  • Npm 1.0 릴리스.

  • LinkedIn 및 Uber와 같은 대기업은 Node.js를 사용하기 시작했습니다.

 

2012


  • Node.js의 인기 급상승.

 

2013


  • Node.js를 사용하는 출판을위한 최초의 주요 플랫폼 인 Ghost의 출현.

  • Koa 출시.

 

2014


  • 올해 극적인 이벤트가 열렸습니다. Node.js의 포크 인 IO.js 프로젝트가 나타 났는데, 그 목적은 무엇보다도 ES6 지원을 도입하고 플랫폼 개발을 가속화하는 것이 었습니다.

 

2015


  • Node.js 재단이 설립되었습니다.

  • IO.js와 Node.js 병합.

  • npm에서는 개인 모듈로 작업 할 수 있습니다.

  • Yield Node.js 4 (플랫폼의 버전 1, 2 및 3은 그렇지 않습니다).

 

2016


  • 왼쪽 패드 패키지 사건.

  • Yarn의 등장.

  • Node.js 6 릴리스.

 

2017


  • Npm은 보안에 더 많은 관심을 기울이기 시작했습니다.

  • Node.js 8 릴리스

  • HTTP 지원의 출현 / 2.

  • V8은 공식적으로 Chrome뿐만 아니라 Node.js 용으로 설계된 JS 엔진으로 인정 받고 있습니다.

  • 매주 30 억 npm 다운로드가 있습니다.

 

2018


  • Node.js 10 릴리스.

  • ES 모듈 지원.

  • 실험적인 mjs 지원.