-
Modern JavaScript Node.jsFrontEnd/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