해당 글은 여기글을 참고했음을 밝힙니다. (원문 작성일은 2017. 7)
Node.js
Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다. Node.js 는 이벤트 기반, 논 블록킹 I/O 모델을 사용해 가볍고 효율적이다. Node.js의 패키지 생태계인 npm은 세계에서 가장 큰 오픈소스 라이브러리 생태계이기도 하다.
Node.js 로 할 수 있는 것들
- 정적 파일 서버
- 웹 애플리케이션
- 메세지 미들웨어
- HTML5 멀티 플레이어 게임용 서버
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); | cs |
아직 뭐가 뭔지 모르지만 복붙했는데, Hello World 라는 구문의 연결을 동시에 많이 처리할 수 있다고 한다. 서버와 연결되고 콜백메소드가 수행되지만 수행 작업이 없으면 노드는 sleep 에 빠진다.
스레드 기반의 네트워킹은 상대적이르 비효율적이며 사용하기가 어렵지만, 노드는 LOCK이 없으므로 프로세스를 Dead-Lock 할 걱정이 없고 I/O 를 직접 수행하지 않으므로 프로세스가 절대 차단되지 않기 때문이다. 결국 Nothing Blocks 은 scalable 한 시스템을 구축하기에 매우 이점이 있다고 한다.
npm
Node.js 기반의 JavaScript로 개발된 오픈소스를 모듈로 올려놓은 곳이다. 우리는 웹 개발에 필요한 모듈들을 npm 명령어를 통해서 쉽게 다운받고 사용할 수 있다.
설치
이제 공홈에서 다운받도록 하자.
(1) https://nodejs.org/en/download/ 해당 링크 클릭
(2) LTS (Recommended For Most Users) 버전을 다운
(3) 나는 윈도우 64비트이기에 거기에 맞게 다운받는다.
(4) 다운을 다 받고 난 뒤, 노드를 설치한다. 이후에 CMD 를 켜서 아래와 같이 버전이 나오는 것을 확인해야 한다. 다운이 잘 되었으면 아래와 같이 명령어를 입력하면 값이 제대로 찍히는 것을 확인할 수 있다. (환경변수 경로는 설정이 잘되어있는 것을 확인하였다.)
Node.js 테스트
.js 파일을 만들고 아래와 같이 작성하자. 파일명은 test.js 이다.
1 2 3 4 5 6 7 | function sum(a, b){ return a + b; } console.log('sum = ' + sum(1, 2)); | cs |
이제 CMD 창에서 해당 .js 파일이 있는 곳으로 이동후 node test.js 를 입력하면 제대로된 값이 나타남을 확인할 수 있다.
NPM 테스트
npm 을 통해 특정 모듈을 다운받고 다운받은 모듈을 통해서 특정작업을 수행한다. .js가 있는 디렉토리를 이동하고 npm init -y 라는 명령어를 입력하면 해당 명령을 입력한 디렉토리에 package.json 이라는 파일이 생성된 것을 확인할 수 있다.
package.json 은 아래의 내용을 말한다.
1 2 3 4 5 6 7 8 9 10 11 12 | { "name": "doubler", "version": "1.0.0", "description": "", "main": "test.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } | cs |
프로제트에 대한 명세이면서 해당 프로제트의 이름, 버전, 사용되는 모듈등이 있고 의존성들에 대해서 관리할 수 있다. 만약 어느 오픈소스를 다운받을 때 package.json 만 있다면 해당 오픈소스가 의존하고 있는 모듈이 어떤 것인지 npm install 명령어로 한 번에 설치할 수 있다.
이로써, 기본적인 개념과 설치과정은 여기까지고 자세한 내용은 참고링크를 통해 확인하고 훨씬 더 좋은 양질의 글들은 인터넷에 있으니 거기서 살펴보길 바란다.
'javascript' 카테고리의 다른 글
20180420 CORS (수정 : 20191104) (0) | 2018.04.20 |
---|---|
20180407 자바스크립트 조건 및 제어문 (0) | 2018.04.07 |
20180407 자바스크립트 연산 및 함수 (0) | 2018.04.07 |
20180407 자바스크립트 변수 및 객체 알아보기. (0) | 2018.04.07 |
20180330 form 태그를 통한 ajax 방식 (0) | 2018.03.30 |