-
Notifications
You must be signed in to change notification settings - Fork 0
[ADR] 아키텍처 의사 결정 기록: iOS 애플리케이션 아키텍처 채택하기
김영균 edited this page Nov 9, 2023
·
2 revisions
작성일 | 작성자 |
---|---|
2023-11-09 | 김영균 |
상태
- 수락됨(Accepted)
배경
- 부스트캠프 멤버쉽 학습 스프린트 과정에서 배웠던 내용을 최대한 활용한 아키텍처를 고려하고 채택해야한다.
- 확장성과 관심사 분리, 테스트에 용이한 아키텍처를 기술적 도전으로 삼는다.
- 서드파티 라이브러리를 사용하지 않는 아키텍처를 설계해야한다.
결정
- 버터플라이 아키텍처
이유
- 관심사 분리로 Domain 영역의 UseCase가 테스트 가능하다.
- 서드파티 라이브러리를 사용하지 않고 아키텍처 설계가 가능하다.
- 의존 관계를 UseCase를 기점으로 나뉘어서 의존성 주입에 용이하다.
결과 및 영향
- Data -> Domain 으로 의존관계를 어떻게 구현할 지 모르게어서 학습에 어려울 것 같다.
- 의존성 및 관심사 분리를 경험할 수 있다.
- 테스트 코드를 작성할 수 있다.
결론
- 버터플라이 아키텍처를 사용해보자.
- [ADR] 아키텍처 의사 결정 기록: iOS 애플리케이션 아키텍처 채택하기
- [ADR] 아키텍처 의사 결정 기록: SwiftLint 채택
- [ADR] 아키텍처 의사 결정 기록: UI 영역에서 Combine 사용 결정
- [ADR] 아키텍처 의사 결정 기록: Presentation영역의 ViewModel에서 Input Output 패턴 도입 결정
- [ADR] 아키텍처 의사 결정 기록: 코디네이터 패턴 도입 결정
- [ADR] 아키텍처 의사 결정 기록: 로컬 스토리지로 코어 데이터 사용 결정
- [ADR] 아키텍처 의사 결정 기록: Custom Network Foundation 라이브러리 구현 및 모듈화 결정
- [ADR] 아키텍처 의사 결정 기록: 이미지캐셔 라이브러리 구현 및 모듈화 결정