피드로 돌아가기
뱅크샐러드 기술블로그Mobile
원문 읽기
안전제일! 뱅크샐러드가 모바일 앱을 안정적으로 배포하는 방법
뱅크샐러드가 주간 정기 배포 루틴과 다단계 QA 프로세스로 대규모 리팩토링 중에도 주 1회 안정적 배포 달성
AI 요약
Context
모바일 앱은 스토어 심사 프로세스(수 시간~수일 소요)로 인해 배포 후 롤백이 불가능하고, 수정 버전 배포까지 시간이 오래 걸린다. 대규모 리팩토링 같은 변경사항은 의도치 않은 버그를 발생시키기 쉬우므로, 배포 시 높은 안정성이 필수적이다.
Technical Solution
- 주간 정기 배포 사이클 도입: 매주 금요일 오후에 develop 브랜치에서 release 브랜치를 분리하고 버전을 주차로 명명(예: 2023년 48주 → v23.48.*)
- develop 브랜치를 배포 가능 상태 유지: 병합 전 모든 자동화 테스트 통과 필수, Feature Flag로 미완성 기능 차단
- release 브랜치에서 cherry-pick 전략: 발견된 이슈는 develop 브랜치에서 수정 후 커밋을 release 브랜치로 cherry-pick만 수행(merge 없음)
- 자동화 테스트 + 수동 QA 조합: GitHub Actions에서 자동화 테스트 실행(실제 iOS/Android 디바이스 연결), QA 팀이 리스크 분석 문서 작성 후 수동 테스트 진행
- 점진적 배포 단계: 월요일부터 수요일까지 App Store 점진적 출시 기능으로 전체 사용자 중 5% 대상 배포 후, 이상 없으면 전체 배포 진행
- release QA 프로세스: 금요일 오후 테스트 빌드 생성 → 주말 자동화 테스트 → 월-화(또는 화-수) QA 팀 수동 테스트 → 목-금 우선순위 높은 이슈 해결 → 금요일 스토어 심사 제출
- 이슈 해결 브랜치 전략: release 브랜치가 아닌 develop 브랜치에서 생성·병합하여 develop 상태 최신 유지, 이후 cherry-pick 시점에만 충돌 해결
Key Takeaway
모바일 앱 배포의 안정성은 단일 기술이 아닌 '정기 사이클 + 자동화 + 다단계 검증 + 배포 전략'의 조합으로 달성된다. 특히 develop을 언제나 배포 가능한 상태로 유지하고 release 브랜치를 cherry-pick으로만 관리하면, 대규모 변경 중에도 다른 작업과의 충돌을 최소화하면서 안정성을 높일 수 있다.
실천 포인트
iOS/Android 앱을 배포하는 팀에서 주간 정기 배포 루틴을 도입할 때, develop 브랜치를 항상 배포 가능 상태로 유지(자동화 테스트 필수, Feature Flag로 미완성 기능 차단)하고 release 브랜치에서는 cherry-pick만 수행하면, 작은 PR 규칙과 결합했을 때 대규모 리팩토링 중에도 주 1회 안정적 배포가 가능하다.