2025-04-16 DI 패턴 Zenject

강기수·2025년 4월 16일

Zenject는 Unity에서 DI(Dependency Injection)를 적용할 수 있게 해주는 프레임워크다.

싱글톤, 오브젝트 풀, 매니저 클래스 등을 깔끔하게 관리할 수 있다.

오늘은 Zenject를 활용하여 오브젝트 풀링을 구현해보았다.


주요 기능

1. InstallBindings를 통한 바인딩

  • FromComponentInHierarchy()로 씬 내 오브젝트를 바인딩 가능

  • WithArguments()를 통해 생성자에 인자 전달


2. [Inject] 필드 주입 가능


3. Construct() 메서드를 통한 주입 가능



느낀점

기존에 Singleton으로 관리하던 시스템보다 의존성과 책임이 명확해지고, 테스트하기 훨씬 쉬워졌다.

주입 순서에는 주의가 필요하다. 특히 Awake나 Start()에서 주입받은 값을 사용하면 아직 주입되지 않아 null일 수 있다.

필요한 경우 new 키워드 없이 생성자 의존성 주입도 가능해서 유연하다.

Zenject는 코드의 의존성을 분리해서 결합도를 낮추고 재사용성과 테스트 용이성을 높여주는 도구다.

2개의 댓글

comment-user-thumbnail
2025년 4월 16일

이야,,,젠젝트 ㄹㅇ 처음들어봤습니다 기수님 덕분에 알게 되었네요 젠젝트를 뒤집어 놓으셨다!!! 새로운 걸 알아가는 과정 굉장히 훌륭합니다 응원해여~~~

답글 달기
comment-user-thumbnail
2025년 4월 16일

제가 몰랐던 부분들을 계속 많이 올려주시네요 좋은 내용 잘 보고 갑니다

답글 달기