피드로 돌아가기
[여의도 43층 사람들] iOS팀에게 무엇이든 물어보세요!
뱅크샐러드 기술블로그뱅크샐러드 기술블로그
Mobile

[여의도 43층 사람들] iOS팀에게 무엇이든 물어보세요!

뱅크샐러드 iOS팀이 Feature Flag와 통합 UI 테스트 도입으로 클린빌드 7분에서 3분으로 단축 및 핫픽스 대응 체계 확립

2022년 3월 23일8intermediate

Context

iOS 네이티브 앱은 앱스토어 심사 프로세스로 인해 긴급 버그 수정 시 배포가 지연되는 구조적 한계가 있다. 동시에 규모가 커지면서 빌드 시간이 7분까지 증가하여 개발 생산성이 저하되었고, 휴먼에러로 인한 버그가 사용자에게 직접 노출되는 위험이 있었다.

Technical Solution

  • Feature Flag와 실험을 통한 배포 전략: 새 기능과 기존 코드 변경 사항을 Feature Flag로 감싼 후 단계적 롤아웃 및 필요시 즉시 롤백 가능한 구조 도입
  • BPL(컴포넌트 라이브러리) 도입 및 확장성 설계: 2.0 버전 리뉴얼 시 앱의 UI 컴포넌트를 BPL로 통합하여 접근성 일괄 개선
  • 통합 UI 테스트 자동화: 회원가입, 로그인, 자산연동 등 크리티컬한 유저 플로우에 대한 통합 UI 테스트를 주기적으로 실행하고 실패 시 Slack 즉시 알림
  • 모듈화 및 병렬 빌드: 프로젝트를 모듈 단위로 분리하여 개발 시 전체 앱을 빌드하지 않고 해당 모듈만 빌드·테스트
  • TDD 기반 모듈 개발: 테스트 코드 작성으로 클린빌드 1분, 증분빌드 10초 이내에 로직 개발 가능하도록 개선
  • 사후부검(Post-mortem) 프로세스: 버그 발생 시 5번의 근본 원인 분석을 통해 시스템 개선 항목 도출
  • 사내 베타테스트: 릴리즈 전 최소 2주간 사내 구성원을 대상으로 베타테스트 실시하여 크리티컬 버그 조기 발견

Impact

  • 클린빌드 시간: 7분에서 3분으로 단축 (최신 맥북 기준)
  • 모듈 단위 개발 시 증분빌드: 10초 이내
  • iOS 앱 다운로드: 100만 건 달성
  • 2.0 버전 앱 접근성: BPL 도입으로 대폭 개선

Key Takeaway

네이티브 앱 개발에서 배포 지연을 우회하려면 Feature Flag 기반 동적 설정이 필수이며, 모듈화를 통한 빌드 시간 단축과 통합 UI 테스트 자동화를 함께 실행해야 배포 빈도와 품질을 동시에 확보할 수 있다.


iOS/Android 팀에서 긴급 배포 압박이 있을 때는 앱스토어 심사를 우회하기 위해 Feature Flag로 기능을 감싼 후 서버 설정만으로 즉시 온·오프 가능하도록 구현하면, 사용자 영향을 최소화하면서 문제에 빠르게 대응할 수 있다. 동시에 회원가입·결제 등 크리티컬 플로우에 한정하여 통합 UI 테스트를 구성하고 자동 실행하면 휴먼에러를 사전 차단할 수 있다.

원문 읽기