Bootpay 결제 연동을 위한 iOS Swift SDK 입니다.
Bootpay/
├── Classes/
│ ├── config/
│ │ └── BootpayBuildConfig.swift # SDK 버전 관리
│ ├── constants/
│ │ └── BootpayConstant.swift # CDN URL, 상수 정의
│ ├── models/ # 데이터 모델
│ └── ...
Example/
├── Bootpay/ # 예제 앱
│ ├── BasePaymentController.swift # 결제 공통 베이스
│ ├── PgPaymentController.swift # PG 일반결제
│ ├── TotalPaymentController.swift # 통합결제
│ ├── SubscriptionController.swift # 정기결제
│ ├── AuthenticationController.swift # 본인인증
│ └── ...
CHANGELOG.md # 버전별 변경 기록
SDK 버전을 올릴 때 반드시 다음 파일들을 함께 수정해야 합니다:
// 경로: Bootpay/Classes/config/BootpayBuildConfig.swift
struct BootpayBuildConfig {
static let DEBUG = false
static let VERSION = "4.5.0" // ← SDK 버전 수정
}// 경로: Bootpay/Classes/constants/BootpayConstant.swift
public class BootpayConstant {
public static let CDN_URL = "https://webview.bootpay.co.kr/5.2.2"; // ← CDN 버전 수정
public static let WIDGET_URL = "https://webview.bootpay.co.kr/5.2.2/widget.html" // ← 위젯 URL 버전 수정
}// 경로: CHANGELOG.md
## X.X.X (새 버전)
* 변경사항 1
* 변경사항 2
* ...
## 4.5.0 (이전 버전)
* ...// 경로: Bootpay.podspec
s.version = 'X.X.X' // ← 배포 버전 수정버전을 올릴 때 아래 항목을 확인하세요:
-
BootpayBuildConfig.swift의VERSION수정 -
BootpayConstant.swift의CDN_URL수정 (CDN 버전 변경 시) -
BootpayConstant.swift의WIDGET_URL수정 (CDN 버전 변경 시) -
CHANGELOG.md에 새 버전 변경사항 추가 -
Bootpay.podspec의version수정 (CocoaPods 배포 시)
feat: 새로운 기능 추가
fix: 버그 수정
refactor: 코드 리팩토링
docs: 문서 수정
chore: 빌드, 설정 변경
iOS의 WKWebView는 첫 로딩 시 GPU, Networking, WebContent 프로세스 초기화로 4-6초 지연이 발생합니다.
| API | 설명 |
|---|---|
Bootpay.warmUp() |
WebView 프로세스를 미리 초기화 (AppDelegate에서 호출 권장) |
Bootpay.isWarmedUp |
프리워밍 완료 여부 확인 |
Bootpay.releaseWarmUp() |
프리워밍 리소스 해제 (메모리 부족 시) |
Bootpay/Classes/core/Bootpay.swift
├── warmUp() # 명시적 프리워밍 함수 (line 110)
├── isWarmedUp # 프리워밍 완료 여부 (line 124)
├── releaseWarmUp() # 리소스 해제 (line 88)
├── _autoWarmUp # 자동 프리워밍 (shared/sharedProcessPool 접근 시)
└── prewarmedWebView # 프리워밍용 WebView 인스턴스
Example/Bootpay/AppDelegate.swift에서 Bootpay.warmUp() 호출 예시 확인 가능.
각 결제 타입별로 Controller가 분리되어 있습니다:
| Controller | 용도 | UI 테마 |
|---|---|---|
| PgPaymentController | PG 일반결제 | 상품 상세 페이지 (파란색) |
| TotalPaymentController | 통합결제 | 장바구니/결제 페이지 (초록색) |
| SubscriptionController | 정기결제 | 구독 페이지 (보라색) |
| AuthenticationController | 본인인증 | 인증 페이지 (청록색) |
모든 Controller는 BasePaymentController를 상속받아 공통 기능을 재사용합니다.