1) Node.js
Node.js는 자바스크립트를 어느 환경에서나 실행할 수 있게 해주는 실행기다.
브라우저에서 실행하는 자바스크립트는 웹 내부 제한된 동작만을 수행하지만,
Node.js는 크로스 플랫폼 실행이 가능하고 동작에 대한이 없으며, 다양한 어플리케이션 개발이 가능하다.
- Node.js는 싱글 쓰레드, 비동기, 이벤트 기반이다.
- 쓰레드란, 명령을 실행하는 단위로서 한 개의 쓰레드는 한 번에 한 가지 동작만 실행 가능하다.
- 비동기란, 동작을 실행한 후 완료가 되기를 기다리지 않고 다른 동작을 바로 실행하는 것이다.
- 이벤트 기반이란, 비동기 동작의 완료를 처리하는 방법이다. 어떤 비동기 동작이 완료될 경우 실행할 함수를 미리 등록한다. 그리고 동작이 완료되면 그 함수를 실행한다.
2) ES6
ECMAScript 버전6 이후를 통틀어 말한다.
ECMAScript는 자바스크립트의 표준 문법이다.
3) 비동기 코딩을 간단한 예시로 살펴보자.
- Callback: 전통적인 자바스크립트 이벤트 기반 코딩 방식
db.getUsers((err, users) => { // 에러와 결과를 같이 전달하는 것이 표준
console.log(users);
});
// 쿼리가 완료되면 오류가 있는지 보고 미리 등록된 콜백함수 실행
- Promise: Callback의 단점을 보완한 비동기 코딩 방식
Promise()
.then((res) => { // 동작이 완료되면 then에 등록된 콜백 실행
return promise1(res);
})
.then( r1 => promise2(r1))
.catch(e) // 오류 발생한 경우 catch에 등록된 콜백 실행
- Async-Await: Promise의 단점을 보완한 비동기 코딩방식
async function bedonggi() => { # async로 비동기 선언
const r1 = await promise1() # promise함수 결과는 await으로 받을 수 있음.
const r2 = await promise2(r1) # await한 promise가 완료될 때까지 기다림
const r3 = await promise3(r1, r2)
...
return r3
})
bedonggi().then(r3 => {
console.log(r3)
})
'Backend > Node.js' 카테고리의 다른 글
Node.js - Express.js와 MongoDB로 웹서비스 만들기 (0) | 2022.02.26 |
---|---|
Node.js - Express.js와 REST API (2) (0) | 2022.02.20 |
Node.js - Express.js와 REST API (1) (0) | 2022.02.20 |
Node.js - 웹과 Express.js (0) | 2022.02.20 |
Node.js - NPM과 모듈 (0) | 2022.02.18 |