NestJS 기본 구조, 설치, 프로젝트 생성하기
NestJS
TypeScript를 기반으로 한 Node.js 확장 프레임워크로, 모듈화된 구조와 의존성 주입을 통해 확장 가능하고 유지 보수하기 쉬운 서버사이드 애플리케이션 개발을 지원한다.
NestJS 특징
- 모듈화 아키텍처: 코드의 재사용성과 유지 보수성을 높이기 위해 기능별로 모듈화된 구조를 지원한다.
- 의존성 주입: 객체 간의 결합도를 낮추고 테스트 용이성을 높이기 위해 의존성 주입 패턴을 사용한다.
- TypeScript 지원: 정적 타입을 통해 코드의 안정성과 가독성을 높이며, 최신 JavaScript 기능을 활용할 수 있다.
- 다양한 프로토콜 지원: REST API뿐만 아니라 GraphQL, WebSockets, Microservices 등 다양한 통신 방식을 기본적으로 지원한다.
NestJS 기본 구조
- 모듈 (Module)
- 컨트롤러 (Controller)
- 서비스 (Service)
- 데코레이터 (Decorator)
- 미들웨어 (Middleware)
- 파이프 (Pipe)
- 필터 (Filter)
NestJS 기본 형태
- 앱 모듈 (AppModule): 애플리케이션의 루트 모듈로, 다른 모듈, 컨트롤러, 서비스를 관리하는 역할을 한다.
- 컨트롤러 (AppController): HTTP 요청을 처리하는 역할을 한다. 클라이언트의 요청을 받아 적절한 서비스를 호출하고, 결과를 반환한다.
- 서비스 (AppService): 비즈니스 로직을 처리하는 서비스 계층으로, 컨트롤러에서 호출되어 데이터를 처리하거나 로직을 수행한다.
- 메인 파일 (main.ts): 애플리케이션을 시작하는 진입점으로, NestJS 애플리케이션을 실행한다.
NestJS 설치하기
1. Node.js와 npm설치하기
brew install node

설치 후 버전 정보 확인하기
node -v
npm -v

2. NestJS CLI(Command Line Interface) 설치
npm install -g @nestjs/cli

이렇게 하면 설치 완료!
3. nestjstest 라는 새 프로젝트 생성하기
nest new nestjstest

- npm: Node.js의 기본 패키지 매니저로, 광범위한 사용성과 큰 커뮤니티를 자랑한다.
- Yarn: npm의 성능 및 안정성 문제를 개선한 패키지 매니저로, 빠른 설치 속도와 모노레포 지원이 특징이다.
- pnpm: 효율적인 디스크 공간 활용과 빠른 설치 속도를 제공하는 패키지 매니저로, node_modules 구조를 독특하게 관리한다.
4. 패키지 매니저 선택하기
npm, yarn, pnpm 중에 npm 선택!

5. 프로젝트 디렉토리로 이동
# cd 디렉토리가 있는 경로
cd /Users/ihyejin/Downloads/client/NestJS/nestjstest
6. 애플리케이션 실행하기
npm run start:dev


이렇게 하면 시작 성공!