Repolode
hmlongco

hmlongco/Factory

스코프와 컨텍스트, 테스트용 모킹을 지원하며 팩토리를 간단한 계산 프로퍼티로 등록하는 Swift 및 SwiftUI용 의존성 주입 컨테이너입니다.

스타
2,929
포크
193
열린 이슈
1
마지막 커밋
8일 전

어떤 프로젝트인가요?

Factory는 Swift와 SwiftUI를 위한 컨테이너 기반 의존성 주입 라이브러리입니다. Container에 Factory를 반환하는 계산 프로퍼티를 정의한 뒤, @Injected 프로퍼티 래퍼나 직접 함수 호출, 전역 의존성 함수를 통해 요청합니다. 컴파일러가 주입되는 각 타입에 해당하는 팩토리가 있는지 확인하므로, 등록 누락은 런타임이 아니라 빌드 시점에 발견됩니다.

이 라이브러리는 일반적인 DI 시스템에 필요한 기능을 제공합니다. 싱글톤, 캐시, 공유, 사용자 지정 세션 스코프 등의 스코프로 인스턴스의 수명을 제어할 수 있고, 컨텍스트를 이용해 디버그 빌드, 단위 테스트, SwiftUI 미리보기 또는 UI 테스트에서 구현을 바꿀 수 있습니다. 한 번의 호출로 등록을 모킹 객체로 재정의할 수 있어 미리보기와 XCTest 또는 Swift Testing 테스트를 간편하게 준비할 수 있습니다.

Factory는 Observation, @MainActor, Swift 동시성 격리와도 함께 사용할 수 있으며, 의존성 해석 트리를 추적하는 디버그 모드를 제공합니다. MIT 라이선스로 Swift Package Manager를 통해 배포됩니다.

핵심 기능

  • 01Container의 계산 프로퍼티로 서비스를 등록하며, 팩토리 누락을 컴파일 시점에 검사합니다.
  • 02해석에 사용할 프로퍼티 래퍼, 직접 팩토리 호출, 전역 의존성 함수를 제공합니다.
  • 03싱글톤, 캐시, 공유, 사용자 지정 스코프 등을 지원합니다.
  • 04디버그, 단위 테스트, SwiftUI 미리보기, UI 테스트에서 구현을 바꿀 수 있는 컨텍스트를 제공합니다.
  • 05SwiftUI 씬 기반 컨테이너, Observation, @MainActor 격리와 함께 사용할 수 있습니다.
  • 06의존성 해석 트리를 출력하는 디버그 추적 기능을 제공합니다.

활용 사례

  • SwiftUI 뷰와 뷰 모델에 서비스 및 리포지토리를 주입할 때.
  • SwiftUI 미리보기에서 네트워크 또는 분석 서비스를 모킹 객체로 대체할 때.
  • 의존성을 재정의해 로딩, 빈 화면, 오류 상태를 테스트하는 단위 테스트를 작성할 때.
  • MVVM, MVP, Clean, VIPER 아키텍처로 iOS 앱을 구성할 때.

사용 전 알아둘 점

  • Swift 프로젝트 전용이므로 다른 언어에는 적용되지 않습니다.

포함된 컬렉션

토픽

자주 묻는 질문

Factory은(는) 무엇인가요?
스코프와 컨텍스트, 테스트용 모킹을 지원하며 팩토리를 간단한 계산 프로퍼티로 등록하는 Swift 및 SwiftUI용 의존성 주입 컨테이너입니다. Factory는 Swift와 SwiftUI를 위한 컨테이너 기반 의존성 주입 라이브러리입니다. Container에 Factory를 반환하는 계산 프로퍼티를 정의한 뒤, @Injected 프로퍼티 래퍼나 직접 함수 호출, 전역 의존성 함수를 통해 요청합니다. 컴파일러가 주입되는 각 타입에 해당하는 팩토리가 있는지 확인하므로, 등록 누락은 런타임이 아니라 빌드 시점에 발견됩니다.
Factory은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
Factory은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
Factory은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. Factory의 마지막 커밋은 2026년 10월 28일입니다.
Factory은(는) 어디에 사용할 수 있나요?
SwiftUI 뷰와 뷰 모델에 서비스 및 리포지토리를 주입할 때. SwiftUI 미리보기에서 네트워크 또는 분석 서비스를 모킹 객체로 대체할 때. 의존성을 재정의해 로딩, 빈 화면, 오류 상태를 테스트하는 단위 테스트를 작성할 때. MVVM, MVP, Clean, VIPER 아키텍처로 iOS 앱을 구성할 때.
Factory은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/hmlongco/Factory

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트