본문 바로가기
web prog/Ecma Script

Node.js

by RedWiz 2018. 8. 31.

* 특징

- 싱글 쓰레드 

(사용자 코드 단에서 싱글 쓰레드로 작성 하지만, io작업은 내부적으로 멀티 쓰레드로 동작 한다.)

- 비동기 I/O

- 이벤트 기반(event driven)


* 아키텍처

- 상위레벨 : JS

- 하위레벨 : C

바인딩 

v8 엔진

libev : Event

libeio : I/O


* 도큐먼트

- 모듈

Node.js 간단한 구조

필요한 모듈을 로딩

모듈 : 다른 언어에서 라이브러리에 해당

기본 모듈 / 확장 모듈

메소드 -> 모듈 로딩 , 객체 생성 후 사용

모듈 함수 -> 객체 생성 없이 사용

한번 로드를 하면 캐싱을 하기 때문에 두 번 로드를 한다고 해서 서로 다른 로드를 한게 아님


require('모듈 이름')


- 이벤트

객체.on([이벤트 이름], [리스너 함수])


* 기본 모듈

- 주요 기본 모듈

프로세스 환경 : os, process, cluster

파일과 경로, URL : fs, path, URL, querystring, stream

네트워크 모듈 : http, https, net, dgram, dns


- 전역 객체 (global)

별도의 모듈 로딩 없이 사용

global 모듈 ex : global.console.log()

global 생략 가능 ex : console.log()


- 주요 전역 객체

process, console, Buffer(클래스), __filename, __dirname, module, exports, Timeout


- 유틸리티 모듈


- 이벤트 모듈


- path 모듈


- fs 모듈


- 버퍼


- 스트림


- URL


- 쿼리 스트링


- 클러스터