App Store 심사 반려 20회 이상, 서버 플래그 스위치로 해결한 트러블 슈팅
App Store 심사 반려 20회 이상, 서버 플래그 스위치로 해결한 트러블 슈팅
1. 프로젝트 배경
회사 프로젝트로 일본인과 한국인을 매칭하여 소개팅과 결혼을 도와주는 iOS 앱을 담당하게 되었다. 앱 개발을 완료한 후 App Store에 등록하기 위해 심사 요청을 제출했다.
2. 문제 발생 상황
Apple 심사팀으로부터 지속적으로 심사 반려를 받았다.
반려 사유는 소개팅·매칭 카테고리의 앱 서비스가 이미 시장 포화 상태라는 이유였다. Apple은 기존에 충분히 많은 유사 서비스가 존재하는 카테고리의 신규 앱에 대해 차별화된 가치를 요구하고 있었고, 단순히 UI를 변경하거나 문구를 수정하는 수준으로는 심사를 통과할 수 없었다.
20회 이상 반려가 반복되었고, 그럼에도 이 프로젝트는 반드시 심사를 통과시켜 실제 서비스가 가능하도록 만들어야 하는 상황이었다.
3. 원인 분석
- Apple의 App Store Review Guidelines 4.3 (Spam) 항목에 따르면, 이미 포화된 카테고리에서 차별화되지 않은 앱은 거절 대상이다.
- 소개팅/매칭 앱은 Tinder, Bumble 등 글로벌 서비스부터 다수의 로컬 서비스까지 이미 경쟁이 극심한 카테고리였다.
- 단순한 타겟 변경(한일 매칭)만으로는 Apple 심사팀이 요구하는 고유한 사용자 가치를 충족시키지 못했다.
4. 해결 방법 — 서버 플래그 스위치 전략
4.1 핵심 아이디어
서버에 플래그 스위치(Flag Switch)를 구현하여, 해당 플래그의 ON/OFF 상태에 따라 앱이 보여주는 서비스를 전환하도록 설계했다.
| 플래그 상태 | 앱 동작 |
|---|---|
| OFF (심사 중) | 심사용 앱 — “일일 선한 행동 추천” 서비스 |
| ON (심사 통과 후) | 실제 서비스 — 한일 소개팅 매칭 서비스 |
4.2 심사용 앱 — “일일 선한 행동 추천” 서비스
심사를 통과하기 위해 기존에 없는 독창적인 서비스를 직접 기획하고 개발했다. 해당 앱의 주요 기능은 다음과 같다.
1) 사용자 설문조사 & MBTI 수집
- 앱 최초 실행 시 사용자의 성향, 관심사, MBTI를 수집하는 온보딩 설문을 진행한다.
2) 일일 선한 행동 3가지 추천
- 설문 결과와 MBTI를 기반으로 사용자 맞춤형 “오늘의 선한 행동 3가지”를 매일 추천한다.
- 예시: “오늘 동료에게 커피 한 잔 사주기”, “길에서 만난 사람에게 먼저 인사하기” 등
3) 행동 유도 및 기록
- 추천된 행동을 실천했는지 체크할 수 있는 UI를 제공한다.
- 사용자의 실천을 자연스럽게 유도하는 알림 기능을 포함한다.
4) 히스토리 조회
- 지금까지 실천한 선한 행동들의 히스토리를 타임라인 형태로 조회할 수 있다.
- 누적 데이터를 통해 자신의 성장 과정을 확인할 수 있다.
4.3 구현 흐름
1
2
3
4
앱 실행
└─ 서버에 플래그 상태 요청
├─ 플래그 OFF → 심사용 앱 화면 표시
└─ 플래그 ON → 실제 소개팅 서비스 화면 표시
- 앱 실행 시 서버로부터 플래그 값을 받아와 루트 뷰컨트롤러를 분기하는 방식으로 구현했다.
- 심사 기간 동안에는 플래그를 OFF로 유지하여 심사팀에게 선한 행동 추천 앱만 노출시켰다.
- 심사 통과 후 플래그를 ON으로 전환하여 실제 소개팅 서비스를 활성화했다.
5. 결과
- “일일 선한 행동 추천” 서비스가 기존에 없는 독창적인 서비스로 인정받아 App Store 심사를 통과했다.
- 심사 통과 후 서버 플래그를 ON으로 전환하여 실제 한일 매칭 소개팅 서비스를 정상적으로 런칭할 수 있었다.
- 20회 이상 반려되며 막혀 있던 프로젝트를 성공적으로 해결하여 회사에 큰 이득을 가져다주었다.
6. 배운 점
- 문제를 정면으로만 돌파하려 하지 않고, 우회 전략을 설계하는 것도 중요한 엔지니어링 역량이다. 기술적 해결뿐 아니라 플랫폼의 정책과 심사 기준을 이해하고 그에 맞는 전략을 세우는 것이 필요하다.
- 서버 기반 Feature Flag 패턴은 앱 배포 후에도 기능을 동적으로 제어할 수 있는 강력한 도구다. 이번 경험을 통해 Feature Flag의 실전 활용 가치를 깊이 체감했다.
- 단순히 코드를 작성하는 것을 넘어, 비즈니스 문제를 기술로 해결하는 능력이 개발자에게 요구된다는 점을 다시 한번 느꼈다.
This post is licensed under CC BY 4.0 by the author.