devxsby / ios-bank-app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

은행 앱

은행 창구에서 모바일로 번호표를 발급받을 수 있는 서비스

기간: 23.05.18 ~ 23.05.31 (개인 프로젝트)

View


주요 기능

1. 모바일 번호표 발급

  • 은행앱은 사용자에게 은행 창구에서 모바일로 번호표를 발급받는 기능을 제공합니다.

  • Grand Central Dispatch(GCD)를 사용하여 동시성 프로그래밍을 구현하고, 서버 연결 없이도 로컬에서 여러 작업을 수행할 수 있도록 합니다.

  • 예금과 대출 창구에서 대기를 할 수 있으며, 대기한 창구의 앞에 1명의 고객이 남았을 시에 푸시 알림을 통해 사용자에게 알립니다.

  • 대기후 인원이 감소하는 것을 애니메이션을 통해 확인할 수 있습니다.


2. Modular Architecture

  • 프로젝트의 구조와 관리, 코드 재사용과 의존성 관리 등을 위해 Tuist를 활용하여 모듈화된 아키텍처를 구현합니다. 이외에도 MVVM 패턴과 클린 아키텍처를 적용합니다.

  • 각 Scene 별로 기능을 분리하여 코드의 가독성과 유지 관리성을 향상시키며, 복잡성을 줄입니다.

  • 다른 피처간 라우팅이 필요한 경우 구현 모듈이 직접 참조하지 않고 Interface 모듈을 통해 참조해 순환 참조 문제를 해결했습니다.


3. 테스트 코드 작성

  • 도메인 레이어의 유즈케이스에 대한 테스트 코드를 작성하여, 변경된 기능이나 새로운 기능이 예상대로 동작하는지 검증합니다.
  • 테스트 코드를 작성하기 위해 각 메서드의 역할과 책임에 대해 고민하고 설계를 고민하는 경험을 했습니다. 또한 메서드의 분리와 관련하여 코드를 모듈화하고 재사용 가능한 구성 요소로 만들어 유지 보수성을 향상시켰습니다.
  • Given-When-Then 패턴을 사용하여 가독성을 높였고,setUp(), tearDown() 메서드를 오버라이드하여 테스트를 위한 초기화 작업과, 테스트에 의해 생성된 상태나 데이터가 다른 테스트에 영향을 주지 않도록 했습니다.

About


Languages

Language:Swift 99.7%Language:Makefile 0.2%Language:Shell 0.1%