효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임 워크
JavaScript & TypeScript 완벽 지원
OOP (Object Oriented Programming) , FP ( Functional Programming),
FRP(Functional Reactive Programming) 요소 사용 가능
OOP란 …
캡슐화
하나의 객체에 그 객체에 필요한 요소 묶기
상속성
기존 상위클래스에 근거하여 새롭게 클래스와 행위 정의함
다형성
(오버라이딩, 오버로딩)
같은 동작에 다른 결과물 나오게 함
추상화
클래스 틀만 구성하고 최소 필수적 공통요소만 포함시킴
Express와 같은 강력한 Http 서버 프레임워크 사용 ( 토대로 만듦)
선택적 Fastify 사용하도록 구성
개발자와 팀이 고도로 테스트 가능하고 확장 가능, 느슨한 결합, 유지 관리가 쉬운
즉시 사용 가능한 애플리케이션 아키텍쳐 제공
npm i -g @nestjs/cli
npm new ./
하면 현재 폴더가 nest 사용 폴더가 됨
시작시 npm run start:dev
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
@Injectable()
export class AppService {
getHello(): string {
return '안녕하세요!';
}
}
컨트롤러와 서비스 Spring 과 동일
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
app.module.ts 란 곳에서 controller와 providers 정의하고 있다.
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
등록 후 main.ts에서 모듈 생성하고 실행함
app.module.ts에서 모듈을 등록한다. 라우터 역할 함