디바이스팜 구축 비용 2026, 모바일 테스트 자동화·보안·운영 기준

디바이스팜 구축 비용을 묻는 팀은 대개 실기기 몇 대를 살지부터 계산한다.
하지만 예산을 흔드는 항목은 기기 구매가보다 동시 실행 슬롯, 호스트 장비, 케이블·전원·냉각, 보안 통제, 장애 대응 인력이다.
토스의 네뷸라 사례처럼 실기기를 중앙화하면 팀별 중복 운영을 줄일 수 있지만, 플랫폼 운영 책임도 같이 생긴다.
이 글은 Toss Tech 사례와 AWS Device Farm, Firebase Test Lab, BrowserStack의 공개 가격표를 기준으로 직접 구축과 외부 실기기 클라우드를 비교한다.
- 사내 디바이스팜은 휴대폰 구매비가 아니라 동시 실행 슬롯과 24시간 운영 체계가 비용의 중심이다.
- AWS Device Farm의 무제한 슬롯은 사용 유형과 디바이스 패밀리별 슬롯당 월 $250부터 시작한다.
- Firebase Test Lab은 Blaze에서 물리 기기 시간당 $5, 가상 기기 시간당 $1, Android Device Streaming 추가분 분당 $0.15를 기준으로 공개한다.
- 이 조건이면 사내 구축, 이 경우는 외부 클라우드 유지라는 기준을 PoC 전에 표로 고정해야 한다.
이 글이 필요한 사람
- 모바일 앱 자동화 테스트를 팀별 노트북과 개인 폰에서 중앙 플랫폼으로 옮기려는 QA 리드.
- iOS와 Android 실기기를 CI 파이프라인에 붙이려는 모바일 플랫폼 엔지니어.
- AWS Device Farm, Firebase Test Lab, BrowserStack과 사내 랩 구축비를 비교해야 하는 구매 담당자.
- 금융·커머스 앱처럼 테스트 계정, 개인정보, 결제 흐름 보안 기준이 강한 조직의 보안팀.
- 릴리스 병목은 큰데 외부 실기기 클라우드 월 과금이 계속 커지는 개발 조직.
먼저 결론: 직접 구축은 싸서가 아니라 통제권 때문에 한다
디바이스팜을 직접 만드는 결정은 외부 서비스를 무조건 대체한다는 뜻이 아니다.
외부 실기기 클라우드는 빠르게 시작하고 다양한 기종을 쓰기 좋지만, 장시간 반복 테스트와 사내 보안 정책을 깊게 넣을수록 제약이 생긴다.
사내 구축은 기기, 호스트, 네트워크, 드라이버, 예약 시스템, 보안 통제를 모두 책임져야 한다.
이 조건이면 테스트 실행량이 안정적으로 많고, 보안팀이 기기 통제 기준을 요구하며, 플랫폼팀이 운영 시간을 배정할 수 있을 때 사내 구축을 검토한다.
이 경우는 릴리스 주기가 짧고 기기 커버리지가 자주 바뀌며, 운영 담당자가 없으면 외부 실기기 클라우드가 더 현실적이다.
| 선택지 | 비용 축 | 장점 | 보류 신호 |
|---|---|---|---|
| 외부 실기기 클라우드 | 슬롯·분·월 구독료 | 초기 구축 없이 다양한 기기 접근 | 장시간 반복 테스트가 많아 월 과금이 예측보다 커짐 |
| 사내 디바이스팜 | 기기·호스트·랙·운영 인력 | 보안 통제와 전용 인터페이스를 직접 설계 | 고장 대응과 기기 교체 담당자가 없음 |
| 혼합 방식 | 핵심 기기는 사내, 희귀 기종은 외부 | 상시 회귀와 호환성 테스트를 분리 | 결과 리포트와 계정 정책이 이중화됨 |
| 팀별 소규모 팜 유지 | 팀별 장비와 관리 시간 | 변경 속도가 빠르고 책임이 명확 | 중복 구매와 보안 기준 편차가 커짐 |
공식 가격표 핵심 숫자: 외부 실기기 클라우드 기준선
직접 구축 비용을 계산하려면 먼저 외부 대체 비용을 숫자로 잡아야 한다.
AWS Device Farm은 무제한 테스트와 원격 접근 슬롯을 디바이스 슬롯 단위로 월 $250부터 공개한다.
Firebase Test Lab은 Spark와 Blaze의 무료 한도, 물리 기기와 가상 기기 시간당 요금을 공개한다.
BrowserStack은 팀 플랜의 월 구독 앵커와 30,000개 이상 실기기 클라우드 접근 가치를 공개 가격표에서 제시한다.
| 서비스 | 공개 숫자 | 과금 단위 | 예산 해석 |
|---|---|---|---|
| AWS Device Farm | $250.00/month | 사용 유형·OS 패밀리별 디바이스 슬롯 | 동시 실행 슬롯이 곧 월 고정비 기준 |
| AWS Device Farm | 10 slots 예시 | 100대 테스트도 최대 10대씩 실행 | 총 기기 수보다 동시 실행량을 먼저 산정 |
| Firebase Test Lab Spark | 가상 10회·물리 5회/day | 프로젝트별 무료 테스트 실행량 | 소규모 검증에는 충분하지만 CI 회귀에는 부족 |
| Firebase Test Lab Blaze | 물리 30분·가상 60분/day 무료 | 일별 무료 시간 | 초과분부터 월 과금이 실행 시간에 비례 |
| Firebase Test Lab 초과 | $5/hour physical, $1/hour virtual | 분 단위 반올림 과금 | 물리 기기 장시간 회귀가 빠르게 커짐 |
| Android Device Streaming | 30분/month 무료 후 $0.15/min | 프로젝트별 월 스트리밍 시간 | 원격 디버깅 사용량을 테스트와 별도 관리 |
| BrowserStack | $150/month, $249/month | 연간 결제 기준 팀 플랜 앵커 | 수동 디버깅과 자동화 범위를 분리해 비교 |
토스 네뷸라 사례에서 볼 비용 신호
Toss Tech 글은 디바이스팜을 단순 장비 묶음이 아니라 사내 테스트 플랫폼으로 설명한다.
초기에는 Mac mini 5대와 기기 15대로 시작했고, 이후 100대를 넘어 수백 대 규모를 향해 확장했다고 밝힌다.
네뷸라는 호출 한 번으로 기기를 점유하고 액션을 실행하도록 설계했으며, 서버 계층은 Kafka와 러너로 테스트 실행량을 분산한다.
이 구조의 비용 신호는 명확하다.
- 기기 수가 늘어날수록 예약·점유·반납 상태를 중앙에서 관리해야 한다.
- iOS는 Mac mini 계열 호스트와 Xcode/XCTest 운영 부담이 붙는다.
- Android는 ADB, Linux 호스트, USB 연결 안정성, 화면 미러링 지연을 따로 봐야 한다.
- Appium을 그대로 확장할지 전용 드라이버를 만들지에 따라 개발 인력 비용이 갈린다.
- 보안팀과 정한 기준을 모든 기기에 일괄 적용해야 컴플라이언스 편차가 줄어든다.
Toss Tech 글의 예시 벤치마크에서는 같은 Android 기기에서 네뷸라가 Appium보다 element click p50 52ms 대 702ms, text input 138ms 대 1,377ms를 기록했다고 설명한다.
이 숫자를 그대로 일반화하면 안 되지만, 테스트 시간이 줄어들면 외부 분당 과금과 내부 릴리스 대기 비용이 같이 줄 수 있다는 점은 예산표에 반영해야 한다.
| 항목 | Toss Tech 사례 숫자 | 예산 의미 | 주의 |
|---|---|---|---|
| 초기 규모 | Mac mini 5대, 기기 15대 | 작게 시작해 운영 방식을 검증 가능 | 초기 구성이 곧 최종 아키텍처는 아님 |
| 확장 상태 | 100대 초과, 수백 대 목표 | 기기 교체와 랙 운영이 상시 업무로 전환 | 구매비보다 유지보수 시간이 커짐 |
| 클릭 지연 | 52ms vs 702ms | 반복 액션이 많은 테스트에서 실행 시간 차이 발생 | 환경별 편차가 커 자체 측정 필요 |
| 입력 지연 | 138ms vs 1,377ms | 로그인·폼 테스트의 대기 시간이 비용화됨 | 안정성 우선 설정과 속도 우선 설정을 분리 |
| iOS 미러링 | 60~120fps 목표 설명 | 원격 디버깅 경험이 운영 품질에 영향 | 기술 구현 난도가 높음 |
실무 시나리오 1: 외부 슬롯만 쓰는 12동시 실행팀
모바일팀이 Android와 iOS 합산 12개 동시 실행 슬롯을 월 내내 쓴다고 가정한다.
AWS Device Farm의 슬롯당 월 $250 기준을 단순 적용하면 12슬롯은 월 $3,000이다.
이 금액은 기기 구매, 케이블 교체, 호스트 장애 대응, 랙 전원, 내부 플랫폼 개발 시간을 거의 없애는 대가다.
하지만 테스트가 내부망, 사내 계정, 결제 모의환경, 개인정보 마스킹 규칙에 깊게 묶이면 외부 클라우드만으로 운영하기 어려워진다.
| 월 사용 패턴 | 외부 기준 계산 | 좋은 점 | 위험 |
|---|---|---|---|
| 12 슬롯 상시 회귀 | 12 × $250 = $3,000/month | 예산이 동시 실행량 기준으로 단순 | OS 패밀리와 사용 유형별 슬롯 분리가 필요 |
| 물리 기기 900시간 | 900 × $5 = $4,500/month | Firebase Test Lab 기준으로 시간 기반 비교 가능 | 분 단위 반올림과 무료 한도 소진 확인 필요 |
| 가상 기기 400시간 | 400 × $1 = $400/month | 호환성 스모크 테스트에 적합 | 실기기 센서·카메라·결제 테스트는 한계 |
| 원격 디버깅 600분 초과 | 570 × $0.15 = $85.50 | Android Device Streaming 추가 비용 산정 가능 | 테스트 실행 비용과 따로 관리해야 함 |
실무 시나리오 2: 사내 구축으로 갈 조건
사내 디바이스팜은 월 구독료를 줄이기 위한 선택처럼 보이지만, 실제로는 통제권과 반복 실행량이 핵심이다.
테스트가 매일 수백 회 이상 돌고, 같은 핵심 단말을 계속 재사용하며, 사내망·테스트 계정·보안 예외가 많으면 내부 구축의 의미가 커진다.
이 조건이면 iOS 호스트, Android 호스트, 기기 랙, USB 허브, 전원 안정화, 자동 재부팅, 원격 화면, 계정 초기화를 운영 요구사항으로 잡는다.
이 경우는 월 테스트 시간이 낮거나, 신제품 단말 교체가 잦거나, 보안팀이 외부 테스트 클라우드 사용을 허용하면 혼합 방식이 낫다.
| 사내 구축 항목 | 비용 성격 | 확인 질문 | 누락 시 결과 |
|---|---|---|---|
| 실기기 구매 | 초기 구매 + 24개월 감가 | 핵심 OS·화면·칩셋 조합이 정해졌는가 | 중복 구매와 테스트 커버리지 공백 |
| 호스트 장비 | Mac mini·Linux 서버 + 36개월 감가 | iOS와 Android 호스트 분리 기준이 있는가 | USB 끊김과 병렬 실행 실패 |
| 전원·케이블·허브 | 소모품과 장애 대응 | 케이블 교체 주기와 재부팅 자동화가 있는가 | 원인 모를 테스트 실패 증가 |
| 플랫폼 개발 | 예약·점유·테스트 인터페이스·리포트 개발 인력 | CI와 테스트 코드가 같은 호출 규칙을 쓰는가 | 팀별 예약판과 수동 운영으로 회귀 |
| 보안 통제 | 계정 회수·초기화·로그 감사 | 테스트 계정과 개인정보 반입 기준이 있는가 | 컴플라이언스 예외가 쌓임 |
보안과 컴플라이언스: 중앙화하지 않으면 비용이 숨어든다
모바일 디바이스팜은 실기기를 많이 꽂아두는 일이 아니라 사내 계정과 데이터를 다루는 운영 환경이다.
Toss Tech 글도 기술만큼 보안과 컴플라이언스가 어려웠고, 보안팀과 협력해 기기와 플랫폼 전반에 기준을 적용했다고 설명한다.
금융, 커머스, 헬스케어 앱은 테스트 계정, 인증서, 푸시 식별자, 결제 모의 데이터, 로그 보존 기준이 비용 항목으로 올라와야 한다.
- 테스트 계정은 30일 또는 릴리스 단위로 회수하고 재발급한다.
- 세션 종료 후 앱 데이터, 스크린샷, 로그, 캐시를 지우는 절차를 자동화한다.
- USB 접근, 원격 화면 접근, 기기 점유, 테스트 실행 요청을 감사 로그로 남긴다.
- 실제 개인정보나 실결제 데이터는 기본 반입 금지로 두고 예외 승인만 허용한다.
- 외부 실기기 클라우드를 쓸 때는 업로드 APK, 테스트 계정, 네트워크 접근 범위를 별도 심사한다.
운영 난이도: Appium을 키울지 전용 드라이버를 만들지
Appium은 여러 플랫폼과 언어를 지원하는 범용 자동화 생태계다.
Appium 공식 문서는 Core, Drivers, Clients, Plugins로 구조를 나누고, 대상 플랫폼 드라이버와 언어별 클라이언트를 설치해야 한다고 설명한다.
범용 도구는 빠른 시작에 유리하지만, 특정 조직의 실시간 미러링, 점유 락, 세션 제거, 전용 호출 규칙 요구가 커지면 자체 드라이버 비용이 생긴다.
전용 드라이버는 실행 속도와 통제권을 얻는 대신, Android ADB와 iOS XCTest 변화에 따라 유지보수할 인력이 필요하다.
| 기술 선택 | 초기 비용 | 반복 비용 | 선택 기준 |
|---|---|---|---|
| Appium 확장 | 낮음 | 세션 안정화와 대기 시간 튜닝 | 팀별 자동화 코드가 이미 Appium 중심일 때 |
| 전용 드라이버 | 높음 | OS 변경 대응과 SDK 유지보수 | 원격 조작 지연과 대량 병렬 실행이 병목일 때 |
| 외부 클라우드 SDK | 낮음 | 월 구독·분당 과금·벤더 종속 | 기기 다양성과 빠른 시작이 우선일 때 |
| 혼합 어댑터 | 중간 | 두 실행 경로 리포트 통합 | 사내 핵심 기기와 외부 희귀 기기를 같이 쓸 때 |
도입 전 30일 PoC 체크리스트
디바이스팜 PoC는 장비를 예쁘게 꽂아두는 실험이 아니라 실패율과 운영 시간을 재는 실험이어야 한다.
30일 동안 최소 한 번은 릴리스 주기, 야간 회귀, 보안 초기화, 케이블 장애, OS 업데이트를 겪어봐야 한다.
- 최근 90일 CI 기록에서 모바일 테스트 실행 시간, 실패율, 재시도 횟수를 뽑는다.
- 핵심 단말 10종과 외부 클라우드로만 볼 희귀 단말을 분리한다.
- Android와 iOS를 따로 보고, iOS 호스트 수와 Xcode 버전 고정 정책을 정한다.
- 기기 점유, 반납, 강제 초기화, 화면 미러링, 로그 수집 호출 규칙을 최소 단위로 만든다.
- 테스트 계정 회수, 앱 데이터 삭제, 스크린샷 보관 금지, 감사 로그 정책을 보안팀과 합의한다.
- 외부 서비스 기준 월 비용과 사내 랩 월 감가·운영 시간을 같은 표로 비교한다.
- PoC 종료 시 실패 원인을 기기, 케이블, 호스트, 테스트 코드, 앱 버그, 외부 서비스로 분류한다.
실무 스켈레톤: 월 예산 산정 파일과 비교 코드
아래 예시는 바로 회계 처리에 쓰는 파일이 아니라, 구축 검토 회의에서 빠지는 항목을 막기 위한 검산 스켈레톤이다.
실제 구매가는 단말 기종, 환율, 세금, 계약 할인, 랙 공간, 내부 인건비, 보안 장비 비용을 넣어 다시 계산해야 한다.
# device-farm-budget.yaml
# 목적: 사내 디바이스팜 구축 전 월 고정비, 외부 실기기 클라우드 대체비, 보안 운영비를 같은 표로 검산한다.
# 금액은 2026-07-31 공개 가격표와 내부 구매가를 분리해 입력한다.
context:
target: mobile_qa_device_farm
checked_date: 2026-07-31
owner_team: mobile_platform
security_owner: appsec
currency: USD
capacity_plan:
android_devices: 40
ios_devices: 30
concurrent_test_slots: 12
daily_automation_hours: 8
monthly_business_days: 22
remote_debug_users: 35
external_reference:
aws_device_farm_unmetered_slot_usd_month: 250
firebase_physical_device_usd_hour: 5
firebase_virtual_device_usd_hour: 1
firebase_android_streaming_extra_usd_minute: 0.15
browserstack_team_monthly_anchor_usd: 150
browserstack_team_pro_monthly_anchor_usd: 249
internal_cost_items:
phones_and_tablets:
purchase_cycle_months: 24
spare_ratio: 0.15
owner: qa_lab
host_machines:
mac_hosts_for_ios: true
linux_hosts_for_android: true
amortization_months: 36
lab_operations:
cable_replacement_cycle_months: 6
power_and_cooling_metered: true
rack_space_reserved: true
platform_engineering:
oncall_required: true
release_window_support: true
ci_integration_required: true
security_controls:
test_account_rotation_days: 30
device_wipe_after_session: true
usb_access_logged: true
pii_dataset_allowed: false
approval_gate:
compare_external_slots: true
require_device_inventory: true
require_security_exception_review: true
require_monthly_utilization_report: true
# device_farm_cost_check.py
# 목적: 디바이스팜을 직접 만들지, 외부 실기기 클라우드를 쓸지 월 단위로 비교하는 검산용 스켈레톤이다.
# 실제 구매가는 기종, 환율, 세금, 계약 할인, 보안 장비, 랙 공간, 내부 인건비로 다시 확인한다.
from dataclasses import dataclass
@dataclass
class ExternalSlotPlan:
slots: int
usd_per_slot_month: float
def monthly(self) -> float:
return self.slots * self.usd_per_slot_month
@dataclass
class FirebaseUsagePlan:
physical_hours: float
virtual_hours: float
physical_usd_hour: float = 5.0
virtual_usd_hour: float = 1.0
def monthly(self) -> float:
return self.physical_hours * self.physical_usd_hour + self.virtual_hours * self.virtual_usd_hour
@dataclass
class InternalFarmPlan:
device_amortization: float
host_amortization: float
lab_fixed: float
platform_engineering: float
security_operations: float
def monthly(self) -> float:
return self.device_amortization + self.host_amortization + self.lab_fixed + self.platform_engineering + self.security_operations
aws_reference = ExternalSlotPlan(slots=12, usd_per_slot_month=250)
firebase_reference = FirebaseUsagePlan(physical_hours=900, virtual_hours=400)
internal_reference = InternalFarmPlan(
device_amortization=0,
host_amortization=0,
lab_fixed=0,
platform_engineering=0,
security_operations=0,
)
print('aws_device_farm_usd_month', aws_reference.monthly())
print('firebase_testlab_usd_month', firebase_reference.monthly())
print('internal_farm_known_usd_month', internal_reference.monthly())
도입 보류 신호
디바이스팜은 자동화 테스트를 빠르게 만들지만, 운영 준비가 없으면 또 하나의 불안정한 인프라가 된다.
아래 항목이 많으면 사내 구축을 보류하고 외부 실기기 클라우드나 팀별 소규모 팜 정리부터 시작하는 편이 낫다.
- 테스트 실행량이 월별로 들쭉날쭉해 동시 슬롯 수를 정하기 어렵다.
- 기기 소유자, 케이블 교체자, 호스트 관리자, 보안 승인자가 정해지지 않았다.
- CI 실패가 앱 버그인지 기기 장애인지 분리할 로그 구조가 없다.
- 테스트 계정과 실사용자 데이터 반입 기준이 없다.
- iOS와 Android 운영 책임을 한 명에게 몰아넣고 야간 장애 대응을 기대한다.
- 외부 서비스 가격표와 내부 구축 감가상각을 같은 기간으로 비교하지 않았다.
함께 보면 좋은 글
아래 글은 디바이스팜 구축 비용을 CI/CD, 테스트 자동화, 운영 보안 관점으로 확장할 때 같이 볼 만한 내부 참고 글이다.
자주 묻는 질문
디바이스팜 구축 비용에서 가장 먼저 계산할 항목은 무엇인가요?
실기기 대수가 아니라 동시 실행 슬롯, 호스트 장비, 보안 초기화, 운영 인력 시간을 먼저 계산해야 한다.
외부 실기기 클라우드와 사내 구축 중 무엇이 더 저렴한가요?
사용량이 낮고 기기 다양성이 중요하면 외부 클라우드가 유리하고, 장시간 반복 테스트와 보안 통제가 핵심이면 사내 구축이 검토 대상이다.
Firebase Test Lab만으로 충분한가요?
가상 기기와 소규모 물리 기기 테스트에는 좋지만, 사내 계정과 실시간 원격 디버깅, 전용 기기 점유 정책이 크면 별도 설계가 필요하다.
Appium을 버리고 전용 드라이버를 만들어야 하나요?
아니다.
Appium으로 충분한 조직이 많고, 전용 드라이버는 지연 시간과 세션 구조가 실제 병목으로 확인된 뒤 검토하는 편이 안전하다.
iOS 디바이스팜은 왜 Android보다 어렵나요?
Xcode, XCTest, 호스트 장비, 화면 미러링, USB 연결 정책이 함께 얽혀 있어 Android ADB 중심 운영보다 호스트 관리 부담이 크다.
보안팀은 어떤 항목을 봐야 하나요?
테스트 계정 회수, 개인정보 반입 금지, 앱 데이터 삭제, 스크린샷 보관, 원격 화면 접근 로그, 외부 클라우드 업로드 범위를 봐야 한다.
출처와 확인일
가격, 무료 한도, 기능, OS 지원 범위는 서비스 정책과 계약 조건에 따라 바뀔 수 있다.
아래 공식 문서와 기술 글을 확인한 뒤, 실제 견적서는 환율, 세금, 계약 할인, 내부 인건비 기준으로 다시 계산해야 한다.
- Toss Tech — 토스의 디바이스 팜 만들기 (확인일: 2026-07-31)
- AWS — AWS Device Farm Pricing (확인일: 2026-07-31)
- Firebase — Usage levels, quotas, and pricing for Test Lab (확인일: 2026-07-31)
- BrowserStack — BrowserStack Pricing (확인일: 2026-07-31)
- Apple Developer — Xcode (확인일: 2026-07-31)
- Appium — Appium in a Nutshell (확인일: 2026-07-31)
- Android Developers — Android Debug Bridge (확인일: 2026-07-31)
- Toss Tech — Toss Tech main (확인일: 2026-07-31)
이 글은 일반 정보이며, 최종 구매·보안·법무 판단은 공식 가격표, 영업 견적, 내부 보안 심사, 전문가 검토를 기준으로 해야 한다.






댓글
댓글 쓰기