-
Notifications
You must be signed in to change notification settings - Fork 1
[의사결정록] iOS Architecture 선택 과정
junbok97 edited this page Dec 14, 2023
·
7 revisions
- 부스트캠프에서 학습한 내용을 최대한 활용 가능할 것
- 같은 화면을 나누어서 개발 하더라도 서로 영향을 받지 않아야 함
- 재사용 가능할 것
- 각 계층간의 느슨한 연결
- 확실한 책임 분리
-
RIBs
-
클린 아키텍처
- 프로토콜를 사용하여 추상화
- Interface와 Implementation으로 나눌 수 있는 구조라 모듈화에 적합함
- composite 패턴으로 다양한 조합 가능
- 각 객체마다 단일 책임을 지기 때문에 코드 유지보수성과 가독성 향상
- 템플릿을 제공
- 코드 스타일이 비슷해짐
- 리뷰할 때 코드 구조 등 다른 설명이 필요 없어서 파악하기 좋음
- 학습할 거리가 많음
- Router (Coordinator)
- Factory (Builder)
- Modern-RIBs 사용
- RxSwift의 의존성을 없애고 Combine으로 대체한 Modern-RIBs 사용
- Combine이 RxSwift에 비해 가볍고 RIBs 사용에 필요한 기능을 대체 가능함
- 러닝커브가 높다
- RIBs는 RxSwift가 포함되어 있는데 외부 라이브러리를 사용하면 안된다는 제한사항이 있다.
- RxSwift를 걷어내고 Combine으로 대체된 ModernRIBs 사용
- DB 선택 과정
- TypeORM 선택 이유
- Docker 선택 이유
- Github Action 선택 이유
- DB서버와 서비스 서버를 분리한 이유
- 자동완성을 위한 Trie 구조를 제거하고, naver cloud search로 대체한 이유
- 11월 07일 (화) - 프로젝트 설명
- 11월 16일 (목) - 프로젝트 진행하면서 생긴 고민
- 11월 21일 (화) - 멘토분들 피드백
- 11월 28일 (화) - 트러블 슈팅 피드백
- 12월 05일 (화) - 기술적 도전에 대한 고민
- 12월 12일 (화) - 최종 발표 피드백