데이터소스가 사기인데 왜 레포 주입해서 쓰는거임?
social-feed-hub의 게시물 목록 조회 API 구현 중 고민
데이터소스가 사기인데 왜 레포 주입해서 쓰는거임?
데이터소스가 사기인데 왜 레포 주입해서 쓰는거임?
의문
- Module 파일에
TypeOrmModule.forFeature([])
import 안 해도 그냥 써짐 - 멤버변수에 Repo 줄줄이 달지 않고
DataSource
변수만 선언해준 뒤getRepository(${Entity})
하면 되어서 뭔가 깔끔하게 보임
결론
Repository
를 직접 주입해서 쓰는 경우- 도메인, 관심사 분리
- DI 컨테이너가 미리 의존성 주입 시켜놔서 쓰기 편하다.
- 테스트, 유지보수가 비교적 쉽다.
DataSource
를 사용하는 경우- 복잡한 쿼리를 작성하거나 특정 엔티티에 종속되지 않은 로직이 필요할 때 사용한다.
- 같은 패턴을 반복해야 해 번거로울 수 있다.
by GPT4o
DataSource
는 한 단계 상위 개념인 것 같아서, 지금 수준의 코드를 짤 땐 굳이 안 쓸 것 같다.
This post is licensed under CC BY 4.0 by the author.