1. Node.js 개요 

1. Node.js 소개

: 2009년 Ryan Dahl 이 개발

: 자바 스크립트 언어, 크롬 V8 엔진

: 싱글 쓰레드, 비동기 I/O, 이벤트 기반 => 네트워크 애플리케이션에 적당함, 서버

: 서버는 디스크에 저장된 파일을 읽어야 되는데, 동기식 IO에서는 보통 멀티 쓰레드를 사용한다.

: 멀티쓰레드는 어려운데 노드는 비동기 I/O 이기 때문에 훨씬 쉽고, 성능이 좋다.

: 아톰도 노드 기반이다.

* 비동기 I/O

: 시간이 걸리는 I/O 에서...

: 하드디스크 접근, DB 서버, 네트워크를 통한 다른 서비스 접근 등...

: 동기식은 I/O가 끝날때까지 대기

: 비동기식은 I/O가 끝날때까지 대기하지 않음

* 비동기 I/O의 장점

: 성능상, 메모리 관리상 유리하다.

* Node.js의 장점

: 싱글쓰레드, 비동기 I/O, 간단한 구조의 경량 프레임워크와 풍부한 라이브러리

: 서버와 클라이언트에서 사용하는 언어가 같다

* Node.js 권장 분야

: 실시간 소셜 네트워크 서비스

: 데이터 중심의 서비스

: IoT 기기 연동

* 아키텍처

: 상위레벨 : 자바스크립트

: 로우레벨 : C

: 바인딩, v8 엔진, 쓰레드풀, 이벤트 루프

* 버전 구성과 지원

: Node.js 버전을 두단계로 진행

: 짝수버전(stable), 홀수버전(Unstable)

2. 프로그래밍 모델

: 동기(Synchronous)와 비동기(Asynchronous)의 차이는 무엇일까?

- 실행기 끝나고 다음 실행        - 실행 결과가 끝날때 까지 기다리지 않는다

* 콜백함수로 비동기를 구현한다.

5. 도큐먼트

* 모듈

: Node.js 간단한 구조, 필요한 모듈을 로딩

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

* 모듈

: 클래스, 메소드, 이벤트, 모듈함수

* 모듈로딩

: require('모듈이름') // 절대경로 혹은 상대경로

: 모듈 종류

: 기본모듈 - 설치 불필요 // 확장모듈 - npm으로 별도 설치

* 모듈로딩위치

: Node.js 라이브러리 디텍토리

: 확장모듈

: 같은폴더, node_modules 이름의 폴더, 상위 폴더의 mode_modules

* 모듈사용

1. 객체생성

2. 메소드 사용

* 이벤트

: 이벤트 - 이벤트 핸들러

: .on(이벤트이름, 리스너함수)

* 모듈함수

: 객체 생성 없이 모듈에 직접 사용 




'프로그래밍 > Nodejs' 카테고리의 다른 글

HTTP 서버  (0) 2017.04.16
http 통신  (0) 2017.04.16
흐름제어 - 콜백, Async모듈, Promise  (0) 2017.04.15
NPM을 이용한 모듈관리  (0) 2017.04.15
Node.js 모듈  (0) 2017.04.14

+ Recent posts