기능 플래그 및 A/B 테스트를 위한 채널 사용 방법
Capgo의 채널 시스템은 사용자와 기능 접근을 제어하는 데 유연한 방법을 제공합니다. Capgo에는 계획 관리나 A/B 테스트 기능이 내장되어 있지 않지만 채널 assignments를 관리하여 이러한 기능을 implement할 수 있습니다.
채널 이해
Channels in Capgo allow you to:
- 특정 사용자 그룹에 다른 기능을 제공
- 사용자를 다른 채널에 assign하여 A/B 테스트를 수행
- 새로운 기능을 점진적으로 출시
- 베타 테스트 프로그램을 생성
채널 assignments 방법
1. 백엔드 assignments (권장)
이 방법은 더 안전합니다. 이 방법은 다음과 같습니다.
- 업데이터에서 기기 ID를 가져옵니다.
- 이를 백엔드에 전송합니다.
- 백엔드에서는 Capgo API을 호출하여 기기를 할당합니다.
이 방법을 구현하는 방법은 다음과 같습니다.
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Get device ID
const getDeviceId = async () => {
const { deviceId } = await CapacitorUpdater.getDeviceId()
return deviceId
}
// Send device ID to your backend
const assignToChannel = async (channel: string) => {
const deviceId = await getDeviceId()
// Your backend will call Capgo API to assign the device
await yourBackend.assignDeviceToChannel(deviceId, channel)
}
백엔드 구현
백엔드는 다음과 같이 해야합니다.
- API 키를 Capgo 대시보드에서 가져와야합니다.
- Capgo API을 호출하여 기기를 채널에 할당해야합니다.
API 키를 가져오는 방법은 다음과 같습니다.
- Log in to your Capgo dashboard
- Go to Settings > API Keys
- 클릭 "새 키 생성"
- 선택
all모드를 선택하여 장치 및 채널 관리 - __CAPGO_KEEP_0__에서 클라이언트 측에 노출되지 않도록 보안적으로 안전한 위치에 키를 복사하고 저장하세요.
- 키는 32자리 16진수 문자열입니다.
- 클라이언트 측 code에서 절대 노출되지 않도록 해야하는 비밀 키입니다.
Node.js 예제:
import axios from 'axios'
const CAPGO_API_KEY = 'your_api_key'
const CAPGO_API_URL = 'https://api.capgo.app'
async function assignDeviceToChannel(deviceId: string, channel: string) {
try {
const response = await axios.post(
`${CAPGO_API_URL}/device`,
{
app_id: 'YOUR_APP_ID',
device_id: deviceId,
channel: channel
},
{
headers: {
'authorization': CAPGO_API_KEY,
'Content-Type': 'application/json'
}
}
)
return response.data
} catch (error) {
console.error('Failed to assign device to channel:', error)
throw error
}
}
백엔드도:
- 사용자의 권한을 검증하세요.
- 채널 할당을 모두 로그하세요.
- 할당 실패 시 재시도 로직을 구현하세요.
- 할당 실패 시 재시도 로직을 구현하세요.
2. 자체 할당 (보안이 낮음)
이 방법은 장치가 직접 채널에 할당할 수 있도록 허용합니다. 테스트에 유용하지만 프로덕션에 적합하지 않습니다.
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Assign device to channel
const assignToChannel = async (channel: string) => {
await CapacitorUpdater.setChannel(channel)
}
// Get current channel
const getCurrentChannel = async () => {
const { channel } = await CapacitorUpdater.getChannel()
return channel
}
사용자가 채널에 자체 할당하기 전에 Capgo 대시보드에서 이 기능을 활성화해야 합니다:
- Capgo 대시보드의 채널 섹션으로 이동하세요
- 관리하고 싶은 채널 이름을 클릭하세요
- 채널 설정에서 "장치가 자체 연관되도록 허용"을 활성화하세요
- 변경 사항을 저장하세요
이 설정이 거짓일 경우, 이 채널을 호출하는 모든 시도는 실패합니다. setChannel 기능 플래그 구현
채널을 사용하여 기능 접근을 제어하세요:
A/B 테스트 구현
const isFeatureEnabled = async (feature: string) => {
// Example: Check if user is in beta channel
const channel = await getCurrentChannel()
return channel === 'beta'
}
__CAPGO_KEEP_0__ 대시보드에서 이 기능을 활성화해야 합니다:
Run A/B tests by assigning users to different channels:
const assignToABTest = async (userId: string) => {
// Use consistent hashing to assign users
const hash = await hashUserId(userId)
const variant = hash % 2 === 0 ? 'variant-a' : 'variant-b'
await assignToChannel(variant)
return variant
}
Best Practices
- 백엔드 assignment 사용: 프로덕션에서 항상 백엔드 assignment 방법 사용
- Consistent Assignment: 사용자 ID 또는 다른 안정적인 식별자 사용하여 일관된 채널 assignment
- 모니터링: 각 채널에 대한 기능 사용량 및 성능 지표 추적
- Gradual Rollouts: 작은 사용자 세그먼트에서 시작하여 점진적으로 확장
- Clear Documentation: 채널 전략과 목적을 문서화
결론
Capgo 채널 시스템을 활용하여 더 개인화된 앱 경험을 만들고 A/B 테스트를 수행할 수 있습니다. 프로덕션 환경에서는 보다 안전하고 제어할 수 있는 백엔드 할당 방법을 항상 선호하세요.
채널 관리에 대한 자세한 내용은 채널 문서.
기능 플래그 및 A/B 테스트를 위한 채널 사용 방법에서 계속하세요.
기능 플래그 및 A/B 테스트를 위한 채널 사용 방법 __CAPGO_KEEP_0__ 채널 라우팅과 스테이지드 롤아웃을 계획하고 연결하려면 채널 채널 채널 채널 __CAPGO_KEEP_0__ 채널 라우팅과 스테이지드 롤아웃을 계획하고 연결하려면 채널 채널의 구현 세부 정보를 위해 베타 테스트 솔루션 베타 테스트 솔루션의 제품 워크플로우를 위해 버전 대상 솔루션 버전 대상 솔루션의 제품 워크플로우를 위해