Node.js

김동현·2021년 7월 18일
0

Server & Node

목록 보기
3/6

What is Node.js?

노드는 v8 엔진으로 만들어진 자바스크립트 런타임이다.

What is V8

V8 complies JavaScript directly to native machine code

자바스크립트를 기계어로 컴파일 해준다.

Waht is runtime?

프로그래밍 언어가 구동되고 있는 환경

즉, node.js는 자바스크립트를 컴파일 해주는 엔진으로 빌드 된 자바스크립트가 구동중인 환경이다.

이벤트 기반 및 논블로킹 I/O 모델

이벤트

유저의 버튼 클릭이나 네트워크에 리소스를 요청 하는 것 등

논블로킹 vs 블로킹

  • 블로킹: 다음 함수의 실행이 현재 함수의 종료 이후에 이루어지는 것(동기와 비슷)

  • 논블로킹: 다음 함수의 실행이 현재 함수의 종료를 기다리지 않음(비동기와 비슷)

I/O model

Input을 주면 Output을 반환하는 모델

이벤트 기반 및 논블로킹 I/O 모델을 정의하면, 유저의 클릭이나 네트워크에 리소스를 요청하는 이벤트가 논블로킹으로 이루어지는 Input Output model

So, Node.js is...

javascript를 컴파일 하여 구동하고

이벤트 기반의 non blocking 모델로 속도가 빠르다.

Node core modules

별도의 설치를 하지 않아도, node 상에서 쓸 수 있는 모듈이 있다.

  • node 와 함께 번들링 되어있는 모듈

  • require("") 방식으로 사용 할 수 있다.

  • 예시

    • fs
    • http
    • url
    • path
  • ex)

    const fs = require('fs')
    const http = require('http')
    
    fs.readFile('./something.json', (err, data) => {
    	console.log(data);
    })
    http.get('http://localhost:5000/api', (res) => {
    	console.log(res)
    })

NPM

Node Package Manager

세계에서 가장 큰 오픈소스 라이브러리 생태계 중 하나

package.json에 그 정보들이 모두 담겨있다.

profile
개발자로서의 첫걸음

0개의 댓글