컴퓨터 공부/Node.js

[NodeJS] Node.js 개념 및 설치

나정_ 2015. 6. 3. 10:58

주제 : Node.js 개념 및 설치


Node.js를 직접 몇가지를 사용해보니 간단한 웹페이지를 만들기에는 더할 나위 없이 다루기 쉽고 편한 플랫폼인 것은 사실 인 것 같다. 그렇기 때문에 많은 개발자들이 node.js를 선호하고 있겠지 .... 싶다  

1. Node.js(노드.js)의 이해


Node.js란 높은 확장성을 고려해 디자인된 웹사이트/웹어플리케이션 프레임워크이다.


Node.js의 장점을 정리하자면 다음과 같다. 


A. 빠른 성능, 월등한 속도

B. 단일 스레드 (장점이지만 단점이 될 수도 있음)

C. 배우기 쉬움 





A. 빠른 성능, 월등한 속도

 

먼저 A. 빠른 성능과 월등한 속도를 기반하고 있는 것은 Node.js가 사용하는 엔진덕분이다. 


Node.js는 웹클라이언트 단 개발에 사용되던 V8엔진을 사용하고 있으며 기존 자바 스크립트 엔진이 바이트 코드로 변환하거나 인터프리터하여 처리한 방식과 달리 JIT(Just In Time)컴파일 방식을 사용하여 성능을 획기적으로 개선한다. 





B. 단일 스레드 (http://pyrasis.com/nodejs/nodejs-HOWTO) 참조 


Node.js의 가장 큰 특징 중 하나로 단일스레드 모델과 Non-blocking I/O이다. 


지금까지 소프트웨어 프로그래밍 세계에서는 성능향상을 위해 끊임없는 연구를 해왔다. 그 중 널리 쓰이게 된 방식은 멀티 스레드 방식이다. 멀티 스레드(Multi Thread)방식은 프로세스 안에 스레드를 여러개 만들어서 여러개의 로직을 동시에 처리하는 방식이다. 


이 방식은 지금까지 널리 쓰이고 있지만 복잡한 동기화 문제가 늘 골치거리였다. 프로그래머들은 수많은 동기화 모델과 락(Lock)에 대해 학습해야 했고 제대로 쓰기 어려웠으며 생산성 저하로 이어졌다. 


Node.js는 멀티 스레드 모델 대신 단일 스레드 모델과 Non-blocking I/O를 선택했다. 







C. 배우기 쉬움 


Node.js는 자바 스크립트로 작성되어 있기 때문에 배우기 쉽다는 장점과 함께 개발자들이 쉽게 클라이언트와 서버단 코드를 찾아볼 수 있고 심지어 두 환경 사이에 코드를 재활용할 수 있다.


이로 인해 node.js는 클라이언트와 서버 간의 격차를 쉽게 줄이며 규모를 아주 쉽게 조절할 수 있는 서버 단 개발 환경이다. 


또한, Node.js는 개발 생태계가 잘 구축되어 있어 새로운 확장모듈이 지속적으로 나오고 있고 환경 설정 또한 매우 깔끔하고 설치와 구성과 배포도 용이하다. 






2. Node.js 사용하는 곳은 어디일까? 


 Node.js는 아직 이른 개발단계에 있지만 확장성과 쉬운 운영, 빠른 개발 빠른 속도로 인해 다양한 업종의 회사에서 사용되고 있다. 


2. Node.js는 어떤 용도로 사용되는 걸까?


Node.js는 다양한 용도로 사용할 수 있다. V8에 기반해 HTTP트래픽을 처리하는데 최적화되어 있기때문에 가장 일반적인 용도는 웹 서버 개발이지만 아래와 같이 다양한 웹 서비스를 만드는 데도 사용할 수 있다. 


* REST와 같은 웹 서비스 API

* 실시간 멀티플레이 게임

* 도메인 교차(Cross Domain)기능이나 서버 측 요청과 같은 웹 서비스 백엔드 

* 웹 기반 어플리케이션 

* 대화방 같이 여러 사람이 동시 접속해 주는 소통 도구 


3. Node.js 설치


Node.js 웹사이트(https://nodejs.org/)에서 내려 받을 수 있는 installer를 사용해 Node.js를 간편히 설치할 수 있다. 



나는 테스트 겸으로 window버전을 깔았다. 

검색을 해보니 Windows Binary(.exe)파일은 node.exe 실행파일만 있고 npm명령이 들어가 있지 않아 불편하다고 한다. 그냥 Windows Installer를 다운받아 설치하도록 한다. 


* 리눅스의 경우 wget을 이용하여 다운받으면 될 것 같다. url은 다음과 같다. 

http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz 










'컴퓨터 공부 > Node.js' 카테고리의 다른 글

io.js 발생이유  (0) 2015.06.03