통합 방법 개요
NetFUNNEL iOS 에이전트는 iOS 애플리케이션에서 트래픽 제어를 적용하기 위한 코드 기반 통합을 지원합니다. 웹 에이전트와 달리 모바일 네이티브 에이전트는 코드 기반 통합만 지원하며, 이는 키 관리 방식에 따라 두 가지 제어 유형으로 나뉩니다:
- 코드 기반 통합 - 기본 제어: 진입 속도 제어 (키를 빠르게 반환)
- 코드 기반 통합 - 구간 제어: 고정된 동시 사용자 수 유지 (구간 종료까지 키 보유)
📄️ 기본 제어 통합
코드 기반 통합을 사용하여 NetFUNNEL iOS 에이전트로 기본 제어를 구현하는 완전한 가이드입니다.
📄️ 구간 제어 통합
코드 기반 통합을 사용하여 NetFUNNEL iOS 에이전트로 구간 제어를 구현하는 완전한 가이드입니다.
코드 기반 통합
하는 일:
- iOS 코드에서 NetFUNNEL 함수를 호출하여 트래픽 제어 적용
- 대기실을 적용할 시점과 위치를 완전히 제어할 수 있음
- 앱 흐름의 특정 지점에서 함수 호출
사용자 경험 (UX):
- 대기실이 필요할 때 네이티브 대기실 UI가 표시됨
- 사용자는 진입이 허용될 때까지 앱에서 대기
- 앱의 디자인 및 흐름과의 원활한 통합
특징:
- 트래픽 제어 타이밍에 대한 정확한 제어
- 네이티브 모바일 UI 경험
- 모바일 앱 및 복잡한 사용자 흐름에 최적
제어 유형 간 주요 차이점:
- 기본 제어 (코드 기반 통합): 진입 속도 제어 (키를 빠르게 반환)
- 구간 제어 (코드 기반 통합): 고정된 동시 사용자 수 유지 (구간 종료까지 키 보유)
제어 유형
코드 기반 통합은 두 가지 제어 유형으로 더 세분화됩니다:
| 제어 유형 | 목적 | 최적 사용 사례 | 키 관리 |
|---|---|---|---|
| 코드 기반 통합 - 기본 제어 | 진입 속도 제어 | 버튼 클릭, API 호출, 뷰 컨트롤러 진입 | 작업 완료 후 키를 빠르게 반환 |
| 코드 기반 통합 - 구간 제어 | 동시 사용자 수 유지 | 다단계 프로세스, 체크아웃 흐름 | 구간 종료까지 키 보유 (전체 프로세스 완료) |
제어 유형 비교
코드 기반 통합 - 기본 제어
하는 일:
- 사용자가 서비스에 진입할 수 있는 속도를 제어
- 각 사용자가 작업을 시작할 때 키를 받음
- 작업이 완료되면 키를 빠르게 반환
- 이전 사용자가 키를 반환한 후에만 다음 사용자가 진입할 수 있음
키 관리: 특정 작업이 완료되면 즉시 키를 반환합니다 (예: 뷰 컨트롤러 로드, API 호출 완료).
사용 사례:
- 버튼 클릭 속도 제한
- API 호출 스로틀링
- 로그인 시도 제어
- 뷰 컨트롤러 진입 보호
예제 흐름:
코드 기반 통합 - 구간 제어
하는 일:
- 특정 구간에서 고정된 수의 동시 사용자 유지
- 사용자는 슬롯이 사용 가능해질 때까지 대기열에서 대기
- 사용자가 전체 구간을 완료할 때까지 키 보유
- 현재 사용자가 구간을 종료할 때만 다음 사용자가 진입
키 관리: 전체 다단계 프로세스 동안 키를 보유하며, 전체 구간/프로세스가 완료될 때만 반환합니다 (예: 체크아웃 완료, 결제 처리 완료).
사용 사례:
- 체크아웃 프로세스 제어
- 결제 흐름 관리
- 다단계 폼 완료
- 리소스 집약적인 작업
예제 흐름:
결정 매트릭스
| 필요 사항 | 권장 제어 유형 | 키 관리 전략 |
|---|---|---|
| "사용자가 버튼을 탭하는 속도를 제한하고 싶습니다" | 기본 제어 (코드 기반 통합) | 빠른 키 반환 - 개별 작업 보호 |
| "동시에 체크아웃할 수 있는 사용자 수를 제한하고 싶습니다" | 구간 제어 (코드 기반 통합) | 체크아웃 완료까지 키 보유 - 동시 사용자 수 제어 |
| "로그인 화면을 보호하고 싶습니다" | 기본 제어 (코드 기반 통합) | 빠른 키 반환 - 간단한 진입 보호 |
| "다단계 프로세스를 제어하고 싶습니다" | 구간 제어 (코드 기반 통합) | 프로세스 완료까지 키 보유 - 점유 유지 |
| "API 호출을 스로틀링하고 싶습니다" | 기본 제어 (코드 기반 통합) | 빠른 키 반환 - 호출당 속도 제한 |
| "결제 처리를 제어하고 싶습니다" | 구간 제어 (코드 기반 통합) | 결제 완료까지 키 보유 - 리소스 관리 |
구현 복잡도
코드 기반 통합 - 기본 제어
- 설정: 간단
- 코드: 최소
- 유지보수: 낮음
- 키 관리: 간단 (빠른 반환)
- 최적 사용 사례: 빠른 구현, 간단한 사용 사례
코드 기반 통합 - 구간 제어
- 설정: 보통
- 코드: 더 복잡
- 유지보수: 중간
- 키 관리: 복잡 (완료까지 보유)
- 최적 사용 사례: 복잡한 워크플로우, 리소스 관리
두 제어 유형을 모두 사용할 수 있나요?
예! 같은 애플리케이션에서 두 제어 유형을 모두 사용할 수 있습니다:
- Swift
- Objective-C
// 로그인을 위한 기본 제어
func handleLogin() {
Netfunnel.shared.nfStart(projectKey: "login_project", segmentKey: "login_segment")
}
// 체크아웃을 위한 구간 제어
func startCheckout() {
Netfunnel.shared.nfStartSection(projectKey: "checkout_project", segmentKey: "checkout_segment")
}
// 로그인을 위한 기본 제어
- (void)handleLogin {
[[Netfunnel shared] nfStartWithProjectKey:@"login_project" segmentKey:@"login_segment"];
}
// 체크아웃을 위한 구간 제어
- (void)startCheckout {
[[Netfunnel shared] nfStartSectionWithProjectKey:@"checkout_project" segmentKey:@"checkout_segment"];
}
일반적인 패턴:
- 진입점(로그인, 주요 기능)에는 기본 제어 (코드 기반 통합) 사용 - 활동 로드 후 빠른 키 반환
- 중요한 프로세스(체크아웃, 결제)에는 구간 제어 (코드 기반 통합) 사용 - 전체 프로세스 완료까지 키 보유
연습 프로젝트 제공
연습할 기본 프로젝트가 필요하신가요? NetFUNNEL SDK 통합 연습을 위한 iOS 애플리케이션 (Single ViewController) 템플릿을 포함한 샘플 프로젝트를 확인하세요.