NestJS 책을 읽고 나서 강의를 봐볼까?해서 유투브 검색중에 밋업 영상을 발견했습니다.
핵심만 요약돼있는 영상이라 좋네요.
00:00 오프닝
07:29 남병관: NestJS 시작하기
58:18 이상훈: Angular 프론트엔드 개발자가 본 NestJS
1:21:20 이동현: NestJS에서 Hexagonal Architecture 구현하기
2:02:29 김수현: NestJS와 함께한 3년간 고군분투기
2:46:28 마무리
핵심키워드: controllers / providers / modules / pipes
서버 아키텍처를 쉽게 만들 수 있도록 기본 아키텍쳐를 제공한다.
CRUD에 필요한 요소들을 가볍게 세팅해준다.
Controller
- 우리가 아는 controller
- @Get, @Post, @Put, @Delete
- @Param, @Body, @Session @Query, @Headers, @Ip
- Dto로 입출력 정의
Provider
- 제일 어려운 개념 "의존성 주입의 대상"
- Controller에서 Service 코드의 함수를 잘 모르지만 사용한다 == 의존한다
- 실제 구현 대상을 '주입' 해준다면 어떤 클래스를 넣어줄지 결정만 하면된다. 추상과 구현이 분리되므로 코드가 유연하고 테스트가 편하다.
- @Injectable = provider 라고 알려주는 것
- Module > providers 에 추가
Module
- 모듈은 쉽게말해 큼직큼직하게 묶은것이다.
- imports: 갖다 쓸 모듈, controllers: 외부 노출할거, providers: 의존성 주입할거, exports: 다른 애들이 쓸거
Pipe
- input을 원하는 형태로 바꾸거나, 타당성을 검증
- ValidationPipe, ParseIntPipe, ParseArrayPipe 등...
NestJs 도입한 이유, 장점
의존성 역전 도구 제공, 타입언어, node 생태계
의존성 주입, 모듈화, 유효성 검사, 비동기, 로깅, 인터셉터
클린아키텍처: 고소준에 의존을 하도록 하는것
헥사고날 아키텍처: port(인터페이스)와 adapter(커뮤니케이션) 패턴
=> 두 패턴 다 외부에 의존하지 않는 도메인 로직을 가져야한다.
헥사고날 아키텍처 장점
1. 기술 스택 변경이 용이하다 ex) mysql -> postgresql
2. 새로운 API 뚫기
3. 테스트 쉬움
5. 외부 요인으로 인해 도메인 모델을 수정하지 않아도된다.
In port : 도메인이 들어오는 요청 ex) API
Out port : 도메인이 외부로 요청 ex) DB, Messaging
In Adapter : 실제 인터페이스의 구현이 도메인 내부에 있는 것, 외부 어댑터는 단순히 그 구현을 사용한다.
Out Adapter : 영속성 계층으로 요청을 보낸다.어댑터에서 실제 인터페이스 구현이 발생한다. 도메인 계층에서는 단순히 그것을 사용한다.
'개발공부 > NestJS' 카테고리의 다른 글
[NestJs] Modules, Injection (0) | 2023.08.16 |
---|---|
[노마드 코더 NestJS로 API 만들기] 2 DTO, Validation (0) | 2023.08.13 |
[노마드 코더 NestJS로 API 만들기] 2 service (0) | 2023.08.12 |
2 Rest API - Controller, Route [노마드 코더 NestJS로 API 만들기] (0) | 2023.08.12 |
[NestJS] 초기 세팅 (0) | 2023.08.11 |
댓글