개발 slecs

IAP 로컬 결제 테스트 환경 구축으로 개발 속도 개선

목차

IAP(In-App Purchase) 기능을 개발하고 있었는데, 매번 테스트할 때마다 실제 앱스토어에 연결하거나 사내 스테이징 환경을 거쳐야 하는 불편함이 있었다. 이 흐름을 개선하기 위해 Xcode의 StoreKit Configuration을 프로젝트에 추가했다.

왜 StoreKit Configuration이 필요했나

IAP를 포함한 앱을 개발할 때, 개발자들은 보통 두 가지 문제에 직면한다.

첫째는 테스트 속도다. 실제 결제 흐름을 검증하려면 앱스토어의 샌드박스 환경에 접근해야 하는데, 이 과정이 느리고 복잡하다. 둘째는 팀 간 환경 편차다. 개발자마다 다른 테스트 계정을 쓰거나 로컬 셋업이 다르면, 같은 코드를 실행했는데도 다른 결과가 나올 수 있다. 특히 IAP 같은 신뢰도 높은 기능은 더 그렇다.

StoreKit Configuration은 이런 문제를 해결한다. Xcode 12 이상에서 지원하는 기능으로, 시뮬레이터에서 실제 결제 흐름을 로컬로 테스트할 수 있게 해준다. 앱스토어에 접근할 필요 없이 구매, 구독, 환불 같은 모든 시나리오를 시뮬레이션할 수 있다.

변경된 부분

이번 작업에서는 두 개의 파일을 수정했다:

파일 역할 이번 변경의 의미
Runner.xcscheme Xcode 스킴 설정 시뮬레이터 실행 시 StoreKit Configuration을 자동 로드
Configuration.storekit 상품/가격 정의 IAP 상품 목록, 가격, 구독 정보 등을 로컬에서 정의

Runner.xcscheme 파일은 Xcode의 실행 프로필 설정이다. 이 파일에 StoreKit 설정 경로를 명시해두면, 시뮬레이터가 실행될 때 자동으로 그 설정을 로드한다. 개발자가 매번 수동으로 설정할 필요가 없다는 뜻이다.

Configuration.storekit 파일은 실제 콘텐츠 정의다. 앱에서 판매할 IAP 상품들을 여기에 선언한다. 가격, 수명, 자동갱신 여부 등도 포함된다. 이 파일이 있으면 개발자가 로컬에서 시뮬레이터를 실행했을 때, 실제 앱스토어처럼 그 상품들이 보이고 구매할 수 있다.

개발 속도와 팀 일관성

이 설정을 추가한 후 달라진 점:

  • 테스트 주기 단축 — 구매 흐름 검증이 초 단위로 가능해짐. UI 변경이나 에러 핸들링 수정 검증 시 효과가 크다.
  • 팀원 간 일관성 — 모든 개발자가 같은 Configuration.storekit 파일을 사용하므로, 같은 상품으로 테스트한다. 환경 편차로 인한 문제가 줄어든다.
  • 자동화 기반 마련 — IAP 관련 단위 테스트나 통합 테스트를 나중에 자동화할 수 있다. 수동 테스트에만 의존하지 않아도 된다.

비슷한 상황에서의 일반론

이런 식의 "로컬 테스트 환경 설정"은 결제 기능 외에도 많은 곳에 적용된다:
- 결제 시스템 → StoreKit Configuration
- 푸시 알림 → 로컬 APNs 시뮬레이션
- 권한 기반 기능 → 로컬 Mock 서버
- 오프라인 동기화 → 로컬 데이터베이스 스냅샷

공통점은 외부 서비스 의존성을 로컬로 대체한다는 것이다. 이렇게 하면 개발자는 빠르게 반복할 수 있고, 팀은 일관된 환경에서 작업할 수 있다. 또한 외부 서비스의 한계(배포 시간, 오류율, 계정 관리 복잡성)에서 벗어난다.

회고

이 작업을 하면서 느낀 점은, 작은 환경 설정 변경도 개발 경험에 큰 영향을 미칠 수 있다는 것이다. 코드 자체는 바뀌지 않았지만, 개발자가 기능을 검증하는 속도와 편의성이 확실히 개선됐다.

또한 이런 설정을 공유 가능한 형태로 저장소에 커밋한 것이 중요하다. 개발자가 "내 로컬 머신의 특수 설정"이 아니라, "팀 전체가 사용할 수 있는 공식 설정"으로 만드는 것이다. 이게 일관성을 만들고, 온보딩할 때 신입 개발자도 같은 환경을 5분 안에 갖춘다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.