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