소개
크누마켓은 대학생을 위한 공동구매 앱입니다.
배송비가 부담스러운 물건이나 적은 수량으로 사기 어려운 물건을 함께 구매하는 앱입니다.
기간
2021.11.03 - 2021.12.15
담당한 일
- iOS 앱의 스토리보드 삭제
- 기존 앱은 1인 개발자가 스토리보드로 만들었습니다. 깃으로 협업할 때 컨플릭트가 생기기 쉬워 화면을 SnapKit 코드 UI로 옮기자고 제안하고 작업했습니다.
- 신규 기능 개발
- 1.2 앱의 신규 기능을 요구사항 정의서와 스토리보드에 맞춰 개발했습니다. 유저 피드백을 반영하며 팀원들과 깃허브에서 코드를 리뷰하고 리팩토링했습니다.
- 코드리뷰에서 팀원들과 정보를 나누고 코드 품질을 다듬었습니다.
- 기존 iOS 앱의 아키텍처 변경
- MVVM 패턴이 정해져 있지 않아 개발자마다 구현 방식이 달랐습니다. 코드를 통일하려고 단방향 흐름 라이브러리인 ReactorKit을 제안하고 작은 부분부터 적용했습니다.
- 의존성 주입 사용
- 기존 앱은 Singleton과 델리게이트 패턴을 쓰는 MVVM 구조였습니다. 코드 간 결합이 강해 1인 개발 때와 달리 여러 사람이 기능을 나누면 컨플릭트가 생길 우려가 있었습니다. 기능별로 나눠 작업하기 쉽도록 의존성 주입을 도입했습니다.
- 기존 앱의 코드 리팩토링
- 서로 다른 방식으로 작성된 비동기 코드와 많은 콜백을 RxSwift의 Reactive 프로그래밍으로 통일했습니다.
- 네트워크 추상화 도입
- 기존 Alamofire 코드는 재사용하기 어려웠습니다. 재사용을 돕는 Moya 도입을 제안하고 적용했습니다. 코드를 간결하게 다듬고 네트워크 계층도 분리했습니다.