Nest
는 효율적이고 확장가능한Node.js
진영의 애플리케이션을 구축하기 위한프레임워크
프레임워크란? :
목적에 따라 효율적으로 구조를 짜놓는 개발 방식
TypeScript
로 빌드되며, (순수 자바스크립트로도 코딩이 가능하다)Module
을 감싸는 형태로 개발하기 때문에, Module
별로 테스트 코드를 쉽게 작성할 수 있도록 구현되어있어, 안정적이다Pipe
형태의 Vaildation
이 내장돼있어 간편한 검증이 가능하다간결하고 유연한
Node.js
기반의 애플리케이션을 구축하기 위한 프레임워크
Express
로만 웹서버를 구축한다 예상해보자
B 개발자
님 이 코드는 언제 호출되나요?C 개발자
님이 개발하셔서 물어보셔야 할거같아요이런식으로 A,B개발자 모두 C의 아키텍처디자인 스타일을 설명받고 나서야 C 개발자의 코드가 이해가 된다
하지만
Nest.js
는 아키텍처의 정의도 프레임워크에서 제공하기 때문에 개발자가 서로 작성한 코드의 구조를 쉽게 파악할 수 있다.
위에서 설명했듯이, Nest.js
는 Module
이 존재하며 Module
이 관련된 기능을 요소로 가져, 싱글톤 방식으로 동일한 인스턴스를 공유 받을 수 있다.
Module
안에는 Controller
가 있는데 Controller
는 Express
의 Route
와 비슷하다, 요청
과 응답
을 반환하는 역할을 맡는다.
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return 'This action returns all cats';
}
}
여기서 String
형태로 반환값이 있지만, Nest
에서는 자동으로 JSON
으로 직렬화를 하여 보내준다
그리고 Provider
를 이용한 종속성 주입을 통해 Controller
에 서비스를 주입한다.
Provider는 서비스,레포지토리,팩토리,헬퍼 등등 여러 Provider들이 존재한다.
Nest.js를 왜쓰는지에 대해서 다시한번 공부를 해봤다, 아직 IoC, DI등 자세히 개념을 정리를 못했기에 한번더 정리할 예정