개발을 시작하는 이야기

00. Project Review :: SeSAC Friends 본문

개발 이야기/Project Review

00. Project Review :: SeSAC Friends

Teiresias 2022. 3. 6. 18:05

주변의 친구들과 취미를 공유하고, 
SeSAC에서 진행된 프로젝트로 일명 SLP (Service Level Project)로 실제 운영되는 서비스들의 수준에 맞춰 디자인, 백앤드팀이 함께 작업해 완성한 프로젝트 입니다.

사용 기술  및 라이브러리

  • Swift, iOS, Codebase, MVVM, AutoLayout
  • MapKit, CoreLocation, CLAuthorizationStatus , ToastMessage, Observable, 
  • Alamofire, Snapkit, SwiftyJSON, TextEffects, Firebase Auth
  • Github, Figma, Swager, Confluence, Jira

구현한 기능

  • Firebase Auth를 활용한 휴대폰 인증
  • 최초 접속자에 한해 온보딩 페이지 표시. 온보딩을 끝까지 채크하지 않고 종료했다면 다음번 접속시에도 온보딩 페이지가 표시
  • MVVM 패턴을 활용한 Codebase
  • UserDefault, APIService, Endpoint등을 모듈화 하여 사용
  • 서버통신을 활용하여 주변 사용자의 위치를 가져와 지도에 표시
  • Data Binding을 위한 Observable 활용
  • DispatchQueue를 활용하여 global과 main, sync와 async를 활용
  • 모든 ViewController는 BaseViewController를 상속하게 되며, BaseViewController는 touchsBegan의 endEditing, 그리고 toastMessage 의 기능

회고 및 이슈

협업

  • 다양한 협업툴을 활용
    • Confluence를 활용하여 기획서, API명세서를 백앤드와 공유
    • Figma를 활용하여 디자이너와 공유
    • Jira를 활용하여 워크플로우 공유

MVVM

FCM Token갱신

  • FCM Token 갱신은 여러 VIewController에서 빈번히 사용되는 기능으로, BaseViewController에서 별도의 viewModel을 상속받아 처리해주었다면 좋았을것 같다.

모듈화

  • UserDefault같은 경우 설정을 해두고 잊고 지나치기 쉽기 때문에 별도의 페이지에서 통합하여 관리해주는게 좋다.

재사용

  • Button, Textfield등 여러가지 ViewController에서 사용하는 객체는 Custom으로 제작하여 활용

API 응답코드 처리

  • Enum을 활용하여 API 상태코드 처리
    • 개발 초기에는 Enum을 활용하지 않고 처리했으나, 프로젝트 진행 도중 API의 상태코드가 변동되는 일이 있었을때, 상태코드를 하나하나 찾으면서 바꿔야 했던 경험을 한 후 Enum을 활용하여 상태코드를 관리하게 되었습니다.

Link & Image