사이트링크


Documentation | NestJS - A progressive Node.js framework

공식홈페이지

NestJS로 배우는 백엔드 프로그래밍

책 일

Prisma | Next-generation ORM for Node.js & TypeScript

Prisma 공식홈페이지

MySQL database connector (Reference)

Prisma MySQL

GraphQL | A query language for your API

graphQL 공식홈페이지


간단 요약

<aside> 💡 NestJS는 Node.js를 위한 효율적이고 확장 가능한 서버 사이드 애플리케이션을 구축하기 위한 프레임워크입니다. TypeScript로 작성되었으며, 객체 지향 프로그래밍, 함수형 프로그래밍, 반응형 프로그래밍을 결합한 현대적인 방식으로 설계되었습니다.

NestJS의 주요 특징은 다음과 같습니다:

  1. TypeScript 기반: TypeScript의 장점을 활용하여 보다 견고하고 유지보수가 쉬운 코드를 작성할 수 있습니다.
  2. 모듈화된 구조: 애플리케이션을 여러 모듈로 나누어 관리할 수 있어, 크고 복잡한 애플리케이션의 개발과 유지보수가 용이합니다.
  3. DI(의존성 주입) 시스템: Angular의 DI 시스템에 영감을 받아, 의존성 관리를 간편하게 할 수 있습니다.
  4. 내장된 마이크로서비스 패키지: 마이크로서비스 아키텍처를 쉽게 구현할 수 있는 도구를 제공합니다.
  5. 다양한 라이브러리와의 통합 지원: Express나 Fastify와 같은 다양한 Node.js 라이브러리와 쉽게 통합될 수 있으며, GraphQL, WebSockets 등 현대 웹 애플리케이션 개발에 필요한 다양한 기능을 지원합니다.

간단히 말해, NestJS는 TypeScript와 함께 강력하고 확장 가능한 서버 사이드 애플리케이션을 구축하기 위한 현대적인 프레임워크입니다.

</aside>

Nest는 앵귤러로부터 영향을 많이 받았다. 모듈/컴포넌트 기반으로 프로그래밍을 작성함으로써 재사용성이 높다. 제어 반전(inversion of control IoC) 의존성 주입(dependency injection DI) 관점 지향프로그래밍(aspect-oriendted programming AOP) 위와 같은 객체 지향 개념을 도입했다.

프로젝트

디버깅 실행

.vscode안에 launch.json 생성 후 작성

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug Nest Framework",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "start:debug", "--", "--inspect-brk"],
      "autoAttachChildProcesses": true,
      "restart": true,
      "sourceMaps": true,
      "stopOnEntry": false,
      "console": "integratedTerminal"
    }
  ]
}

명령어

nest new projectName : 프로젝트 생성

nest g controller Users

Untitled

nest g resource Users