Dev Web/Node.js2013. 9. 24. 11:42

node.js 애플리케이션을 만들기 IDE 툴로 가장 편하다는 webstorm 입니다.

프로젝트를 하나 만들어 보는 과정을 캡쳐해봤습니다.


firstNodeProjcet 이름으로 만들었습니다. express 프레임워크 사용을 옵션으로 설정 합니다.


템플릿 엔진과 CSS 엔진을 선택할 수 있습니다. 주로 쓰는 Jade 나 ejs 를 사용하면 되겠습니다.


node.js core 모듈을 가져오는 방법을 선택합니다.


프로젝트를 생성한 결과 화면 입니다. express 모듈과 core 모듈 등이 디렉토리로 정리되어 보입니다.


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

[Node.js] express 프레임워크  (0) 2013.09.24
[Node.js] express 모듈  (0) 2013.09.24
[Node.js] jade 외부 모듈  (0) 2013.09.24
[Node.js] ejs 외부 모듈  (0) 2013.09.24
[Node.js] 기본 내장 모듈  (0) 2013.09.24
Posted by 놀란
Dev Web/Node.js2013. 9. 24. 11:41

express 프레임워크는 express 모듈로 만든 프레임워크입니다.

express 프레임워크는 프로젝트를 손쉽게 만들어주며 기본적인 뷰 지원과 세션 지원을 합니다.

설치

sudo npm install -g express

프로젝트 생성

express HelloExpress(프로젝트명)

cd HelloExpress && npm install (express 프레임워크와 관련된 모듈 설치)

 - npm install 만으로 필요 모듈 설치할 수 있는 것은 HelloExpress 디렉토리 안에 package.json 때문입니다. (파일내 구성이 있음)

프로젝트 실행

node app (app.js 파일이 기본 실행 파일)


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

[Node.js] WebStorm Tool 소개  (0) 2013.09.24
[Node.js] express 모듈  (0) 2013.09.24
[Node.js] jade 외부 모듈  (0) 2013.09.24
[Node.js] ejs 외부 모듈  (0) 2013.09.24
[Node.js] 기본 내장 모듈  (0) 2013.09.24
Posted by 놀란
Dev Web/Node.js2013. 9. 24. 11:40

설치

npm install express

기본 서버 생성 및 실행


express 모듈은 http 모듈처럼 사용할 수 있지만 훨씬 많은 기능을 가지고 있습니다.

기본 응답 메서드

response 객체

response.send() - 매개변수의 자료형에 따라 적절한 형태로 응답합니다.

 - HTML, JSON, Array

response.json() - JSON 형태로 응답합니다.

response.jsonp() - JSONP 형태로 응답합니다.

response.redirect() - 웹 페이지 경로를 강제로 이동합니다.



미들웨어
http 모듈과 express 모듈로 만든 서버의 차이점은 use() 메서드를 사용한다는 것
use() 메서드는 여러번 사용 가능
use() 메서드를 사용하여 다양한 미들웨어 모듈을 사용하게 설정할 수 있습니다.

express 모듈의 미들웨어
  • logger
  • csrf
  • basicAuth
  • bodyParser
  • session
  • methodOverride
  • responseTime
  • router
  • staticCache
  • static
  • directory
  • vhost
  • favicon
  • limit
  • errorHandler



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

[Node.js] WebStorm Tool 소개  (0) 2013.09.24
[Node.js] express 프레임워크  (0) 2013.09.24
[Node.js] jade 외부 모듈  (0) 2013.09.24
[Node.js] ejs 외부 모듈  (0) 2013.09.24
[Node.js] 기본 내장 모듈  (0) 2013.09.24
Posted by 놀란
Dev Web/Node.js2013. 9. 24. 11:39

jade 모듈도 ejs 모듈과 같이 템플릿 엔진 모듈입니다.

인스톨

npm install jade


jede 모듈 추출

var jade = require('jade');


jade 페이지를 HTML 페이지로 변환

jade 페이지를 HTML 페이지로 변환할 때에는 ejs 모듈의 render() 메소드와 다르게 문자열을 리턴하는 것이 아니라 함수를 리턴합니다.

jade 모듈 메소드

compile(string) - jade 문자열을 HTML 문자열로 바꿀 수 있는 함수를 생성합니다.


jade (jadePage.1.jade)기본 형식 - 계층 구조 형성


이런 jade 파일이 HTML 형태로 변경이 됩니다.


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

[Node.js] express 프레임워크  (0) 2013.09.24
[Node.js] express 모듈  (0) 2013.09.24
[Node.js] ejs 외부 모듈  (0) 2013.09.24
[Node.js] 기본 내장 모듈  (0) 2013.09.24
[Node.js] Node.js 샘플 애플리케이션  (0) 2013.09.24
Posted by 놀란
Dev Web/Node.js2013. 9. 24. 11:13
  1. os 모듈
    1. 운영체제와 관련된 정보 출력 (실제로는 잘 사용되지 않음)
      1. 모듈 추출
        1. var os = require('os');
        2. console.log(os.hostname());
  2. url 모듈
    1. url 관련된 정보 출력
      1. var url = require('url');
      2. var parsedObject = url.parse('http://nolran.tistory.com/59');
      3. console.log(parsedObject);
  3. Query String 모듈
    1. url 에 붙어오는 query 와 관련된 정보 출력
      1. var url = require('url');
      2. var querystring = require('querystring');
      3. var parsedObject = url.parse('http://nolran.tistory.com?name=hyukjoon');
      4. console.log(querystring.parse(parsedObject.query));
  4. util 모듈
    1. Node.js의 보조적인 기능을 모아둔 모듈
      1. var util = require('util');
      2. var data = uril.format('%d + %d = %d', 52, 273, 52 + 273);
      3. console.log(data);
  5. crypto 모듈
    1. 암호화 생성 모듈
      1. var crypto = require('crypto');
      2. var shasum = crypto.createHash('sha1');
      3. shasum.update('crypto_hash');
      4. var output = shasum.digest('hex');
      5. console.log('crypto_hash:', output);
  6. File System 모듈
    1. 파일 처리와 관련된 모듈
    2. 빈번하게 사용된다. (파일 읽기, 쓰기)
      1. 파일 읽기
        1. var fs = require('fs');
        2. var text = fs.readFileSync('textfile.txt', 'utf8');
        3. console.log(text);
      2. 파일 쓰기
        1. var fs = require('fs');
        2. var data = 'Hello World .. !';
        3. fs.writeFile('TextFileOtherWrite.txt', data, 'utf8', function (error) { console.log('WRITE FILE ASYNC COMPLETE'); });
        4. fs.writeFileSync('TextFileOtherWriteSync.txt', data, 'utf8');
        5. console.log('WRITE FILE SYNC COMPLETE');


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

[Node.js] express 모듈  (0) 2013.09.24
[Node.js] jade 외부 모듈  (0) 2013.09.24
[Node.js] ejs 외부 모듈  (0) 2013.09.24
[Node.js] Node.js 샘플 애플리케이션  (0) 2013.09.24
[Node.js] Node.js 개요.  (0) 2013.09.24
Posted by 놀란
Dev Web/Node.js2013. 9. 24. 11:08

실행 법
node helloworld.js

웹 서버가 생성되고 실행이 됩니다.

로컬에 생성한 것으로 가정하여 접근 법은 
http://127.0.0.1:8124   로 접근하면 됩니다. (8124 포트로 생성 했으므로)


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

[Node.js] express 모듈  (0) 2013.09.24
[Node.js] jade 외부 모듈  (0) 2013.09.24
[Node.js] ejs 외부 모듈  (0) 2013.09.24
[Node.js] 기본 내장 모듈  (0) 2013.09.24
[Node.js] Node.js 개요.  (0) 2013.09.24
Posted by 놀란
Dev Web/Node.js2013. 9. 24. 10:43
1. Node.js 배경사

Node.js 는 구글 크롬 브라우저에서 사용하는 V8 자바스크립트 엔진을 기반으로 자바스크립트로 애플리케이션을 개발 할 수 있게 합니다.

V8 엔진은 기존의 다른 자바스크립트 엔진보다 속도가 빨랐고, 그로 인해 자바스크립트를 이용해서 웹 브라우저가 아닌 곳에서 쓸 수 있게 되었습니다. CommonJS(ServerJS) 프로젝트와 V8 자바스크립트 엔진을 기반으로 Node.js 를 개발하기 시작했습니다.

기존 웹 서버는 대부분 쓰레드(thread)를 기반으로 하는 동기 방식으로 네트워크 입출력을 처리하는 반면, Node.js 는 이벤트를 기반으로 하는 비동기 방식으로 네트워크 입출력을 처리합니다.


2. 이벤트 기반 비동기 방식

Node.js 는 이벤트 기반 비동기 방식으로 작동 -> 대규모 네트워크 프로그램 개발에 적합

물건 구매를 예를 들어 여러 가게에 물건을 사러 간다고 할 때,

동기 방식은

  • 몸을 복제하여 동시에 여러 가게에 간다.
    • 이 방식은 쓰레드를 여러개 만들어 동시에 일을 처리한다는 것을 의미합니다.
    • 쓰레드는 많아질수록 메모리 사용량이 폭발적으로 증가하는 단점이 있습니다.
비동기 방식은
  • 시장을 대기표를 나누어주는 시스템으로 바꾸고 대기표를 받고 기다린다.
    • 대기 번호를 부르는 이벤트가 발생하는 순간 물건을 받아오면 됩니다.
    • 쓰레드는 단 하나만 사용하므로 몸은 하나입니다.
    • 이벤트를 사용하므로 빠른 속도로 일을 처리할 수 있습니다.
    • 하지만, 일을 처리하는 한 명이 쓰러지는 순간 프로그램 전체에 문제가 발생하는 단점도 있습니다.

3. Node.js 장점과 단점

장점

Node.js 장점은 이벤트 기반 비동기 방식을 사용하여 대규모 네트워크 프로그램을 개발하기 적합합니다.

자바스크립트를 사용하기 때문에 다른 기존 웹개발자 들이 쉽게 접근 할 수 있습니다.

구글이 V8 자바스크립트 엔진 속도 점점 더 빠르게 하고 있습니다.

C++를 사용하여 기능을 확장 할 수 있습니다. (V8 엔진이 C++로 개발)

단점

단점은 프로그램 진행에 문제가 발생하는 순간 프로그램 전체가 영향을 받는 것입니다.

V8 자바스크립트 엔진이 아무리 빨라도 C, C++ 언어로 개발된 서보보다는 느립니다.


4. Node.js를 사용한 애플리케이션

이베이, 링크드인, 야머, 윈도 애저



참고 : 모던 웹을 위한 Node.js 프로그래밍 - 윤인성



Node.js 프로그래밍

저자
윤인성 지음
출판사
한빛미디어 | 2013-09-20 출간
카테고리
컴퓨터/IT
책소개
이 책이 제시하는 핵심 내용 자바스크립트 + Node.js로 배...
가격비교글쓴이 평점  



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

[Node.js] express 모듈  (0) 2013.09.24
[Node.js] jade 외부 모듈  (0) 2013.09.24
[Node.js] ejs 외부 모듈  (0) 2013.09.24
[Node.js] 기본 내장 모듈  (0) 2013.09.24
[Node.js] Node.js 샘플 애플리케이션  (0) 2013.09.24
Posted by 놀란