본문 바로가기
programming language/Node.js

NestJS

by cariño 2023. 6. 25.
728x90
반응형

Nest JS란?

 

효율적이고 확장 가능한 Node.js 서버 측 어플리케이션을 구축하기 위한 프레임 워크이다.

progress Javascript사용하고 Typescript로 빌드되고 지원한다.

내부적으로 Nest는 Express와 같은 강력한 HTTP 서버 프레임 워크를 사용하며 선택적으로 Fastify를 사용하도록 구성할 수도 있다. 개발자와 팀이 고도로 테스트 가능하고 확장 가능하며 느슨하게 결합되고 유지관리가 쉬운 애플리케이션을 만들 수 있는 즉시 사용 가능한 애플리케이션 아키텍쳐를 제공한다. 

 

 

공식문서: https://docs.nestjs.com 

 

Documentation | NestJS - A progressive Node.js framework

Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea

docs.nestjs.com

 

 

1. Nodejs 설치하기

NestJS는 NodeJS 프레임워크이기에 노드를 먼저 설치해줘야 한다. 

 

2. Nest JS CLI 설치하기

설치: npm i -g @nestjs/cli
프로젝트 생성: nest new project-name
설치 확인: nest --version

 

3. 폴더 구조 알아보기

  • eslintrc.js 
    • 개발자들이 특정한 규칙을 가지고 코드를 깔끔하게 짤 수 있도록 도와주는 라이브러리이다. 타입스크립트로 이루어져있기 때문에 사용 가이드 라인을 제시, 문법에 오류가 날 경우 알려주는 역할
  • prettierrc
    • 주로 코드의 형식을 맞추는 사용한다. ex) 작은따옴표, 큰 따옴표, indent값 등 에러를 찾는 것이 아닌 코드 포멧터 역할
  • nest-cli.json
    • nest 프로젝트를 자체에 필요한 특정한 설정을 할 수 있는 json파일
  • tsconfig.json
    • 타입스크립트를 어떻게 컴파일 할지 설정
  • tsconfig.build.json
    • tsconfig.json의 연장선상 파일이며 build를 할 때 필요한 설정들
  • package.json
    • build: 운영환경을 위한 빌드
    • format: 린트 에러가 났을시 수정
    • start: 앱 시작
  • src폴더 (비지니스 로직이 들어가는 곳)
    • main.ts: 앱을 생성하고 실행 - 앱의 시작
    • app.module.ts: 앱 모듈

 

 

 

4. NestJS 모듈이란?

모듈은 @Module() 데코레이터로 주석이 달린 클래스이다. @Module() 데코레이터는 Nest가 애플리케이션 구조를 구성하는데 사용하는 메타 데이터를 제공한다. 

 

각 응용프로그램에는 하나 이상의 모듈이있다. 루트 모듈은 nest가 사용하는 시작점이다. 

모듈은 밀접하게 관련된 기능 집합으로 기능별 관련 구성 요소를 구성하는 효과적인 방법이다.

ex) 유저 모듈, 주문 모듈, 챗 모듈

 

모듈은 기본적으로 싱글 톤이므로 여러 모듈간 공급자의 동일한 인스턴스를 쉽게 공유할 수 있다. 

 

728x90

'programming language > Node.js' 카테고리의 다른 글

NestJS 애플리케이션 만들기_1  (0) 2023.06.26
AWS_S3 client 배포하기  (1) 2022.12.01
React 로그인 API _ 2 (서버만)  (0) 2022.11.06
express 사용해 보자!  (0) 2022.10.24
Webpack  (0) 2022.09.20

댓글