본문으로 이동
토스의 디바이스 팜 만들기
문서

토스의 디바이스 팜 만들기

차영훈 토스 · 토스 기술 블로그

원문 보기

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 호출 한 번으로 여는 플랫폼을 만들며

비슷한 학습 자료

문서 강연신/안재은/한가영

스스로 만들고 고치는 자동화, 토스닥터 V2를 다시 만든 이야기

소프트웨어 테스트 TDD

문서 이정성

안녕하세요. 토스 QA Platform 팀 리더 이정성입니다. 지난 글에서 저희가 누구이고 무엇을 만들어 왔는지 짧게 소개해 드렸는데요. 오늘은 그 첫 번째 이야기, 저희만의 플랫폼 토션(Tossion)을 소개합니다. "이 기능, 지난번에 테스트 결과 어땠었죠?" QA라면 릴리즈 직전에 이 질문을 한 번쯤 받아 보셨을 겁니다. 저희도 받았고, 답을 드리는 데 시간이 걸리곤 했습니다. 자동화 테스트(Automation Test) 결과, 매뉴얼 테스트(Manual Test) 결과와 테스트 케이스(Test Case) 그리고 각 테스트의 ...

소프트웨어 테스트

문서 토스 QA 플랫폼 팀

빠른 변화가 품질과 함께 흐르도록

소프트웨어 테스트

문서 서소희

“유저 무물 런치" 프로그램을 통해 제품 개발에 유저 감수성을 높인 과정에 대해 알려드릴게요.

UI/UX

문서 정세희

토스 디자인 시스템에서 가장 많이 사용하는 컴포넌트인 테이블 컴포넌트. 문제의 근원을 해결하기 위해 시도했던 다양한 시도와 러닝을 소개합니다.

UI/UX

문서 이지윤

디자이너들도 어떻게 하면 빠른 속도를 내며 전체적인 경험을 맞출 수 있을지 매 순간 고민하고 있어요.

UI/UX