본문 바로가기
튜토리얼

Feature Flag와 A/B 테스트를 위한 Channel 활용법

사용자를 직접 할당하거나 백엔드를 사용해 Capgo의 채널로 피처 플래그와 A/B 테스트를 하는 방법을 알아보세요

채널을 활용한 기능 플래그 및 A/B 테스트 구현 방법 Capgo 블로그 일러스트

Feature Flag와 A/B 테스트를 위한 Channel 활용법

Capgo의 채널 시스템을 사용하면 유저를 세그먼트화하고 기능 접근 권한을 유연하게 제어할 수 있습니다. Capgo 자체에는 플랜 관리나 A/B 테스트 기능이 내장되어 있지 않지만, 채널 할당을 직접 관리함으로써 이러한 기능을 구현할 수 있습니다.

채널 이해하기

Capgo의 채널을 사용하면 다음을 할 수 있습니다:

  • 특정 사용자 그룹을 대상으로 다른 기능 제공
  • 사용자를 다른 채널에 할당해 A/B 테스트 실행
  • 새 기능을 점진적으로 배포
  • 베타 테스트 프로그램 구축

채널 할당 방식

보안 측면에서 더 권장되는 방식입니다. 다음 과정을 포함합니다:

  1. updater에서 device ID 가져오기
  2. 백엔드로 ID 전송하기
  3. 백엔드에서 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)
}

백엔드 구현

백엔드에서 수행할 작업:

  1. Capgo 대시보드에서 API 키 가져오기
  2. Capgo API를 호출하여 디바이스를 채널에 할당

API 키를 가져오는 방법:

  1. Capgo 대시보드에 로그인
  2. Settings > API Keys로 이동
  3. “Generate New Key” 클릭
  4. 선택 all 기기 및 채널 관리 모드
  5. 생성된 키를 복사하여 백엔드 환경 변수에 안전하게 저장하세요
    • 키는 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
  }
}

백엔드에서도 다음을 처리해야 합니다:

  • 사용자 권한 검증
  • 모든 채널 할당 로그 기록
  • Rate limiting 처리
  • 할당 실패 시 재시도 로직 구현

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 대시보드에서 이 기능을 활성화해야 합니다:

  1. Capgo 대시보드의 Channels 섹션으로 이동합니다
  2. 관리하려는 채널 이름을 클릭합니다
  3. 채널 설정에서 “Allow devices to self associate”를 활성화합니다
  4. 변경 사항 저장

이 설정이 false인 경우, 다음을 호출하려는 모든 시도는 setChannel 이 채널을 사용할 때 실패하게 됩니다.

Feature Flags 구현하기

채널을 사용하여 기능 접근 권한을 제어하세요:

const isFeatureEnabled = async (feature: string) => {
  // Example: Check if user is in beta channel
  const channel = await getCurrentChannel()
  return channel === 'beta'
}

A/B 테스트 구현하기

사용자를 서로 다른 채널에 할당하여 A/B 테스트를 실행하세요:

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
}

모범 사례

  1. 백엔드 할당 방식 사용: 프로덕션 환경에서는 항상 백엔드 할당 방식을 사용하세요
  2. 일관된 할당: 일관된 채널 할당을 위해 user ID 또는 안정적인 식별자를 사용하세요
  3. 모니터링: 각 채널별 기능 사용량 및 성능 지표를 추적하세요
  4. 단계적 배포: 소규모 사용자 세그먼트로 시작하여 점진적으로 확장하세요
  5. 명확한 문서화: 채널 전략과 목적을 문서로 기록하세요

마치며

Capgo의 채널 시스템을 활용하면 더욱 개인화된 앱 경험을 만들고 A/B 테스트를 진행할 수 있습니다. 프로덕션 환경에서는 더 나은 보안과 제어를 위해 항상 백엔드 할당 방식을 권장합니다.

채널 관리에 대한 자세한 내용은 채널 문서에서 확인하세요.

Feature Flags와 A/B 테스트를 위한 Channels 사용법에서 이어서 보기

사용 중이라면 Feature Flag와 A/B 테스트를 위한 Channel 활용법 채널 라우팅과 단계적 배포를 계획하려면, 다음을 연결하세요: 채널 Channels의 구현 세부 사항은 다음을 참고하세요: 채널 Channels의 구현 세부 사항은 다음을 참고하세요: 채널 Channels의 구현 세부 사항은 다음을 참고하세요: Beta Testing 솔루션 Beta Testing 솔루션의 제품 워크플로우를 위한, 그리고 버전 타겟팅 솔루션 Version Targeting Solution의 제품 워크플로우용.

Capacitor 앱용 Live updates

웹 레이어 버그가 라이브 상태라면, 앱 스토어 승인을 며칠씩 기다리지 말고 Capgo를 통해 수정 사항을 배포하세요. 네이티브 변경 사항은 정상 리뷰 절차를 그대로 따르는 반면, 사용자는 백그라운드에서 업데이트를 받습니다.

블로그 최신 글

Capgo는 정말 프로페셔널한 모바일 앱을 만드는 데 필요한 최고의 인사이트를 제공합니다.