Backend/Node.js

Node.js 이해

yxemsy 2022. 2. 18. 16:24

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