티스토리 뷰

Node.JS/개념 공부

[Intro] NodeJS 소개

Waterbottle 2018. 1. 7. 14:03

NodeJS란?


오픈 소스 서버 프레임 워크이다.(서버 프레임워크란 간단하게 말하면 서버의 뼈대, 골격을 의미한다.) 뿐만 아니라 누구나 사용할 수 있으며 다양한 플랫폼에서 실행이 가능하다. 그리고 흔히 JavaScript라 하면 프론트 엔드 쪽에서 사용하는 언어라고 많이 알려져있는데 서버쪽에서도 JavaScript를 사용하여 구현이 가능하다.


※NodeJS는 Node 자체가 웹서버가 아니다. 웹 서버로 사용하려면 HTTP 서버를 JavaScript Library와 Code를 사용해서 웹서버를 작성해야한다. 즉, Node는 서버 프레임워크이다.(절대 언어가 아니다.)






NodeJS를 사용하는 이유


NodeJS는 대기하고 있는 내용들을 제거하고 다음 요청으로 계속 진행을 한다. 또한 단일 스레드, Non블로킹, 비동기 프로그래밍을 실행하게 되므로서 메모리 관리가 매우 효율적이다. 좀 더 간단하게 정리를 해보면 아래와 같다.


  • 비동기 I/O 처리 및 Event 위주
Node JS 라이브러리의 모든 API는 비동기식 프로그래밍이다. 비동기식 프로그래밍이란 하나의 요청 처리가 끝날 때 까지 기다리지 않고 다른 요청을 동시에 처리할 수 있도록 하는 방식을 의미한다. 이는 같은 말로 Non-Blocking 방식이라고 한다. 비동기식 프로그래밍의 예를 들어보면 다음과 같다.

"더하기 함수를 실행한 후 결과 값이 반환될 때 까지 기다리지 않고 그 다음 코드를 실행하고 싶을때 비동기 방식 프로그래밍을 사용해야 한다. 왜냐하면 더하기 함수를 실행하는데 시간이 많이 걸릴 수 있기 때문에 기다리지 않고 다음 코드를 바로 실행하기 위함이다"

  • 매우 빠른 속도
구글 크롬의 V8 JavaScript 엔진을 사용하여 빠른 코드 실행을 제공한다.

  • 단일 스레드 및 뛰어난 확장성
이벤트 루프와 함께 단일 스레드 모델을 사용하며 단일 스레드(한개의 스레드만 사용)이지만 Apache 같은 웹서버 보다 훨씬 많은 요청 처리를 할 수 있다.

  • Non 버퍼링
데이터 버퍼링이 없으며 chuck 단위로 출력을 한다.(MongoDB에서도 사용됨)

  • 라이센스
MIT License






NodeJS로 할 수 있는 것


- 동적 페이지 콘텐츠 제작

- 서버에서 파일을 생성, 열기, 읽기, 쓰기, 삭제, 닫기 기능 구현

- 양식 데이터 수집

- DB의 데이터를 추가, 삭제, 수정 가능

- 입출력이 잦은 애플리케이션 제작

- 데이터 스트리밍 애플리케이션 제작

- 실시간 데이터를 이용하는 애플리케이션 제작

- JSON API 기반 애플리케이션 제작

- 단일 페이지 애플리케이션 제작

Comments