Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- swift6
- Architecture
- updatecycle
- task
- swiftconcurrency
- UIKit
- 뷰의레이아웃을계산하는메서드
- swift6.1
- modulararchitecture
- applaucnchprocess
- Xcode
- 뷰를그리는메서드
- IOS
- SPM
- WWDC24
- actor
- displayscale
- mainrunloop
- ciimage
- xcrun swift-demangle
- 이진삽입정렬
- ios바이너리분석
- XCUITest
- mach-o파일분석
- Swift
- mangle
- swift-demangle
- cgimage
- 다이나믹링크분석
- uicollectionview
Archives
- Today
- Total
꾸준한 기록
[Modular Architecture] part2. 구성 본문
모듈은 레이어(Layer, 계층)로 나뉜다.
레이어 구성
1. 애플리케이션 레이어 (Application Layer)
2. 도메인 레이어(Domain Layer)
3. 서비스 레이어(Service Layer)
4. 코어 레이어(Core Layer)
5. 공유 레이어(Shared Layer)
레이어 특징
1. 애플리케이션 레이어
- Framework에서 필요한 부분을 조립해서 갖는 컨테이너 역할
- 조립? 도메인과 서비스를 연결하고, UI 스택을 인스턴스로 만든다.
- UI 스택에는 네트워크 서비스, Coorinater 패턴을 사용한다면 domain Coordinator 객체 등을 포함한다.
- app 환경설정 (config)를 포함한다. : 다양한 앱 버전, 키체인 환경설정 등
- 푸시 알림 / 딥링크 / 권한 요청을 처리하는 로직도 포함
- 예를 들어, 전자 상거래 앱은 온라인 고객을 위한 The Shop 또는 회사 직원들을 위한 Cashier 앱이 될 수 있다.
2. 도메인 레이어
- 회사의 비즈니스 요구사항을 구현하기 위해, 서비스를 연결하고 하위 모듈을 사용한다.
- 애플리케이션에서 사용자의 이동 흐름을 관리하는 역할도 갖는다.
- user flow를 관리하는데 필요한 컴포넌트를 포함한다.: coordinators, view controllers, views, models, view models.
- 전자 상거래 앱에서 `Checkout` 또는 `Store Items`와 같은 도메인은 각각 직원 또는 고객을 위한 사용자 흐름을 관리합니다.
3. 서비스 레이어
- 도메인 레이어를 지원하기 위한 모듈로 구성. 도메인 레이어에서는 여러 서비스 레이어 모듈을 연결한다.
- 서비스 레이어는 백엔드와 통신하고, 데이터 저장, 도메인에 데이터 노출한다.
- 전자 상거래 앱에서 `Checkout Service`는 결제와 관련된 모든 백엔드 통신을 담당하는 서비스가 될 수 있습니다.
4. 코어 레이어
- 애플리케이션을 위한 핵심 모듈로 구성.
- 서비스 레이어에서 코어 레이어를 이용해서 서버와 통신하거나, 데이터를 저장하는 로직의 추상화를 제공한다.
- 도메인 레이어에서 화면을 더 쉽게 구현하기 위해서, 코어 레이어에서 UI 컴포넌츠를 연결할 수 있다.
- 전자 상거래 앱에서 Network 또는 UIComponents는 필수적인 네트워크 통신 및 UI 구성 요소를 포함합니다.
5. 공유 레이어
- 프레임워크 전체에서 공통적으로 사용하는 모듈
- ex) 로깅 시스템, Util 성 메서드
- 전자 상거래 앱에서의 공유 모듈은 Logging(로깅)이나 AppAnalytics(앱 분석)이다.
'iOS' 카테고리의 다른 글
| [UICollectionView] part3. cell 재활용 메커니즘 (0) | 2024.09.08 |
|---|---|
| [UICollectionView] part2. UICollectionViewDiffableDataSource (2) | 2024.09.08 |
| [Modular Architecture] part1. Basic (0) | 2024.09.08 |
| [UICollectionView] Part1. DataSource와 Delegate의 역할 (0) | 2024.09.07 |
| 앱이 상태 전환될 때 수행해야 하는 작업 (4) | 2024.09.06 |