토스의 디바이스 팜 만들기
차영훈 토스 · 토스 기술 블로그
AI 핵심 요약
팀마다 맥북이나 맥미니에 테스트용 폰을 연결해 운영하면서 기기 관리와 보안 대응이 반복되고 규모 확장도 어려웠던 문제를 해결하기 위해, 토스는 실기기를 API 한 번으로 점유하고 제어하는 중앙 디바이스 팜 네뷸라를 만들었습니다. Kafka 기반 테스트 실행과 기기 분산 락, 호스트 에이전트 구조를 갖추고, Appium의 속도·세션 한계를 줄이기 위해 Android는 ADB·UiAutomation, iOS는 Swift·XCTest를 활용한 자체 stateless 드라이버를 개발했습니다. 실시간 조작과 화면 공유를 위해 양 플랫폼의 H.264 미러링을 구현하고, 보안 기준과 무중단 운영 체계를 중앙에서 적용해 기기 15대에서 100대 이상 규모의 전사 공용 인프라로 확장했습니다. 하나의 공개 API를 기반으로 웹 콘솔·SDK·CLI·AI 에이전트 등 활용이 넓어졌으며, 다음 단계로 테스트 환경과 계정 상태를 빠르게 준비하는 기능을 계획하고 있습니다.
- 기기 점유·할당·해제를 분산 락으로 관리하면 여러 테스트가 같은 실기기를 동시에 사용해 충돌하는 일을 막을 수 있습니다.
- 상시 실행되는 컨트롤러에 stateless HTTP 요청을 보내면 세션 생성 비용과 세션 관리 부담을 줄일 수 있습니다.
- Android의 SurfaceControl·MediaCodec과 iOS의 macOS 캡처 기능을 활용해 H.264 미러링 경로를 통일했습니다.
- 중앙화된 인프라는 보안 기준을 모든 기기에 일괄 적용하고, 팀별 중복 운영을 줄이는 데 유리합니다.
- 실기기 팜은 케이블·전원 같은 하드웨어 장애와 프로세스 복구·무중단 배포까지 함께 설계해야 합니다.
소개
팀마다 맥북에 폰을 꽂던 시절을 끝내고, 실기기를 API 호출 한 번으로 여는 플랫폼을 만들며
비슷한 학습 자료
문서 강연신/안재은/한가영
쉼 없이 도는 테스트, 사람이 어디까지 돌봐야 할까요? - 토스닥터(Toss Doctor)
문서 이정성
안녕하세요. 토스 QA Platform 팀 리더 이정성입니다. 지난 글에서 저희가 누구이고 무엇을 만들어 왔는지 짧게 소개해 드렸는데요. 오늘은 그 첫 번째 이야기, 저희만의 플랫폼 토션(Tossion)을 소개합니다. "이 기능, 지난번에 테스트 결과 어땠었죠?" QA라면 릴리즈 직전에 이 질문을 한 번쯤 받아 보셨을 겁니다. 저희도 받았고, 답을 드리는 데 시간이 걸리곤 했습니다. 자동화 테스트(Automation Test) 결과, 매뉴얼 테스트(Manual Test) 결과와 테스트 케이스(Test Case) 그리고 각 테스트의 ...
소프트웨어 테스트
문서 토스 QA 플랫폼 팀
누군가는 토스를 테스트하는 동안, 우리는 테스트하는 법을 만듭니다.
문서 서소희
토스 팀은 점심 시간에 사용자를 만난다
문서 정세희
문제의 근원을 해결 하기 위한 다양한 시도
문서 이지윤