Back Ground

NodeJS - [노드에 대해] 본문

Javascript/Node.js

NodeJS - [노드에 대해]

Back 2018. 9. 5. 13:11

노드란 무엇인가?


- 노드제이에스(Node.js)는 노드라고도 부름
- 웹 서비스와 같은 서버 기능을 구축할 수 있는 언어나 도구들은 이미 많은데, 노드라는 새로운 개발도구는 왜 또 만든 것일까?
- 파일 업로드 시의 문제를 해결하기 위해 새로운 방식의 서버 도구를 만들기 시작함










- 동기 입출력방식의 예

파일 내용을 다 읽고 난 후에 다른일을 처리한다.








- [노드의] 비동기 입출력 방식의 예


- 하나의 요청 처리가 끝날 때까지 기다리지 않고 다른 요청을 동시에 처리 → Non-Blocking IO(비-동기 입출력)
- 콜백 함수가 사용됨 ( 완료후 자동 실행처리 )







- 동기 방식과 비동기 방식의 코드 패턴 비교


                     [동기 방식]                                                                         [비동기 방식]


- 동기 방식은 파일의 내용을 읽어 함수의 결과값으로 반환함
- 결과값이 반환될 때까지 대기함
- 비동기 방식은 파일 내용을 읽은 후 콜백 함수로 반환함
- 파일 읽기가 시작되면 즉시 다음 실행 순서로 넘어감






- 이벤트 기반 입출력 방식

- 비동기 방식을 이벤트 기반 입출력 모델(Event driven IO) 이라고도 함
- 콜백 함수는 이벤트를 받았을 때 실행됨









노드 아키텍처

-V8 위에서 동작하며 자바스크립트 언어를 사용함







노드를 더 쉽게 사용할 수 있게 하는 모듈




- 자바스크립트 코드를 확장자가 js인 별도의 파일로 분리 → 모듈(Module)이라고 부름
- CommonJs 표준 스펙을 따름








노드의 주요 특징


- 자바스크립트는 수많은 웹 개발자들이 이미 사용하는 프로그래밍 언어
- 비동기 입출력 / 이벤트 기반 입출력 방식 사용
- 모듈과 패키지를 사용하면서 서버 프로그램 구성
- 이미 다른 사람들이 만들어 놓은 모듈들이 굉장히 많음





출처: Doit 노드JS


'Javascript > Node.js' 카테고리의 다른 글

NodeJS - 상속 [ES5]  (0) 2018.09.13
NodeJS - process [ES5]  (0) 2018.09.11
NodeJS - [서버]  (0) 2018.09.05
NodeJS - [개발도구 설치](선택)  (0) 2018.09.05
NodeJS 시작하기 전  (0) 2018.09.05
Comments