반응형
> 새로 싱가폴 서비스 및 신규 서비스들이 오픈을 하면서 기존 서비스 안에 깔려있던 Email, SMS 발송을 담당하던 코드를 분리할 필요성이 생겼고 이 때 새로 Notification Server를 만드는데 여기 framework는 nestjs를 사용해보고자 여기 정리하면서 시작해본다.
> express는 웹 프레임워크이기 때문에 지금 개발하는 Notification API server는 더 적합하다 생각했음. 그래서 추후 리팩토링 과제로도 express -> nestjs로 변경하는게 남아있는거
> 일단 가장 먼저 '어? 이게 있구나'하고 느꼈던 강점이 module의 유무였다. nestjs 공부를 더 하고 더 개발을 하다보면 다르게 느낄 수 있겠는데
기존 typescript express로 개발을 할 때 느낀건 class를 각각의 index.ts import, export를 해주는 방식으로 개발했는데
nestJs는 모듈을 통해 비슷한 기능, 개념들을 한 곳에 모아 캡슐화를 하여 개발을 하면 되는 듯 했다.
> nestJs도 가이드북에 철학으로 다른 프레임워크들이 제공하지 못 하는 아키텍쳐적인 요소에서의 강점을 발휘하고자 하는 것 보면 이게 맞는듯 하다.
[Setting]
- Module
- 모듈 클래스 안에 비슷한 기능을 가진 Class와 Service를 담아 캡슐화 한다. 이러한 방식으로 설계를 하여 nestJs는 Loose Coupling을 가능하게 하여 객체간의 상호작용은 하지만 잘 관여는 하지 않는 그러한 구조를 만들고자 하는 것 같다.
- nest generate module ~~~ / nest generate controller ~~~ / nest generate service ~~~ 명령어로 이렇게 쉽게 생성이 되고 구조가 짜진다.
import { Module } from '@nestjs/common';
import { NotificationController } from './notification.controller';
import { NotificationService } from './notification.service';
@Module({
controllers: [NotificationController],
providers: [NotificationService]
})
export class NotificationModule {}
<generate command 치고 나서의 module 코드>
반응형
'Backend 언어 > JS&TS' 카테고리의 다른 글
2021 ECMAScript (ES12) 신규 변경점 (0) | 2021.09.09 |
---|---|
[aws-sdk] aws sdk 3이 나왔다. (0) | 2021.05.14 |
Jest 'JavaScript heap out of memory'에서 시작된 리팩토링 - (1) (0) | 2021.04.30 |
[jest] expect를 정리해보자 (0) | 2021.04.24 |
[jest] mocking 사용하기 (1) | 2021.04.24 |