카테고리 없음

패스트캠퍼스 환급챌린지 15일차 : 코드팩토리의 백엔드 아카데미 : 한 번에 끝내는 NestJS 패키지 - 기초부터 MSA까지 강의 후기

Laftel 2025. 3. 19. 15:06
반응형

***본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

실제 모듈에다 넣는 프로바이더의 클래스 이름은  왜 서비스일까?
스코프가 달라서 그렇다. 서비스는 프로바이더이다. 모든 서비스가 프로바이더는 아니다.
nest.js는 로직을 프로세싱을 하는 클래스의 이름은  서비스라고 짓자고 약속을 했다. 그리고 IOC 컨테이너에서 관리하자

변경 이유 및 개선된 점

 @Get(':id')
    getMovie(@Param('id')id:string ){
      return this.appService.getMovieById(+id);
    }
 
  @Post()
  postMovie(
    @Body('title') title:  string,
  ){
    this.appService.createMovie(title);
   
  }
  @Patch(':id')
  patchMovie(
    @Param('id') id: string,
    @Body('title') title : string,
  ){
    this.appService.updateMovie(+id,title);
  }
  @Delete(':id')
  deleteMovie(
    @Param('id') id:string,
  ){
    this.appService.deleteMovie(+id);

  }
 

 

  • 비즈니스 로직을 AppService에 위임
    • 컨트롤러는 요청을 받고 서비스 계층에서 데이터 처리 후 반환하는 역할만 수행함.
    • 비즈니스 로직(find(), filter(), splice() 등)을 서비스 계층으로 이동하여 코드가 더 깔끔해짐.
  • DB 연동이 쉬워짐
    • 기존에는 movies 배열을 직접 조작했지만, 이제는 this.appService를 통해 관리하므로
      이후 TypeORM을 활용해 DB 연동을 할 때도 컨트롤러를 수정할 필요가 없음.
  • 컨트롤러가 가벼워지고 유지보수가 쉬워짐
    • 컨트롤러는 단순히 서비스 계층에 요청을 전달하고 응답을 반환하는 역할만 하도록 개선됨.
    • 서비스 계층이 추가되면서 getMovieById(), createMovie(), updateMovie() 등의 메서드가 재사용 가능해짐.

 


#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
https://bit.ly/4hTSJNB
 

반응형