UNInject
Unity + Inject = UNInject
Unity를 통한 게임 개발에서 가장 높은 사용성과 퍼포먼스를 보장하는 차세대 D.I (의존성 주입) 솔루션 입니다.
기존 D.I 솔루션들에서 퍼포먼스, 다형성. 그리고 가장 중요한 사용성을 보장하기 위해 고안되었습니다.
-
가장 빠른 주입 속도 : VContainer와 동일 선상의 상수 복잡도 O(1) 주입 지원. (SnapShot, Bake...
Zenject의 최대 20배) -
Top Tier GC Alloc : Resolve (Getter) 의 비용을 자동으로 제거합니다. (Editor Time Bake, Roslyn CodeGen)
-
엄청난 학습곡선 (Positive) : 매우. 매우 쉬운 학습 곡선을 자랑합니다. 따라서 후반 도입이 고려가 가능합니다.
-
직관적인 패턴 강제 : Unity의 Scene을 보듯, 가장 직관적이고, 높은 사용성을 보장합니다.
-
3 Tier LifeCycle : 유니티 엔진에서 최적화된, 각 용도에 알맞은 세 가지 Scope 계층을 강제합니다.
메인 프레임 설계도
Pure C# ServiceMonoBehaviourInstaller / ScopeTickableRegistryObjectInstaller
성능 그래프 (Git Storage Critiqued)
UNInject v2.1
96/100
VContainer
74/100
Zenject
71/100
Detailed Breakdown
런타임 성능
UNInject v2.1
스냅샷 배열 Tick + Bake 기반 조회
VContainer
IL emit 고속 주입
Zenject
리플렉션 의존, 느림
에디터 툴링
UNInject v2.1
GraphView + BakeValidator + FallbackGuard
VContainer
에디터 툴링 없음
Zenject
기본 수준
IL2CPP 안전성
UNInject v2.1
Roslyn 1순위 → ExprTree → FieldInfo
VContainer
IL emit, AOT 부분 제약
Zenject
AOT 제약 많음
API 간결성
UNInject v2.1
어트리뷰트 단순 선언
VContainer
Binding 간결
Zenject
Binding DSL 복잡
스코프 관리
UNInject v2.1
Named 바인딩 + parentScope + Tickable
VContainer
LifetimeScope 계층
Zenject
SubContainer 정밀
Unity 통합 깊이
UNInject v2.1
IPoolInjectionTarget + SpawnInjected
VContainer
PlayerLoop ITickable
Zenject
Signals 내장
진단/빌드 검증
UNInject v2.1
Named 검증 + 생성자 폴백 감지
VContainer
없음
Zenject
기본 수준
런타임 유연성
UNInject v2.1
Create<T> + ITickable 위임
VContainer
PlayerLoop ITickable
Zenject
PlayerLoop + Signals
Key Comparisons
UNInject v2.1
Bake 기반 제로런타임 스캔 (Awake 부하 X)
Roslyn → ExprTree → FieldInfo 폴백 체인
GraphView 시각화 & BakeValidator 검증
RegistryKey 기반 다중 바인딩 지원
ITickable 스코프 위임 및 풀 연동
VContainer
생성자 주입 중심의 Pure C# 설계
IL emit 기반 고속 주입 성능
LifetimeScope 기반의 명확한 계층
PlayerLoop 기반 Pure C# 생명주기
MessagePipe 공식 통합
Zenject
가장 방대한 생태계와 레퍼런스
SubContainer를 통한 정밀 스코프 제어
강력한 내장 Signals 시스템
Scene/Project Context 계층 구조
다양한 확장 플러그인 존재