ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Modern JavaScript Node.js
    FrontEnd/Node.js 2023. 3. 14. 23:31

     

     


    1. Node.js 개요

    • Chrom V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임환경(Runtime Environment)로 주로 Server Side에서 사용되는 Software Platform
    • 외부 환경에서 자바스크립트 애플리케이션 개발에 사용되며 모듈, 파일시스템, HTTP 등 Built-in API 제공
    • Non-blocking (웹동작 대기시간이 적음) I/O와 단일 스레드 이벤트 루프를 통해 높은 Request 처리 성능을 가짐
    • 실시간 처리가 빈번한 I/O가 발생하는 SPA에 적합하지만, CPU 사용률이 높은 Application에는 권장하지 않음
    • Socket.io를 통해 실시간 통신을 실행하는 라이브러리 사용 (대량의 데이터처리, 실시간통신)

     


     

    2. 설치

    •  Node.js 웹사이트(http://nodejs.org) 에서 LTS 버전 다운로드 (Long Term Supported : 안정보장)
    • Mac(terminal)  '/usr/local/bin/node' :  npm도 동시에 설치됨 

     

     

     

    // 버전확인
    $ node -v
    v10.15.1
    $ npm -v
    6.4.1
    
    // 최신버전 업데이트
    $ sudo npm install -g n
    
    // 캐시삭제
    $ npm cache clean -f
    
    // latest version
    $ n latest # sudo n latest
    
    //특정버전 삭제
    $ n rm 10.15.1 
    
    //node 접속후 코드실행가능
    $ node
    
    
    //HTTP 서버작성
    const http = require('http'); // 1
    
    //http module
    http.createServer((request, response) => { // 2
      response.statusCode = 200;
      response.setHeader('Content-Type', 'text/plain');
      response.end('Hello World');
    }).listen(3000); // 3
    
    console.log('Server running at http://127.0.0.1:3000/');
    
    
    // 실행
    $ node app.js

     

    • Node.js 는 Module 단위로 기능을 분할할 수 있음
    • Module은 파일과 1:1 대응관계이며, 모듈마다 독립적인 Scope를 가짐 (전역변수로 인한 중복문제 발생x)
    • Module은 module.exports 또는 exports 객체를 통해 정의
    • require 함수로 import
    • createServer([requestListner]) method를 사용하여 http 객체 생성 (EventEmiiter Class를 상속한것)
    • request -> processing (request listener) -> response : 발생시마다 한번 호출
    • .listen(3000) : 포트번호 3000 의미

     

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

    Modern JavaScript npm & Module  (1) 2023.03.16

    댓글

Designed by Tistory.