Library

프로젝트

크누마켓

대학생 공동구매 앱

2021UIKitiOS
테마
언어

프로젝트

크누마켓

2021UIKitiOS

About

크누마켓은 대학생들을 위한 공동 구매 플랫폼입니다.

배송비나 소량으로 구매하기 부담스러운 물건들을 편하게 공동구매 할 수 있도록 만들어졌습니다.

Period.

2021.11.03 - 2021.12.15

What I've done.

  • iOS 앱의 스토리보드 삭제
    • 기존 앱은 1인 개발자가 스토리보드를 통해 개발한 앱이었습니다. 깃을 이용해 협업 할 때 문제가 생길 소지가 컸으며, 컨플릭트를 줄이기 위해 SnapKit을 이용한 코드 베이스의 UI로 교체작업을 건의, 진행하였습니다.
  • 신규 기능 개발
  • 1.2 앱의 여러 신규기능 중 유저 피드백 개선 문제를 요구사항 정의서와 스토리보드에 따라 개발을 하였으며, 팀원들과 깃허브를 통해 코드 리뷰 및 리팩토링을 진행하였습니다.
  • 코드리뷰를 통해 팀원들과 정보를 공유하고, 보다 질 좋은 코드를 작성하기 위해 노력했습니다.
  • 기존 iOS앱의 아키텍쳐 변경
  • MVVM 패턴이 정해져있지 않고, 개발자마다 구현하는 스타일이 다르기에 코드의 통일성을 고려하여 단방향 흐름 라이브러리인 ReactorKit의 사용을 채택하자는 제안을 하였고, 작은 부분부터 순차적으로 적용하였습니다.
  • 의존성 주입 사용
  • 기존 앱은 Singleton 패턴과 델리게이트 패턴을 활용한 MVVM 구조를 채택하고 있었습니다. 너무 많고 강한 결합을 형성하고 있었기에 기존 1인 개발 체계와는 달리 많은 컨플릭트의 우려와 기능별로 나뉘는 협업 체계에서 단점으로 작용되었습니다. 그렇기에 기능별로 유연하게 나뉠 수 있도록 의존성 주입 도입을 진행하였습니다.
  • 기존 앱의 코드 리팩토링
  • RxSwift를 활용한 Reactive 프로그래밍을 적용하여 일관성이 없고, 콜백이 난무하던 비동기 코드들을 깔끔하게 정리하는 작업을 진행하였습니다.
  • 네트워크 추상화 도입
    • 기존 Alamofire 코드는 재사용성에서 많은 단점을 가지고 있었습니다. 그렇기에 Alamofire를 재사용하기 쉽게 만들어주는 라이브러리인 Moya 도입을 건의, 적용하여 코드를 더 간결하고 보기 쉽게 리팩토링을 진행하였습니다. 또한 네트워크 계층을 분리할 수 있었습니다.
크누마켓크누마켓
대학생 공동구매 앱대학생 공동구매 앱