인디 앱을 위한 키워드 디스커버리: 검색, AI 요약, 자동 추적 워치리스트
모르는 앱과는 경쟁할 수 없습니다. 18개국 앱스토어에서 아무 키워드의 Top 50을 검색하고, AI가 경쟁 풍경을 한 문단으로 요약해주고, Pro 워치리스트는 매일 스냅샷으로 1위 변경을 추적합니다. 키워드 검색·AI 요약·앱 상세 패널·워치리스트의 동작 원리와 활용법을 정리했습니다.
모르는 앱과는 경쟁할 수 없습니다.
많은 인디 개발자가 키워드를 감으로 정합니다. 떠오르는 단어 몇 개를 적고, 아이폰 앱스토어에 검색해서 스크롤 한 번 해보고, 괜찮아 보이면 App Store Connect에 입력합니다. 그리고 6개월 뒤 다운로드가 정체되면 이유를 모릅니다.
문제는 키워드 선택이 틀렸다는 게 아닙니다. 진짜 문제는 경쟁 풍경을 한 번도 제대로 본 적이 없다는 점입니다. 100자 키워드 필드는 이미 그 키워드로 노출되고 있는 상위 50개 앱과 싸우는데, 그 앱들이 누구인지 / 얼마에 파는지 / 평점은 어떤지를 모르는 상태에서 입력하는 거죠.
이 문제를 풀기 위해 Apsity에 키워드 검색, AI 요약, Pro 워치리스트를 추가했습니다. 각 기능이 무엇이고, 언제 어떤 걸 쓰는지, 그리고 어떻게 동작하는지 한 글에 정리했습니다.
키워드 검색은 정확히 무엇을 해주나요
대시보드의 /dashboard/keywords 페이지를 열면 기존 "내 키워드" 탭 옆에 "검색" 탭이 새로 생겼습니다. 키워드를 입력하고 국가를 고르면 그 키워드로 지금 앱스토어에서 1~50위에 있는 앱 50개를 즉시 보여줍니다. 별도 설정도 없고, cron 대기도 없고, 추적 등록도 필요 없습니다.
- Top 50 앱 — 앱스토어 검색 순위 그대로
- 국가 셀렉터 — 18개국 지원 (US, KR, JP, GB, DE, FR, CN, TW, BR, MX, IN, ID, RU, CA, AU, ES, IT, NL)
- 행별 메타데이터 — 앱 이름, 개발사, 평점, 리뷰 수, 가격(현지 통화), 장르
- 무료 / 유료 필터 탭 — 카운트와 함께 분리, 보고 싶은 모델만 빠르게 격리
평면 디렉토리가 아니라 두 가지 신호가 더 얹혀있습니다:
- ⭐ 내 앱 — Apsity에 등록한 본인 앱이 결과에 들어있으면 인디고 보더로 강조 표시. 자기 앱이 상위권 경쟁에서 어디쯤 있는지 즉시 보입니다.
- + 트래킹 — 다른 모든 행에 1-클릭 버튼이 붙어있어 누르면 그 앱이 바로 경쟁앱 추적 목록에 추가됩니다. 다음 날 새벽 cron이 돌면서 그 앱의 메타데이터 변화 감지가 자동으로 시작됩니다.
5초 만에 인사이트 — AI 요약
50개 행을 눈으로 훑는 것도 좋지만, 정작 필요한 답은 다릅니다. 이 키워드, 인디가 들어가서 이길 만한가?
Starter / Pro 플랜에서는 검색 응답 직후 Claude가 결과를 한 문단으로 요약해줍니다. 가격 분포 / 평점 분포 / 리뷰 수 / 장르 / 개발사 분포 같은 신호를 보고 한국어 또는 영어 (유저 locale 따라)로 짧게 작성됩니다. 예시:
- "상위 50개 중 87%가 무료, 평점은 4.5~4.8 사이에 밀집. 1~3위는 리뷰 10만+ 짜리 성숙 앱이 차지해 신생 앱은 사회적 증거 격차가 큽니다."
- "장르는 Productivity가 압도적(44/50). 유료 앱은 $4.99 두 개뿐 — 이 키워드가 프리미엄 가격을 허용하는 니치 신호로 추정."
- "Top 10을 한 개발사가 5개 차지. 브랜드 집중도가 높아 차별화 없이 이 키워드를 공략하기는 어려울 가능성."
모델은 claude-sonnet-4-6이고 토큰 한도는 약 1,000 — 마크다운 헤딩 한두 개 포함된 정돈된 한 단락이 나오기 충분하지만 장황하지는 않은 길이입니다. 시스템 프롬프트에서 "분포 설명, 이상치 강조, 추측은 '추정'으로 표기" 룰을 명시해 결과 품질을 고정합니다.
그냥 앱스토어에서 검색하는 것과 뭐가 다른가요
물론 아이폰 앱스토어에 직접 검색하면 비슷한 리스트를 얻을 수 있습니다. 그렇게 해서 못 얻는 것 세 가지:
- 다른 국가 — 앱스토어 앱은 본인 Apple ID에 묶인 스토어프론트만 보여줍니다. 국가 바꾸려면 로그아웃 후 새 계정 만들어야 합니다. Apsity에선 18개국이 한 번에.
- 구조화된 수치 — 앱스토어 UI는 비주류 앱의 정확한 리뷰 수를 숨깁니다. Apsity는 다 노출하니 진입 장벽을 숫자로 비교 가능.
- 지속성 — 앱스토어 검색은 북마크가 안 됩니다. Apsity는 최근 검색을 자동 저장(Free 5개, 유료 무제한)하고, Pro는 워치리스트에 핀 가능.
Pro 워치리스트 — 시장을 자동으로 모니터링
일회성 검색이 답해주는 건 "오늘 이 키워드는 어떤 모습인가"입니다. 정작 성장에 직결되는 질문은 "무엇이 변하고 있는가"입니다. "habit tracker"의 1위 앱이 바뀌었나? "photo editor" 상위 5위에 신규 진입자가 있나? 이건 시계열 데이터 없이는 답할 수 없습니다.
Pro 사용자는 "워치리스트" 탭을 사용할 수 있습니다. 검색을 최대 20개까지 저장하면 매일 17:00 UTC(KST 02:00)에 다음을 자동 수행합니다:
- 저장된 (키워드, 국가) 쌍마다 iTunes Search API로 상위 10개 재조회
- 결과를 watch ID + 타임스탬프로 키된 JSONB 스냅샷으로 저장
- 30일 이상 지난 스냅샷은 자동 삭제 (테이블 무한 증가 방지)
UI는 변화를 다음과 같이 시각화합니다:
- 14일 sparkline — 1위 앱의 순위 변화. 1위가 자주 바뀌면 라인이 출렁이고, 한 앱이 지배하면 1에 평탄하게 박혀있음.
- 1위 변경 배지 — 오늘 1위 앱이 어제와 다르면 카드에 노란 라벨로 표시
- 앱별 순위 변동 — 카드를 펼치면 오늘의 Top 10 각 앱에 ↑3 / ↓2 / NEW (어제 대비) 표시
활용 예시: 새 버티컬에 진입을 고민 중이라면 후보 키워드 3개를 핀하세요. 2주 뒤 14일치 스냅샷이 쌓이면 그 시장이 얼마나 안정적인지, 가격 분포가 시간에 따라 어떻게 움직이는지, 어떤 경쟁사가 계속 등장하는지가 보입니다. 감이 아니라 데이터 기반의 의사결정.
앱 상세 패널 — 한 번 클릭으로 풀 메타데이터
Starter+ 사용자는 결과 행을 클릭하면 우측 슬라이드 패널이 열려서 iTunes Lookup API로 그 앱의 풀 메타를 보여줍니다:
- 아이콘, 이름, 개발사
- 평점 + 리뷰 수 (전체 / 현재 버전)
- 가격 + 콘텐츠 등급
- 버전, 최근 업데이트일, 첫 출시일, 파일 크기
- 장르 태그 + 지원 언어 목록
- 현재 버전의 업데이트 노트 ("What's New")
- 풀 앱 소개문
- App Store 페이지 직접 링크 (스크린샷·리뷰는 거기서)
이 기능이 빠진 동안엔 경쟁사 부제·언어·업데이트 주기를 비교하려면 매번 Apsity를 떠나 아이폰 앱스토어를 켜야 했습니다. 이제 검색 결과 한 클릭 안에서 다 끝납니다.
한도와 어뷰징 방지 설계
Apple iTunes Search / Lookup API는 인증 없이 호출 가능한 공개 API라 어뷰징 방지는 저희가 알아서 해야 합니다. 통제 지점:
- 일일 검색 한도: Free 20/일, Starter 100/일, Pro 무제한. UTC 자정 이후
KeywordSearchHistory행 카운트로 측정 - 국가 화이트리스트: 20개 ISO 코드만 허용, 나머지는 400
- 키워드 길이: 최대 100자
- 플랜 게이팅: AI 요약과 앱 상세는 STARTER+, 워치리스트는 PRO 전용 (20개 제한)
- cron 페이싱: 일일 워치 갱신은 iTunes 호출 사이에 500ms 슬립
저장 측면에서는 KeywordSearchHistory와 KeywordWatch / KeywordWatchSnapshot 모두 Postgres Row Level Security 적용. Prisma는 BYPASSRLS 권한의 postgres 유저로 쓰지만, 향후 클라이언트가 직접 Supabase에 접근할 가능성을 대비한 defense-in-depth 차원입니다.
운영 비용
솔직한 숫자. 검색 1회당:
- iTunes Search API 호출: 무료
- Postgres 기록: 무시할 수준
- 행 클릭 시 앱 lookup (Starter+): 무료
- AI 요약 (Starter+): Anthropic 크레딧 약 $0.001~$0.003 / 응답
cron 워치리스트 갱신은 핀된 watch당 하루 1회 iTunes 호출. Pro 사용자가 20개 핀하면 하루 20회 = 연간 7,300회. iTunes Search는 무료라 실질 비용은 스냅샷 DB 저장 뿐이고, 그것도 30일 자동 정리.
그래서 Free 플랜에 일일 20회 검색을 허용할 수 있었습니다. 한계 비용이 사실상 0이고, 검색 UI를 무료로 푸는 게 AI 요약 (Starter)과 워치리스트 (Pro)로 자연스럽게 funnel이 되니까요.
이번 주에 바로 써먹는 워크플로우
새 앱 출시나 기존 앱 확장 단계에서 실제로 적용할 만한 흐름:
- 후보 키워드 10개를 메모장에 적기 — 본인 앱을 표현할 만한 광범위한 단어들
- Search에 하나씩 돌리기 — 각 키워드의 Top 50 + AI 요약을 보고 무료/유료 비중, 1위와 20위의 평점/리뷰 격차, Top 10에 같은 개발사가 몇 번 나오는지 체크
- 가망 없는 것 빼기 — Top 10이 전부 리뷰 5만+이고 본인은 0에서 시작이면, 그 키워드는 출시용이 아니라 6~12개월 프로젝트
- 살아남은 키워드는 내 앱 키워드에 추가 — 매일 cron이 순위 측정 시작
- 경계선 키워드는 워치리스트에 핀 (Pro) — 2주 스냅샷이면 시장 안정성과 신규 진입자 유무 판단 가능
- 결과에서 진짜 경쟁자처럼 보이는 앱은 1-클릭 트래킹 — 그 앱 부제·릴리스 노트 변경이 다음 날 자동 알림
다음 로드맵
이번 작업 위에 더 얹을 후보들:
- 다중 키워드 교차 비교 — 키워드 2~3개 골라서 겹치는 앱과 순위 차이를 한 화면에
- 경쟁사 갭 분석 — Apsity에 등록된 본인 앱이 검색 결과에 안 나오면 "이 키워드에 노출 안 됨"을 띄우고 공략 여부에 대한 AI 제안
- MCP 노출 — Claude / Cursor 에이전트가 MCP API 키로 검색 엔드포인트 호출 가능하게. "이번 주 신규 진입자가 있는 키워드는?" 같은 자연어 질의에 실시간 응답
이 중 본인 워크플로우에 가장 필요한 게 있다면 서포트 페이지에 있는 이메일로 알려주세요.
지금 사용해보기
Free 플랜에서 일일 20회 검색, 국가 셀렉터, 내 앱 강조, 1-클릭 트래킹 모두 사용 가능합니다. Starter는 AI 요약과 앱 상세 패널 잠금 해제. Pro는 워치리스트와 매일 스냅샷 추가.무료 가입하고 App Store Connect API 키 2분 만에 연결하면 다음 날 새벽부터 첫 키워드 순위 데이터가 보이기 시작합니다.