주입 방식 선택 기준

TypeScript DI 주입 방식 선택 기준표

의존성이 필수인지, 호출마다 달라지는지, 객체 생성 이후 바뀌어야 하는지에 따라 생성자·메서드·setter 주입을 고릅니다.

DI 주입 방식 표
생성자 주입
메서드 주입
프로퍼티/setter 주입
언제 쓰나
필수 의존성

객체가 항상 필요로 하는 Logger, Repository 같은 협력 객체에 적합합니다.

호출별 의존성

특정 작업에서만 필요한 트랜잭션, 임시 정책, 포맷터를 전달합니다.

선택 의존성

생성 후 설정되거나 환경에 따라 교체되는 부가 기능에 사용합니다.

장점
불변성 유지

생성 시점에 빠진 의존성을 타입과 런타임 흐름으로 드러냅니다.

범위가 작음

의존성이 필요한 메서드 안으로 사용 범위를 좁힐 수 있습니다.

교체가 쉬움

테스트나 초기화 단계에서 나중에 의존성을 바꿀 수 있습니다.

DI 주입 범위 점검
생성자 비대화

의존성이 너무 많다면 클래스 책임이 커졌는지 먼저 점검합니다.

호출자 부담

호출하는 쪽이 매번 어떤 의존성을 넘길지 알아야 합니다.

불완전 상태

설정 전 호출을 막지 못하면 런타임 오류가 숨어들 수 있습니다.

기본 선택

필수 의존성은 생성자 주입을 먼저 고려하고, IoC 컨테이너도 이 흐름을 가장 안정적으로 해석합니다.

예외 선택

호출마다 달라지는 값은 메서드 주입, 정말 선택적인 설정은 setter 주입으로 제한해 객체 상태를 예측 가능하게 둡니다.