[Architecture] Modular Architecture / MFA에서 추상레이어의 Export
2024. 4. 1. 02:04ㆍ🍏/Architecture
Swift의 modular architecture / Micro Feature Architecture(MFA)에서 Feature, Domain, Core, Shared의 레이어를 추상적으로 나누고 해당하는 레이어에 맞춰서 코드를 관리할 때 Export를 통하여 제어합니다.
이 글에서는 Core 레이어를 통하여 예시를 들고있습니다.
CoreExport.swift 파일을 사용하여 다른 모듈에서 CoreNetwork 및 CoreNetworkInterface 모듈을 임포트할 수 있도록 설정하는 것은 모듈 간의 의존성 관리 및 코드 재사용성을 높이기 위한 전략 중 하나입니다. 이러한 접근 방식은 특히 대규모 프로젝트나 여러 모듈이 상호작용하는 복잡한 시스템에서 유용합니다.
CoreExport.swift의 목적
- 간소화된 임포트: 다른 모듈이나 타겟에서 CoreNetwork 및 CoreNetworkInterface를 사용하고자 할 때, 각각의 모듈을 따로 임포트하는 대신 Core 모듈만 임포트하면 됩니다. 이렇게 하면, Core 모듈을 사용하는 측면에서 의존성 관리가 더 편리해집니다.
- 캡슐화와 추상화: CoreExport.swift를 통해 CoreNetwork와 CoreNetworkInterface의 기능을 Core 모듈로 "리-익스포트"함으로써, Core 모듈이 네트워크 관련 기능의 집합점 역할을 하게 됩니다. 이는 Core 모듈의 사용자가 네트워킹 기능에 대한 구체적인 구현 세부 사항을 몰라도 되도록 추상화 수준을 높여줍니다.
- 의존성 관리: 프로젝트 구조가 복잡해지고 모듈 간의 의존성이 많아질수록, 의존성을 관리하는 것이 어려워집니다. CoreExport.swift를 사용함으로써 Core 모듈을 통해 필요한 의존성을 제공받게 되므로, 다른 모듈이나 타겟에서 필요한 의존성을 더 명확하게 관리할 수 있습니다.
//
// CoreExport.swift
// Core
//
// Created by 김찬희 on 2024/04/01.
//
@_exported import CoreNetwork
@_exported import CoreNetworkInterface
'🍏 > Architecture' 카테고리의 다른 글
[Clean Architecture] Presentation(MVVM), Domain, Data (0) | 2024.08.30 |
---|---|
[Architecture] 프로젝트에 Modular Architecture를 적용하는 이유 (0) | 2024.05.25 |
[Architecture] Modular Architecture iOS 개념 정리 (0) | 2024.05.24 |
[Architecture] Matching MVVM architecture in a modular architecture (0) | 2024.05.23 |
[Architecture] Matching Cocoa-MVC architecture in a modular architecture (0) | 2024.05.22 |