개발 중 · Apple Developer 등록 완료 · App Store 출시 전 · 매출 미검증
다음 수익 실험은 아이디어를 더 모으는 일이 아니라 실제 앱 하나를 끝까지 내보는 일로 정했다. 첫 제품은 꼬리노트(KkoriNote)다. 꼬리노트는 내가 직접 수익을 내기 위해 만드는 첫 앱이다. 반려동물의 식사, 산책, 증상, 투약, 병원 방문처럼 흩어지기 쉬운 건강·생활 기록을 한곳에 모은다.
지금 완료한 것은 Apple Developer Program 등록이며 MVP는 개발 중이다. 등록은 배포 도구와 App Store Connect를 사용할 자격을 얻는 단계다.[1] 앱 정보와 빌드를 준비해 Submit for Review하는 절차, Apple의 심사, 심사 통과 뒤 실제 출시도 각각 별도 단계다.[2][3] 아직 다운로드나 매출은 없다.
출시 전에 예상 매출 대신 검증 계약을 적어 둔다. 사용자의 반복 문제, 무료와 유료의 경계, 광고를 두지 않을 곳, 측정 기간과 중단 조건을 미리 고정해야 출시 뒤 결과에 맞춰 해석을 바꾸지 않을 수 있다.
아이디어 후보 목록에서 꼬리노트를 고른 기준
처음 검토한 아이디어 후보 목록은 다음 열 가지였다.
- AI 문제집 생성기
- 교대근무 캘린더·예상 급여 계산기
- 중고거래 판매 도우미
- 냉장고 유통기한·식재료 관리
- 반려동물 건강·생활 기록장
- 여행 준비·짐 목록
- 숏폼 콘텐츠 제작 도우미
- 사진 정리 챌린지
- 걷기 미션·동네 탐험
- 집안 물건·보증기간 관리
사업성 수치를 억지로 붙이지 않고 내가 혼자 첫 버전을 만들고 반복 사용을 관찰할 수 있는지를 비교했다.
| 선택 기준 | 판단 질문 | 꼬리노트에서 확인할 것 |
|---|---|---|
| 문제의 반복성 | 생활 속에서 같은 문제가 다시 생기는가 | 식사·산책·투약·증상 기록이 계속 쌓이는가 |
| 첫 가치까지의 거리 | 긴 설정 없이 바로 쓸 수 있는가 | 반려동물 한 마리를 만들고 첫 기록을 남길 수 있는가 |
| 1인 개발 범위 | 핵심 흐름을 작게 잘라 낼 수 있는가 | 기록을 중심으로 알림과 리포트를 제한적으로 붙일 수 있는가 |
| 재방문 이유 | 누적 기록이 다음 사용을 만드는가 | 지난 변화를 확인하고 새 기록을 남기러 돌아오는가 |
| 수익 경계 | 무료 가치와 유료 편의를 설명할 수 있는가 | 기본 기록은 무료로 두고 광고 제거·공유·장기 리포트를 따로 검증할 수 있는가 |
| 안전·운영 부담 | 잘못된 동작을 통제하며 혼자 운영할 수 있는가 | 의료 판단을 대신하지 않고 투약 기록의 운영 위험을 줄일 수 있는가 |
반려동물 기록장을 고른 이유는 화려한 AI 기능이 아니었다. 보호자는 병원에서 “언제부터 그랬는지”, “약을 언제 먹였는지”, “식사량이나 활동이 어떻게 달라졌는지”를 되짚는다. 메신저, 사진첩, 달력, 메모장에 흩어진 사실을 다시 조립하는 수고를 줄이는 것이 꼬리노트의 출발점이다.
사용자 문제에서 MVP까지
MVP는 기록을 중심으로 세 기능만 묶는다.
- 기록: 식사, 산책, 배변, 체중, 증상, 투약, 병원 방문을 시간순으로 남긴다.
- 알림: 사용자가 직접 정한 투약이나 돌봄 일정을 알려 준다.
- 리포트: 선택한 기간의 원기록을 다시 보여 주어 변화 확인과 수의사 상담 준비를 돕는다.
기록 없는 리포트는 그럴듯한 결론만 만들기 쉽고 기록과 연결되지 않은 알림은 일반 할 일 앱과 다르지 않다. 그래서 먼저 반려동물 생성 → 첫 기록 → 다른 날의 반복 기록이라는 최소 순환을 만든다. 알림과 리포트는 이 순환을 돕는 선택 기능이지, 모든 사용자가 반드시 지나야 하는 단계가 아니다.
꼬리노트는 진단·처방·질병 예측을 하지 않는다. “최근 30일 동안 구토가 3회 기록됐다”는 원기록을 재구성할 수 있지만 “이 질환일 가능성이 높다”거나 “용량을 바꾸라”고 말하지 않는다. Apple은 부정확한 정보가 진단·치료에 쓰일 수 있는 의료 앱을 더 엄격히 심사할 수 있으며, 건강 측정 정확도를 주장한다면 근거와 방법을 명확히 공개하도록 한다.[4] 반려동물 기록을 사람의 의료 데이터와 법적으로 같다고 단정하는 대신, 오판의 위해를 줄이기 위해 더 좁은 제품 범위를 택했다.
투약 기능은 진단과 별개의 운영 위험을 다룬다
진단하지 않는다는 문구만으로 투약 기능이 안전해지지는 않는다. 구현할 때 다음 상태와 실패를 따로 다룬다.
- 알림 확인과 복용 완료를 분리한다. 알림을 열거나 닫았다는 사실을 실제 투약으로 기록하지 않는다. 사용자가 완료를 명시한 때만 복용 기록이 생긴다.
- 시간대와 서머타임 변경을 시험한다. 여행, 기기 시간 변경, 서머타임 전환에서 알림이 중복되거나 누락되지 않는지 확인하고, 의심스러운 일정은 다시 확인하게 한다.
- 용량 변경과 삭제의 흔적을 남긴다. 처방 일정이나 용량이 바뀌면 이전 값과 변경 시각을 확인할 수 있게 하거나, 최소한 기존 완료 기록에 영향을 줄 변경을 재확인한다.
- 알림 전달을 보장한다고 쓰지 않는다. 운영체제 설정, 절전, 네트워크, 기기 상태 때문에 알림은 늦거나 누락될 수 있음을 설정 화면과 투약 일정 화면에서 알린다.
- 긴급 상황과 실제 투약 판단은 수의사 지시를 우선한다. 앱의 일정과 기록이 처방전, 수의사의 최신 지시, 긴급 진료 판단을 대신하지 않는다는 경계를 투약 화면 가까이에 둔다.
핵심 사용 흐름과 선택 분기
무료판은 반려동물 1마리의 기본 기록과 타임라인을 제공한다. 핵심 흐름은 수익 기능을 섞지 않고 다음처럼 측정한다.
스토어 페이지 조회
→ 설치
→ 반려동물 생성
→ 첫 기록
→ 다른 날의 반복 기록 / 기록 유지 사용자
활성 사용자는 반려동물을 만들고 첫 기록까지 저장한 사람이다. 기록 유지 사용자는 앱을 열기만 한 사람이 아니라 정해진 기간 안에 서로 다른 날에 기록한 사람이다. 온보딩은 이 흐름을 돕지만 별도의 성공 단계로 강제하지 않는다.
알림, 리포트, 광고, 결제는 공통 흐름 뒤에서 필요할 때 갈라지는 선택 분기다.
첫 기록 또는 반복 기록
├─ 알림 설정 → 알림 확인 / 복용 완료
├─ 리포트 조회 → 원기록으로 돌아가기
├─ 광고 가능 비민감 화면 → 광고 노출 / 닫기 / 신고
└─ 결제 안내 화면 → 구매 시작 → 성공·취소·복원 → 권한 반영
따라서 알림을 설정하지 않거나 리포트를 보지 않은 사용자를 핵심 흐름의 이탈자로 세지 않는다. 결제율이 낮아도 반복 기록이 강하면 상품 구성을 다시 볼 수 있고, 반복 기록 자체가 없으면 광고나 결제 화면부터 다듬지 않는다.
측정 이벤트에는 익명 사용자 식별자, 앱 버전, 이벤트 시각, 최소한의 기록 분류, 결제 결과, 광고 화면 종류 정도만 둔다. 증상 메모 원문, 병원명, 사진, 보호자 메모는 분석 편의를 이유로 그대로 보내지 않는다.
광고와 개인정보의 기준
광고는 비개인화·문맥 기반을 기본값으로 삼고, 투약·병원·증상 기록 흐름에는 두지 않는다. Apple은 민감한 건강·의료 데이터를 표적·행동 광고에 사용하는 것을 허용하지 않으며, 광고 표시와 닫기, 연령 적합성, 부적절한 광고 신고에도 요건을 둔다.[4] 이것이 모든 반려동물 기록을 사람의 건강 데이터와 같게 분류한다는 뜻은 아니다.
여기서 Apple의 의무와 꼬리노트의 자체 원칙을 나눈다.
| 구분 | 적용 기준 |
|---|---|
| Apple 정책에 따른 의무 | 개인정보 수집·이용·제3자 공유·보존·삭제 공개, 필요한 동의와 철회 수단, 광고 표시·닫기·신고 요건을 구현한다. 다른 회사의 앱·웹사이트를 가로질러 사용자를 추적하는 식별자나 데이터를 쓴다면 ATT 적용 여부를 판단하고 필요한 허가 절차를 따른다. |
| 꼬리노트의 자체 원칙 | 반려동물 데이터의 법적 분류와 무관하게 투약·병원·증상 흐름에서 광고를 배제한다. 비개인화·문맥 광고를 기본으로 하고 원기록을 광고 선별에 쓰지 않는다. |
비개인화 광고라는 이름만 믿지 않는다. 광고·분석·오류 보고 SDK마다 기기 식별자, IP 주소, 대략적 위치, 이벤트 이름, 화면 정보, 사용자 속성 등 실제 전송 필드와 목적지를 출시 전에 점검한다. 추적 식별자를 켜는 선택지가 있다면 기본값과 ATT 적용을 함께 검토한다. 앱 안에는 설정 → 개인정보 → 광고 정보처럼 광고 선별에 사용된 정보와 광고 제공자를 확인할 경로를 둔다.
구현 점검표는 다음과 같다.
- 광고·분석·오류 보고·AI SDK별 전송 필드, 목적, 보존, 제3자 제공을 조사했다.
- App Store 개인정보 답변과 앱 안의 개인정보 설명이 실제 전송 내용과 일치한다.
- 광고 선별에 쓰인 정보와 제공자를 앱 안에서 확인할 수 있다.
- 추적 식별자 사용 여부와 ATT 적용 판단을 기록했다.
- 투약·병원·증상 입력 및 확인 화면에는 광고가 없다.
- 광고 닫기와 신고가 동작하고, 신고를 처리할 운영 경로가 있다.
인앱결제는 지속 가치와 비용에 맞춘다
무료 기능을 일부러 못 쓰게 만들어 결제를 유도하지 않는다. 기본 기록이 반복된 뒤에만 다음 후보를 검증한다.
| 상품 후보 | 기능 후보 | 확인할 가치 |
|---|---|---|
| 일회성 구매 | 광고 제거, 초기 고급 기능 | 지속 비용 없이 편의를 원하는가 |
| 구독 | 가족 공유, 동기화·백업, 장기 리포트 | 계속 제공되는 가치에 지불하는가 |
| 사용량 구매 | 선택 기간 AI 요약 | 서버 비용이 드는 선택 기능을 쓰는가 |
앱 안의 기능을 유료로 여는 설계에는 App Review Guideline 3.1.1의 인앱결제 원칙을 적용하되, 대상 스토어와 앱 유형, 계약, 예외는 출시 직전에 다시 확인한다.[4] 상품 유형은 Apple이 꼬리노트에 확정해 준 것이 아니라 현재 설계 후보일 뿐이다.
인앱결제로 산 크레딧이나 통화에는 만료를 두지 않는다. 구독 기간에 제공할 사용량은 누적 잔액과 구분되는 기간별 서비스 한도로 설계한다. 저장 잔액인지 기간 한도인지 화면과 서버 기록에서 구분할 수 없다면 상품을 열지 않는다. 구독은 가족 공유나 백업처럼 지속 가치와 운영 비용이 실제로 확인될 때만 사용한다.
수수료도 확정 비율로 미리 계산하지 않는다. App Store Small Business Program은 Developer Program 등록과 별개의 신청·자격 판정이 필요하고, 자격을 갖춘 참여 개발자에게 해당 계약 범위의 수수료율이 적용된다.[5] 현재의 개발자 등록을 이 프로그램 참여로 바꾸어 쓰지 않는다.
공개 수치는 예측값이 아니다
RevenueCat의 2026 보고서에서 조건을 충족한 Health & Fitness 범주의 D35 다운로드 대비 유료 전환 앱별 중앙값은 2.9%였다.[6] 이 표본은 2025년을 주된 기간으로 삼고, RevenueCat으로 구독을 관리하며 활성 구독 매출과 최소 설치 또는 매출 조건을 충족한 앱들이다. App Store 전체나 아직 구독 매출이 없는 신규 반려동물 앱의 무작위 표본이 아니다.
따라서 2.9%를 꼬리노트의 예상 전환율이나 “100명 중 3명이 결제한다”는 확률로 쓰지 않는다. 꼬리노트는 자기 사용자 흐름에서 설치, 반복 기록, 결제 안내 조회, 구매, 권한 반영을 직접 측정한다.
AI도 같은 순서를 따른다. 사용자가 고른 기간의 원기록 요약이나 수의사에게 물어볼 질문 초안은 선택 기능으로 검토할 수 있지만, 기록보다 앞세우지 않는다. 전송 필드와 목적, 보존·삭제를 알리고 동의를 받은 뒤 필요한 범위만 보낸다. 사용할 모델, 입력·출력 한도, 호출 빈도, 실패·재시도율이 정해진 실제 시험 뒤에만 당시 가격으로 비용 기록을 만든다.
출시 전 측정 계약
1. 모집과 관찰 기간
- 모집 마감: 출시 후 30일 또는 활성 사용자 100명 도달 중 먼저 오는 시점이다.
- 평가 시점: 모집을 마친 즉시 결론 내리지 않고, 마지막으로 들어온 사용자의 14일 관찰이 끝난 뒤 평가한다.
- 표본 부족 처리: 모집 마감 때 활성 사용자가 30명 미만이면 유지 실패로 판정하지 않는다. 결과를 유입·배포 부족으로 분리하고 유입 경로와 스토어 설명부터 점검한다.
- 제품 기준선: 활성 사용자 30명 이상인 집단에서는 활성화 후 14일 안에 서로 다른 3일 이상 기록한 사람의 비율을 계산한다. 이 비율이 30% 이상이어야 핵심 기록 순환이 다음 수익 실험으로 넘어갈 내부 기준을 충족한 것으로 본다. 30%는 업계 평균도 통계적 확정선도 아닌, 출시 전에 정한 꼬리노트의 제품 판단 기준이다.
사용자별 설치일, 활성화일, 앱 버전, 유입 경로를 고정해 본다. 기능을 크게 바꾼 사용자를 같은 집단에 섞지 않는다.
2. 광고 실험
광고는 위 제품 기준선을 충족한 뒤 비민감 화면 한 곳에서만 A/B로 연다.
- 대상은 해당 화면에 실제 도달한 고유 기록 유지 사용자다. 같은 사람이 여러 번 본 광고를 새 표본처럼 세지 않는다.
- 광고 없음과 비개인화·문맥 광고 있음 두 군을 나누고, 첫 배정일부터 각 사용자에게 14일의 고정 관찰 기간을 적용한다.
- 최소 실행 표본은 각 군 25명이다. 이 숫자는 과학적 유의성을 보장하는 계산 결과가 아니라, 첫 제한 실험을 무기한 끌지 않기 위한 운영 기준이다.
- 다음 기록 완료율이 광고 없음 군보다 광고 군에서 10%p 넘게 낮아지면 해당 위치의 광고를 중단한다. 투약·병원·증상 흐름 침범, 닫기 실패, 재현되는 오클릭, 처리할 수 없는 부적절 광고 신고가 하나라도 있으면 수익과 무관하게 중단한다.
- 각 군 25명을 채우지 못하면 “영향 없음”으로 결론 내리지 않는다. 판정 불가로 기록하고 광고 위치를 확대하지 않는다.
광고 요청 수가 아니라 실제 노출, 닫기·신고, 다음 기록 완료를 함께 본다. 수익성은 실제 정산 자료가 생긴 뒤 지원·SDK·서버 비용까지 포함해 계산한다.
3. 결제 안내 실험
결제 안내는 반복 노출 수가 아니라 고유 기록 유지 사용자를 분모로 삼는다.
- 30일 고정 기간 동안 광고 제거와 가족 공유처럼 서로 다른 두 가치 제안을 시험한다.
- 각 제안에 고유 기록 유지 사용자 20명씩, 총 40명이 도달해야 첫 판단을 한다. 한 사람이 여러 번 본 횟수는 더하지 않는다.
- 구매 시작부터 StoreKit 결과, 복원, 권한 반영까지 오류가 없어야 가치 제안을 평가한다. 결제나 복원 오류가 있으면 상품 실패가 아니라 구현 실패로 분리한다.
- 조건을 충족했는데도 구매가 0건이면 같은 묶음을 반복 노출하지 않고, 실제 요청된 가치와 상품 구성을 다시 나눈다.
- 30일 동안 표본을 채우지 못하면 구매 의사 실패로 판정하지 않는다. 유입 부족으로 기록하고 결제 안내 노출을 늘려 수치를 부풀리지 않는다.
4. 피벗과 안전 중단
핵심 기록 기준을 충족하지 못하면 광고와 결제 실험을 시작하지 않는다. 첫 기록까지의 오류를 고치고 두 번의 사용성 개선을 거쳐도 14일 기록 기준이 내부 문턱 아래라면 종합 기록장 범위를 넓히지 않고, 투약 이력이나 병원 상담 준비처럼 한 가지 반복 문제로 좁힌다.
AI 요약이 원기록을 왜곡하거나 진단·투약 변경처럼 읽히는 출력을 한 번이라도 재현하면 외부 공개 전에 차단한다. 비용과 전송 경로를 재현할 수 없을 때도 유료 기능으로 열지 않는다.
이 기준은 실패를 빨리 선언하기 위한 벌점표가 아니다. 반복 기록은 있는데 결제가 없다면 상품 문제이고, 활성 사용자조차 모이지 않으면 유입 문제다. 제품, 유입, 구현, 수익 문제를 분리해서 다음 결정을 내리기 위한 계약이다.
출시 전 최종 점검표
- 반려동물 생성, 첫 기록, 다른 날의 반복 기록이 끝까지 동작한다.
- 알림 확인과 복용 완료가 분리되고, 시간대 변경·중복·누락·용량 변경·삭제를 시험했다.
- 알림 비보장과 수의사 지시 우선 안내가 투약 화면 가까이에 있다.
- 개인정보 삭제·동의 철회와 광고 정보 확인 경로가 동작한다.
- 결제 성공·취소·복원과 서버 권한이 일치한다.
- 앱 정보, 빌드, 개인정보 답변, 인앱결제 상품을 다시 확인한 뒤
Submit for Review한다. - 심사 제출, 심사 중, 심사 통과, 실제 출시, 스토어 노출을 서로 다른 상태로 기록한다.
- 실제 출시 뒤에만 유지, 광고, 결제, 정산 결과를 쓴다.
진행 상태는 수익실험실에도 남길 예정이다. 다음 글에서 “출시했다”고 쓰려면 App Store에서 실제 노출을 확인해야 하고, “매출을 검증했다”고 쓰려면 결제와 정산의 관측값이 있어야 한다.
꼬리노트의 첫 목표는 큰 숫자가 아니다. 한 보호자가 필요한 순간에 지난 기록을 찾고, 다른 날 새 기록을 남기러 돌아오는지 확인하는 것이다. 그 순환이 확인된 뒤에만 제한적 광고와 인앱결제를 실험한다.
Sources
[1] https://developer.apple.com/programs/enroll/ [2] https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-app/ [3] https://developer.apple.com/help/app-store-connect/manage-your-apps-availability/select-an-app-store-version-release-option/ [4] https://developer.apple.com/app-store/review/guidelines/ [5] https://developer.apple.com/app-store/small-business-program/ [6] https://www.revenuecat.com/state-of-subscription-apps/