피드로 돌아가기
Building Dependency-Injection-Driven Navigation in Modular iOS Applications
Dev.toDev.to
Mobile

모듈화된 iOS 앱에서 의존성 주입으로 느슨하게 결합된 네비게이션 시스템을 구축하는 패턴

Building Dependency-Injection-Driven Navigation in Modular iOS Applications

Madhuri Latha Gondi2026년 3월 30일2intermediate

Context

기존 iOS 앱에서 ViewController가 다른 ViewController를 직접 푸시하는 방식은 모듈 간 직접 의존성을 만든다. 딥링킹 구현이 어려워지고 네비게이션 흐름 테스트가 복잡해지며 레거시 시스템 통합 시 결합도가 높아지는 문제가 발생한다.

Technical Solution

  • DeepLinkDescriptor 구조체로 라우트와 매개변수를 정의하여 네비게이션 의도와 실행을 분리한다
  • NavigationManager 프로토콜로 중앙 집중식 네비게이션 로직을 구현한다
  • NavigationContainerProvider로 Dependency Container를 구성하여 ViewController 해결을 위임한다
  • Feature Module Provider에서 각 모듈의 라우트를 등록하고 ViewController를 빌드한다
  • Router 추상화를 통해 모듈 간 직접 참조를 차단한다

Impact

수치 기반 성능 변화 없음

Key Takeaway

네비게이션 의도를 실행에서 분리하고 의존성 주입으로 ViewController 해결을 중앙화하면 모듈 간 결합도를 낮추면서 테스트 가능한 아키텍처를 구축할 수 있다.


대규모 iOS 모듈 앱에서 DeepLinkDescriptor와 NavigationManager, Dependency Container 조합으로 네비게이션을 구현 시 모듈 독립성을 유지하면서 딥링킹과 테스트 용이성을 확보할 수 있다

원문 읽기