Backend 언어/JS&TS

[nestjs] nestjs를 시작하며

민초부 2021. 5. 14. 13:18
반응형

> 새로 싱가폴 서비스 및 신규 서비스들이 오픈을 하면서 기존 서비스 안에 깔려있던 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 코드>

 

 

반응형