반응형
Node.js는 쉽게 말해 웹브라우저 바깥의 환경에서도 javascript가 동작할 수 있게 하는 프레임워크이다.
✨ 특징
- 브라우저 밖에서 js 코드를 실행할 수 있도록 해준다.
- 크롬 브라우저에서 사용하는 것과 같은 V8 엔진을 사용한다.
- 이벤트 기반의 비동기 I/O 프레임워크이다.
- commonJS 를 구현한 모듈 시스템이다.
- 싱글 스레드를 기반으로 동작한다.
👍 장점
- 비동기 I/O 프레임워크이다.
서버의 경우에는 I/O를 빈번하게 사용한다. (ex: DB로 부터 데이터 읽어오기, 수정하기...)
그래서 비동기 I/O 라는 것이 큰 장점이 된다.
- 그리고 클라이언트에서 사용하는 언어인 js로 작성 가능하다.
- 간단한 구조로 구성된 프레임워크이다.
- 다양한 라이브러리(모듈)가 존재한다.
📑 모듈
1. 로딩 위치
- 기본 모듈: Node.js 라이브러리 디렉토리 내부
- 확장 모듈: node_modules 디렉토리 내부
→ npm을 사용하여 별도로 설치해야 한다.
2. 사용법
require('모듈 이름'): 모듈 로딩
createInterface(options): 객체 생성
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
3. 이벤트 핸들링
1) 이벤트의 예:
- 클라이언트의 접속 요청
- 소켓에 데이터 도착
- 파일 오픈/읽기 완료 등..
-> 비동기로 처리해준다. listener 함수를 사용한다!
2) on과 once의 차이점?
rl.on('line', (cmd) => {
console.log('line')
});
rl.once('line', (cmd) => {
console.log('line')
});
- on: 이벤트가 발생할 때마다 listener 함수가 동작
- once: 이벤트가 처음 발생했을 때 listener 함수가 한 번만 동작
3) 커스텀 이벤트
var customEvent = new event.EventEmitter();
customEvent.on('tick', ()=>{
console.log('custom event');
});
customEvent.emit('tick');
var Person = function (){};
// 상속
var util = require('util');
var eventEmitter = require('events').eventEmitter;
util.inherits(Person, eventEmitter);
// 객체
var p = new Person();
p.on('howAreYou', ()=>{
console.log('fine thank you');
});
// 이벤트 발생
p.emit('howAreYou')
4) 에러 처리
emitter.on('event', (error, result)=>{
if(error){
// error handling
}
else{
}
});
* 본 게시물은 Tacademy의 강의 영상을 참고하여 작성되었습니다.
tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=71
반응형
'서버 개발' 카테고리의 다른 글
개발 방법론에 대해 알아보자 (0) | 2021.05.16 |
---|---|
OAuth로 구글 로그인을 구현해보자 (0) | 2021.05.08 |
MongoDB 연결하기 (0) | 2021.04.21 |
Express란 무엇일까? (0) | 2021.04.20 |
JSON과 XML에 대해 알아보자 (0) | 2021.04.19 |
댓글