카테고리 없음
패스트캠퍼스 환급챌린지 16일차 : 코드팩토리의 백엔드 아카데미 : 한 번에 끝내는 NestJS 패키지 - 기초부터 MSA까지 강의 후기
Laftel
2025. 3. 20. 23:50
반응형
***본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
app.module.ts 파일의 @Module 기능
Module을 왜 만들어야할까?
컨트롤러에 우리는 movie 관련된 거만 만들 수 있다. 컨트롤러는 하나이니까.
근데, 사용자 관리 하고 싶다. 사용자를 만들고 가져오고 업데이트 하고싶다.
이런 기능을 만들려면 어떻게 해야 할까?
우리가 관리하고 싶은 객체, 하나의 개념이 존재할 때마다
우리는 새로운 모듈을 만들어서 해당 모듈로 이 관련 코드를 묶어놔야 한다.
이게 가장 중요한 모듈의 개념이다
나중에 app 모듈은 로직을 적는 경우는 거의 없다. 모든 모듈이 집합하는 중앙 모듈 역할을 한다.
터미널을 열어 nest g controller 입력
nest g 컴포넌트
그러면 cli를 이용하여 컴포넌트 파일 생성 완료
nest g resource 를 입력한다. REST API 선택
그러면
@Module({
imports: [MovieModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
imports: [MovieModule], 자동 생성
app.controller.ts에서 movie.controller.ts로 코드를 옮긴 이유
app.controller.ts는 전역 컨트롤러 (Global Controller)
- app.controller.ts는 NestJS 애플리케이션의 루트 컨트롤러 역할을 함.
개별적인 리소스(예: 영화, 사용자, 주문 등)는 각각의 컨트롤러에서 관리하는 것이 NestJS의 모범 사례
app.controller.ts는 전역 컨트롤러이므로, 비즈니스 로직이 포함된 movie.controller.ts로 API를 분리하는 것이 맞다.
컨트롤러를 모듈화하면 확장성이 증가
- app.controller.ts에 모든 API를 몰아넣으면 코드가 점점 커지고 유지보수가 어려워짐.
- movie.controller.ts에서 영화 관련 API만 처리하도록 역할을 분리하면 코드가 정리되고 확장하기 쉬움.




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