Tuist_CleanArchitecture_Template
Tuist 애플리케이션 아키텍처
원칙
-
유지보수 용이성
- 애플리케이션 구조를 잘 분리하고 의존성을 제한하여 개발 및 유지보수가 용이해집니다.
-
테스트 용이성
- 의존성을 분리하여 모듈화하면, 단위 테스트와 인수 테스트 등 테스트를 수행하기 쉬워집니다.
-
모듈의 독립성 보장
- 모듈을 독립적으로 개발하여 향후 예측할 수 없는 문제에 대처하기 좋아집니다.
-
개방/폐쇄 원칙
- 클린 아키텍처 구조는 소프트웨어의 개방/폐쇄 원칙을 따릅니다. 모듈 간의 인터페이스를 잘 정의하고, 모듈 내부를 수정하지 않고도 기능을 확장할 수 있습니다.
-
높은 수준의 유연성
- 일관성 있고 탄도 있는 디자인을 통해 새로운 요구 사항을 빠르게 반영할 수 있습니다.
Tuist 구조
-
APP-iOS
- 앱 모듈로, Data와 Presentation 모듈을 사용합니다.
-
Core
- 코어 모듈로, 공유되는 코드와 ThirdPartyLib를 사용합니다.
-
Data
- 데이터 모듈로, APPNetwork와 Domain 모듈을 사용합니다.
-
Domain
- 도메인 모듈로, 비즈니스 로직을 담당하며 Core 모듈을 사용합니다.
-
APPKit
- UI 관련 코드를 담는 모듈로, Core 모듈을 사용합니다.
-
APPNetwork
- 네트워크 모듈로, Core 모듈을 사용합니다.
-
ThirdPartyLib
- 외부 라이브러리를 모아둔 모듈로, SnapKit, Kingfisher, Then, Moya, RxBlocking, RxCocoa, RxSwift, RxMoya 등의 라이브러리를 사용합니다.
-
Presentation
- 프레젠테이션(화면) 모듈로, Domain과 APPKit 모듈을 사용합니다.