Ari.dev

2026.03 - 2026.07

머니터미

토스 미니앱 - 경제·금융 용어 게임화 학습 플랫폼

역할
기획 · 개발 · 운영 (1인)
  • React
  • TypeScript
  • Vite
  • TailwindCSS
  • Supabase
  • Apps in Toss

프로젝트 개요

머니터미는 토스 미니앱으로 출시한 경제 용어 학습 서비스다. 기획·개발·운영을 혼자 맡은 사이드 프로젝트로, 2026-03-25부터 2026-07-22까지 약 4개월간 진행했다. 총 162커밋 중 약 99.4%를 단독으로 작성했다.

React 18 + TypeScript, Vite로 클라이언트를 구성하고 Supabase(PostgreSQL + Auth)로 백엔드를 대체했다. Apps in Toss(@apps-in-toss/web-framework v2.6.1)와 Toss Design System 위에서 동작하는 토스 미니앱이며, 에러 트래킹은 Sentry로 연동했다.

핵심 기능

  • 22개 코스 · 233개 경제 용어 — 카테고리별 코스로 구성한 학습 콘텐츠
  • SM-2 기반 간격반복 복습 — 정답/오답, 힌트 사용 여부를 신호로 복습 주기를 자동 산정
  • 포인트 · 콤보 · 리그 게임화 — 학습 지속을 유도하는 보상 구조
  • 데일리 미션 — 매일 접속해 학습하도록 유도하는 반복 과제

대표 트러블슈팅

1. SM-2 lite 간격반복 알고리즘 자체 구현

  • 문제: 라이브러리 의존 없이, 사용자의 정답/오답과 힌트 사용 여부만으로 다음 복습일을 자동 산정하는 로직이 필요했다.
  • 해결: SM-2 알고리즘을 미니앱 규모에 맞게 축약한 lite 버전으로 직접 구현했다. 정답 여부와 힌트 사용을 복습 간격 조정 신호로 반영해, 별도 학습 데이터나 외부 서비스 없이 개인화된 복습 주기를 산출하도록 했다.
  • 효과: 외부 SRS 라이브러리 없이 복습 스케줄링 기능을 자체 구현으로 확보했다.

2. 알림 발송 방식 선택과 콘솔 검수 대응

  • 문제: 토스 미니앱은 자체 로그인·서버 인프라 없이 동작하므로, 일반적인 푸시 서버를 구축하는 방식으로는 알림을 보낼 수 없었다.
  • 해결: 서버를 직접 운영하는 대신 "토스에게 발송을 요청"하는 방식을 채택했다. 최초 제출 시 발송 시점과 목적이 불명확하다는 사유로 콘솔 검수에서 1차 반려됐고, 발송 시점·목적을 구체적으로 명시하도록 문구를 보강해 재제출 후 통과했다.
  • 효과: 별도 알림 인프라 없이 토스 플랫폼 기능만으로 알림 발송 승인을 받았다.

3. 전체탭 노출 급감 진단

  • 문제: 특정 시점 이후 전체탭 노출이 급감했다.
  • 해결: 처음엔 리텐션 부진을 원인으로 의심했으나, 코호트를 분리해 비교한 결과 리텐션 부진 가설은 반증됐다. 원인을 추적한 결과 신규 출시 앱에 주어지는 초기 노출 부스트가 소진된 것과, 노출 로직이 참조할 핵심 지표를 애초에 설정해두지 않은 것이 실제 원인이었다.
  • 효과: 가설을 검증 없이 대응책으로 옮기지 않고 데이터로 반증한 뒤 원인을 좁혀, 잘못된 방향의 개선 작업을 피할 수 있었다.