가치사자

2021.06 - 2022.07

팀 구성:

iOS 2명 - 디자인 1명 - 서버 2명 - 안드로이드 2명 - 기획 3명

본인 역할:

iOS 앱 개발(50%)

1인 가구・자취러・긱사러에게 필요한 지역 기반 합리적 소비 제안하는 어플리케이션입니다. 가치사자에서 사용자가 같이 사고 싶은 물건을 게시하고 다른 사용자들과 댓글을 통해서 공동 구매를 진행할 수 있도록 돕습니다. 가치사자는 사용자의 현재 위치를 받아오기 때문에 지역 기반으로 공동 구매를 진행할 수 있습니다.

github

사용 기술

UIKit

UI 컴포넌트로 화면 UI 구성 및 Codebase 형식으로 AutoLayout 설정

CoreLocation

사용자 현재 위치 및 공동 구매 위치 설정

Photos

ImagePicker로부터 가져온 사진 가공

Github Action

build Test 실행 자동화

라이브러리(CocoaPods, Swift Package Manager)

Moya

네트워킹 라이브러리

SnapKit

Codebase 형식으로 간단하게 AutoLayout 코드를 작성할 수 있도록 도와줌

BSImagePicker

ImagePicker 관련 API 제공, 라이브러리 커스텀 진행

RxSwift, RxCocoa

비동기적인 이벤트 처리, UI Component에 rx 코드 적용

Firebase

Firebase Analytics 사용한 유저 행동 분석

Crashlytics로 빠른 이슈 파악

Messaging API로 푸시 알림 받는 코드 작성

본인 개발 내용

⏺ 네트워킹 라이브러리 Moya를 사용해서 받아온 데이터를 화면에 추가

⏺ ViewController 간의 의존성 분리를 위해서 Coordinator Pattern 도입

⏺ 앱 내 인증 코드를 통해서 로그인/회원가입하는 로직 및 화면 구현

-

Timer를 사용하여 5분동안 인증 코드 입력 안할 시에 다시 인증 코드를 입력하도록 하는 로직 개발

-

핸드폰 번호 형식 오류, 제한 시간 초과 같은 Error 상황 처리 코드 작성

-

발송된 인증 번호가 키보드 상단에 보여지는 기능 구현

-

UI Component 관련 코드에는 RxRelay를 사용해서 Error 발생시 화면에 문제가 생기지 않도록 구현

⏺ 앱 내 게시물 작성화면 구현

-

전체적인 UI를 CollectionView로 구성하여 다음으로 버튼 선택 시 Scroll되도록 개발

-

BSImagePicker 라이브러리 내부 코드를 수정하여 디자인에 맞는 게시물 사진 선택 UI 구현

-

선택한 사진 개수에 따라 UICollectionView가 유동적으로 바뀌거나 보이지 않게 구현

가치사자를 통한 성장

2주 간의 스프린트 후 정기 업데이트 시스템 도입

가치사자는 릴리즈 이후에 꾸준한 유지보수를 위해서 스프린트를 도입했습니다. 2주 간의 스프린트동안 QA 백로그에 있던 이슈들을 해결하고 앱 스토어에 배포했습니다. 스프린트가 끝나면 스프린트 회고를 진행한 후, 회의를 통해 다음 스프린트동안 진행할 이슈들을 고르는 방식이었습니다. 이전에는 QA 백로그에 올라간 이슈가 오랫동안 해결되지 않는 경우가 많았는데, 스프린트 진행 후에는 전체적인 이슈 해결 비율이 높아졌습니다. 스프린트 도입 기간동안 50여 개의 이슈 중에 30개의 이슈가 해결되었습니다.

스프린트 회고를 하며 더 좋은 방식들을 다음 스프린트에 적용해 볼 수 있었고, 정해진 기간 덕분에 나태해지지 않고 꾸준히 이슈를 해결할 수 있었습니다. 아쉬운 점이 있다면, 개발 파트(iOS, 안드로이드)만 도입한 방식이기에 스프린트를 유지하는데 한계가 있었습니다. 서버나 기획, 디자인에서 해줄 수 있는 부분이 해결되지 않는다면 진행하고 싶어도 하지 못하는 일들이 종종 발생했기 때문입니다. 함께 진행했다면 2-3배의 효율을 내지 않았을까 싶습니다.

© Yoon Ah Shin. 2024

  1. 01. 02 Latest Update