2015년 11월 16일 월요일

Node.js 프로그래밍 과정 1일차

2015.11.16 T아카데미 Node.js 프로그래밍 강좌를 수강하면서 필기.

패러다임의 변화 - 2008년 NYT 130여개 컨텐츠 PDF로 이전시

  1. 기존 패러다임으로 할 때 소요기간 14년 예상
  2. Hadoop, AWS로 수행 : 1일 200만원 소요

Node.js의 특징

  • DB연동이 쉽다
  • 2009년 라이언 달 제작
  • C++기반의 자바 스크립트 엔진
  • 이벤트에 반응하는 이벤트 리스너로 구현
  • Non-blocking I/O

애플리케이션 서버 작성

  • Apache + PHP
  • 자바 - 스프링
  • 파이썬 - 장고
  • 루비 - 레일즈
  • 자바스크립트 - node.js 

TCP통신과 HTTP통신의 차이

  • TCP통신 : 계속 connection을 유지해야 한다
  • HTTP통신 : 필요할 때만 connection이 유지되어도 된다. 요청을 보내서 응답을 받을 수 있기만 하면 된다.

Node.js를 도입한 곳

  • 링크드인
  • 이베이
  • 페이팔
  • 월마트
  • 페이스북
  • MS

서버에서의 동기식
하나의 서버로 다수의 클라이언트 요청 처리

  • 입출력 처리 병목 현상
    • 디스크 접근
    • 네트워크 접근
  • 서버 성능 향상 노력
    • 멀티 쓰레드를 이용한 성능 향상 노력
    • 멀티 쓰레드 프로그래밍의 난이도 + 자원동기화에 어려움

함수를 다루는 방법

1
2
3
4
5
function sayHello(who){
    console.log('Hello' + who);
}
var func = sayHello;
func('IU');
cs

콜백 - 인라인 방식으로 다시 작성하기

1
2
3
4
5
6
7
8
9
var fs = require("fs");
function readingfile(callback){
    fs.readFile("readme.txt","utf-8",function(err,content){
        callback(content);
    })
};
readingfile(function(fcontent){
    console.log(fcontent);
});
cs

아키텍처

  • 상위 - 자바스크립트
  • 하위 - C

Node.js 설치 후 Hello World 찍기

node.js 설치된 디렉터리에서 js파일 작성 후 실행

웹서버를 작성하여 실행하는 예제

Eclipse를 활용한 개발환경 셋팅

1. nodeclipse plug-in 설치 

2. Perspective를 ‘Node’ 로 변경 

3. 신규 프로젝트 생성 시 Node.js 프로젝트 선택

4. 템플릿을 선택하고 생성 

express와 nodemon 모듈의 전역설치

nodemon의 실행예제 : 서버 restart를 수동으로 할 필요없이 변경내용이 자동 적용됨

필요한 외부 모듈은 npm을 통해 설치 후 사용한다.

댓글 없음:

댓글 쓰기

Kotlin, SpringBoot 3, GraalVM 환경에서 Native Image로 컴파일하여 애플리케이션 실행

Spring Boot 3부터, GraalVM Native Image를 공식 지원하여 애플리케이션의 시작 속도와 메모리 사용량을 크게 줄일 수 있다. Native Image란 기존의 JVM 기반 위에서 돌아가는 Java 애플리케이션과는 달리 JVM 없이...