본문 바로가기
  • Let's go grab a data
Development/WEB

Node.js 개요, Hello node, ENIDE(eclipse) 설치, 설정

by pub-lican-ai 2017. 2. 13.
반응형

Node.js 개요, Hello node, ENIDE(eclipse) 설치, 설정


Node.js 서버사이드 프로그래밍

- 2009년 2월 Ryan Dahl의 TCP라이브러리와 HTTP서버를 만드는 개인 프로젝트에서 시작

- 2015년 9월 Node 4.0 발표

- Chrome의 자바스크립트 엔진인 V8을 서버사이드에 설치해서 독립 서버 구성

- 싱글 쓰레드의 이벤트 기반의 non-blocking I/O사용하여 고도의 확장성

- 간단한 작업을 수행하지만 접근 빈도가 높은 웹 어플리케이션에 적합


Node의 특징

1) 이벤트 기반의 non-blocking I/O : 비동기와 콜백함수 등록 처리 

2) 싱글스레드 : 자원을 효율적으로 사용, 교착상태, 동기화 문제 X, 비동기함수 내부적으로 멀티스레드로 처리

3) 자바스크립트로 개발 : 쉽고, 널리 알려져있고, 비동기 코드에 익숙하고, front & back 모두 통일

4) 다양한 확장모듈 : high-level API, npm(node package manager)을 통한 간단한 확장 모듈 관리


Node의 설계

- 플랫폼의 I/O를 직접 실행하지 않음

- 디스크, 네트워크, 다른 프로세스 정보 받을 때 반드시 콜백함수 이용

- Low-level API만 지원

- DNS, HTTP, TLS등 주요 프로토콜 지원

- 플랫폼 독립적


Node 아키텍처

코어(C/C++)
V8 - 크롬에서 사용하는 자바스크립트 엔진
thread pool(libeio) - C 언어용 비동기 I/O 라이브러리
event loop(libuv) - C로 구현된 고성능 이벤트 루프 라이브러리
DNS(c-ares) - 비동기 DNS 요청에 대한 C 라이브러리
crypto(OpenSSL) - 다양한 암호화 알고리즘 지원 C 라이브러리

노드 바인딩(C/C++)
노드 표준 라이브러리와의 인터페이스
socket, http 등의 통신 기능 제공

노드 표준 라이브러리(JavaScript)
자바스크립트 함수로 되어있는 노드의

   기본 라이브러리

프로세스 관리, 이벤트 처리, 파일 입출력,

암호화, TCP/UDP 통신, HTTP 통신,

클러스터링 등의 기능을 자바스크립트

함수로 제공



Node 개발 환경

Node.js

ENIDE
Eclipse Node.js IDE

- http://www.nodeclipse.org/updates/

JDK

- http://www.oracle.com/technetwork/java/javase/downloads/


[workspace 폴더 설정]

window- preferences - general - content type - text - html - add - *.ejs 


window- preferences - general - content type - text의 Default encoding : UTF-8 - Update


window- preferences - general - Workspace - encoding : UTF-8


window- preferences - CSS Files, HTMLFiles - encodeing UTF-8


window- preferences - HTMLFiles - Web Resources - 다 Ignore


window- preferences - JavaScript - Code Style - Formatter - New - 'javascript' - Indentation size:2 Tab size:2 


window- preferences - general - Appearance - Colors and Font - bagic - Text font


[Hello node]

File - New - nodejs Project - 'nodeweb' - hello world Template - 'hello-world-server.js'우클릭 - Run As - Node Application

localhost:1337에서 확인

반응형