Nest 소개
Nest는 Nest에서 작성된 소스 코드를 Express 또는 Fastify에서 실행할 수 있는 JavaScript 소스 코드로 컴파일하는 역할을 하는 Node.js 기반 프레임워크입니다.
Node.js의 역사
Node.js는 2009년에 출시되었으며 JavaScript를 프런트엔드 언어로 인식하는 데 변화를 가져왔습니다. 이를 통해 개발자는 JavaScript를 사용하여 서버를 실행할 수 있으므로 프론트엔드와 백엔드 모두에서 동일한 언어를 사용할 수 있다는 큰 이점을 제공합니다. 구글이 만든 자바스크립트 엔진인 V8의 성능은 '자바스크립트가 느리다'는 인식을 바꿔놓았다.
패키지 관리 시스템(NPM)
Node.js에는 개발자가 자신의 라이브러리를 등록하고 공개하거나 비공개로 등록할 수 있는 패키지 관리 시스템인 NPM(Node Package Manager)이 있습니다. 2022년 3월 현재 등록된 패키지 수는 190만 개에 육박합니다. NPM은 이제 Microsoft가 Github를 인수한 후 효과적으로 주도하고 있습니다.
Nest에서 NPM 사용
- Nest는 Node.js를 기반으로 하므로 개발자는 NPM을 그대로 사용할 수 있습니다. 개발에 라이브러리가 필요한 경우 NPM CLI를 사용하여 설치할 수 있습니다. Nest도 NPM에 등록되어 NPM으로 설치할 수 있습니다. Nest 관련 패키지를 확인하려면 npmjs.com에서 @nestjs를 검색하십시오.
Node.js의 특징
- Node.js는 non-blocking I/O 이벤트 기반 비동기 방식을 사용하여 단일 스레드에서 작동합니다.
- Node.js는 백그라운드에서 작업을 처리하기 위해 스레드 풀을 구성하지만 개발자가 직접 관리하지 않습니다.
- Node.js는 들어오는 작업을 비동기적으로 처리하고 처리된 결과를 이벤트로 반환합니다.
Node.js의 장점과 단점
- 이점
-
- 대규모 네트워크 애플리케이션 개발에 적합
- 개발자가 단일 스레드에서 실행 중인 것처럼 코드를 쉽게 작성할 수 있음
-
- 단점
-
- 하나의 스레드가 실패하면 전체 애플리케이션이 실패할 위험이 있습니다.
- 컴파일러 언어의 처리 속도에 비해 성능이 떨어짐
- 이벤트 기반 비동기 방식으로 복잡한 기능을 구현하면 콜백 지옥이 발생할 수 있습니다.
-
Node.js에서 비동기 프로그래밍의 진화
- ECMAScript 2015(ES6)에 Promise가 도입되어 코드의 가독성과 표현력이 향상되었습니다.
- ECMAScript 2017에 추가된 async/await 기능을 사용하면 비동기 작업을 마치 동기 작업인 것처럼 처리하는 코드를 작성할 수 있습니다.
참고사이트
- https://wikidocs.net/158470#fn:%EC%BD%9C%EB%B0%B1%EC%A7%80%EC%98%A5
- https://adrianalonso.es/desarrollo-web/apis/trabajando-con-promises-pagination-promise-chain/
-
libuv란?
-
- Node.js에서 사용하는 비동기 I/O 라이브러리다. 이 라이브러리는 C로 작성되었고 윈도우나 리눅스 커널을 추상화한다. 커널을 사용하여 처리할 수 있는 비동기 작업을 발견하면 바로 커널로 작업을 넘겨버린다. 이후 이 작업들이 종료되어 커널로부터 시스템 콜을 받으면 이벤트 루프에 콜백을 등록한다. 만약 커널이 지원하지 않는 작업일 경우 별도의 쓰레드에서 작업을 처리한다.
-
'Nest.js' 카테고리의 다른 글
Nest.js : 완전한 개발자 가이드 #1 (1) | 2023.03.08 |
---|---|
웹 프레임워크(Nest.js) (0) | 2023.03.07 |
Nest.js 설치 표준 (0) | 2023.03.07 |
Nest.js vs Express.js(Nest.js) (0) | 2023.03.07 |
Nest.js란? (0) | 2023.03.07 |