NestJS에서 모듈 간 의존성 관리하기

sh.j225·2023년 8월 21일
0

NestJS에서 모듈 간 의존성 관리하기

NestJS 애플리케이션을 개발하면서 모듈 간의 의존성 관리는 중요한 부분이다. 모듈 간의 의존성을 올바르게 설정하지 않으면 런타임 중에 주입해야 하는 서비스나 레포지토리를 찾지 못해 애플리케이션이 시작되지 않을 수 있다.

문제 상황

NestJS 프로젝트에서 TodoService와 CardService를 각각 별도의 모듈에서 구현하고자 했다. TodoService에서는 TodoRepository를 주입받아 사용하고, CardService에서는 CardRepository와 함께 TodoRepository도 주입받아야 했다.

해결 방법

TodoService에서 TodoRepository와 CardRepository를 주입받기 위해 CardModule에서 TodoRepository도 함께 import했다.

@Module({
  imports: [TypeOrmModule.forFeature([Card, Todo]), forwardRef(() => ToDoModule)],
})
export class CardModule {}

1. TodoService에서 CardRepository와 TodoRepository를 함께 주입받을 수 있게 되었다.

@Injectable()
export class TodoService {
  constructor(
    @InjectRepository(Todo)
    private readonly todoRepository: Repository<Todo>,
    @InjectRepository(Card)
    private readonly cardRepository: Repository<Card>,
  ) {}
}

2. constructor에 의존성을 주입하니 TodoService에서 TodoRepository와 CardRepository를 올바르게 주입받아 사용할 수 있게 되었다.

결론

NestJS 애플리케이션에서 모듈 간의 의존성을 올바르게 관리하는 것은 중요한 작업이다. 위의 예시를 통해 모듈 간의 의존성 설정 방법을 이해할 수 있었다. 애플리케이션의 규모가 커질수록 의존성 관리는 더욱 중요한 요소가 되며, NestJS의 강력한 기능을 활용하여 모듈을 구성하고 의존성을 관리하는 방법을 숙지하는 것이 필요할 것 이다.

오늘의 질의 응답😎

Primary Key, Foreign Key에 대해 설명해주세요.

나의 답변 😄

Primary Key(기본 키)는 RDBMS 테이블에서 각 레코드를 고유하게 식별하는 열로, 중복과 무결성을 보장합니다. Foreign Key(외래 키)는 다른 테이블의 Primary Key와 연결되는 열로, 관계를 형성하여 데이터 간 참조를 구현하며 데이터 일관성을 유지하고 관리합니다. Foreign Key는 참조된 테이블의 Primary Key와 일치해야 하며, 이를 통해 테이블 간의 관계를 설정할 수 있습니다.

0개의 댓글