개발

RevenueCat으로 인앱결제 구현하기 — Flutter 첫 경험

2026-07-06·1분 읽기
RevenueCat으로 인앱결제 구현하기 — Flutter 첫 경험

iOS에서는 쉬웠는데

Swift로 iOS 앱을 만들 때 인앱결제는 꽤 익숙한 작업이었다. StoreKit API를 쓰면 됐고, 구현 패턴도 정해져 있었다.

그런데 Flutter에서는 달랐다.

Flutter 공식 in_app_purchase 패키지가 있긴 한데, iOS와 Android 양쪽의 인앱결제를 모두 처리하려면 플랫폼별 분기 처리가 필요하고 코드가 복잡해진다. 구독 상품 관리, 영수증 검증, 복원 처리까지 직접 다 짜려면 생각보다 손이 많이 갔다.

RevenueCat을 발견했다

Flutter 인앱결제를 검색하다가 RevenueCat을 발견했다.

RevenueCat은 인앱결제 및 구독 관리를 추상화해주는 플랫폼이다. 핵심은 이렇다.

  • App Store와 Play Store의 상품을 RevenueCat 대시보드에서 한 번에 관리
  • Flutter SDK 하나로 iOS/Android 양쪽 결제 처리
  • 구독 상태, 영수증 검증을 서버에서 자동으로 관리
  • 다양한 분석 지표도 제공

처음에는 "이렇게 편하면 뭔가 제약이 있겠지"라고 생각했는데, 기본 플랜이 무료여서 소규모 앱에는 비용 부담도 없었다.

헤맸던 부분 — 키스토어 설정

RevenueCat 자체보다 오히려 Android 연동 설정에서 헤맸다.

Android에서 앱을 서명하려면 키스토어(keystore)가 필요하다. iOS의 인증서/프로비저닝 프로파일과 비슷한 개념이지만, 관리 방식이 달랐다. 키스토어 파일을 생성하고, build.gradle에 서명 설정을 추가하고, RevenueCat에서 Play Store와 연결하는 과정이 처음이라 문서를 여러 번 왔다 갔다 했다.

iOS 개발자가 Android 생태계를 처음 접할 때 겪는 그 어색함이었다. 용어도 다르고, 도구도 다르고, 방식도 다르다.

결국 다 해결했지만, Android 인앱결제는 또 다른 벽에 막히게 됐다. 그 이야기는 다음 편에서.