피드로 돌아가기
뱅크샐러드 기술블로그Mobile
원문 읽기
뱅크샐러드 at Apple Store
뱅크샐러드 iOS 팀이 Protocol 기반 느슨한 의존성 구조와 JSON 텍스트 모킹으로 2주 안에 Apple Retail Store 데모 앱 개발 완료
AI 요약
Context
Apple로부터 Apple Retail Store 고객들이 뱅크샐러드를 경험할 수 있는 데모 앱 개발 요청이 들어왔으며 약 2주라는 제약 조건이 있었다. 데모 앱은 기존 제품 앱과 달리 로그인·회원가입 절차 없이 작동하고, 서버와의 통신 없이 오프라인에서 다양한 페르소나별 시나리오를 보여줄 수 있어야 했다.
Technical Solution
- Repository 패턴을 Protocol 기반으로 구현: Service는 구현체를 알지 못하고 Protocol을 통해서만 통신하도록 설계되어 있었음
- 데모 앱의 Repository 구현체를 교체: API Provider 호출 대신 클라이언트에 저장된 JSON 데이터에서 값을 선택하여 Entity로 Decode하는 로직으로 변경
- 페르소나별 시나리오 구축: 학생, 학부모, 투자자 등 실제 있을 법한 사용자군의 다양한 거래내역을 페르소나별로 정의하여 가계부 탭과 MY금융 탭에 적용
- 동적 거래내역 날짜 처리: Date Parser 수정을 통해 고정된 거래내역 날짜를 현재 기준으로 자동 갱신 (submitDate 이후 경과 시간을 더하는 방식)
- 웹 뷰 서비스 대체: 서버 연동이 필요한 웹 뷰 서비스와 낮은 중요도 기능(닉네임 변경 등)을 앱 설치 QR코드나 이미지로 대체
Impact
약 2개월 후인 11월에 가로수길 애플스토어를 비롯한 한국의 모든 Apple Retail 매장에 데모 앱이 전시됨.
Key Takeaway
Protocol 기반의 느슨한 의존성 구조는 테스트용 Mock 구현체뿐 아니라 실제 데모 환경 구현에도 최소한의 코드 변경으로 대응할 수 있게 해준다. Business Logic이 Protocol에 의존하는 설계는 런타임에 Repository의 구현체를 유연하게 교체할 수 있는 기반이 된다.
실천 포인트
Protocol 기반 의존성 주입을 사용하는 iOS 앱에서 데모 또는 오프라인 모드를 빠르게 구현해야 할 때, 기존 Service·ViewModel 코드를 변경하지 않고 Repository 구현체만 교체하여 로컬 JSON 데이터를 반환하도록 하면 된다. 이 방식은 테스트 코드의 Mock 작성 패턴과 동일하므로 팀의 학습 곡선을 낮출 수 있다.