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 {}
@Injectable()
export class TodoService {
constructor(
@InjectRepository(Todo)
private readonly todoRepository: Repository<Todo>,
@InjectRepository(Card)
private readonly cardRepository: Repository<Card>,
) {}
}
NestJS 애플리케이션에서 모듈 간의 의존성을 올바르게 관리하는 것은 중요한 작업이다. 위의 예시를 통해 모듈 간의 의존성 설정 방법을 이해할 수 있었다. 애플리케이션의 규모가 커질수록 의존성 관리는 더욱 중요한 요소가 되며, NestJS의 강력한 기능을 활용하여 모듈을 구성하고 의존성을 관리하는 방법을 숙지하는 것이 필요할 것 이다.
나의 답변 😄
Primary Key(기본 키)는 RDBMS 테이블에서 각 레코드를 고유하게 식별하는 열로, 중복과 무결성을 보장합니다. Foreign Key(외래 키)는 다른 테이블의 Primary Key와 연결되는 열로, 관계를 형성하여 데이터 간 참조를 구현하며 데이터 일관성을 유지하고 관리합니다. Foreign Key는 참조된 테이블의 Primary Key와 일치해야 하며, 이를 통해 테이블 간의 관계를 설정할 수 있습니다.