Vision Models를 버림으로써 AI 테스트 자동화 비용을 300배 절감한 방법
요약
Vision Models를 활용한 AI 테스트 자동화 과정에서 발생하는 높은 API 비용 문제를 해결하기 위해, 스크린샷 대신 DOM 트리의 구조화된 텍스트를 사용하는 'deep-test' 프레임워크를 구축했습니다. 이를 통해 테스트 단계당 비용을 $0.011에서 $0.00004로 낮추며 약 300배의 비용 절감 효과를 달였습니다.
핵심 포인트
- Vision Models는 웹 테스트 시 이미 DOM 트리에 존재하는 정보를 픽셀 데이터로 중복 처리하여 높은 비용을 발생시킴
- 스크린샷 대신 구조화된 텍스트(DOM 트리)를 활용하면 멀티모달 모델 없이도 정확한 상호작용 가능
- DeepSeek V4와 같은 텍스트 기반 LLM을 활용하여 테스트 자동화 비용을 300배 최적화 가능
- 효율적인 AI 에이전트 설계를 위해서는 데이터의 중복성을 파악하고 적절한 입력 형식을 선택하는 것이 중요함
단계당 $0.011에서 $0.00004로 Vision Models를 버리고 AI 테스트 자동화 비용을 300배 절감했습니다 — 대부분의 웹 테스트에 Vision Models가 과하다는 것을 어떻게 깨달았는지, 그리고 대신 무엇을 구축했는지 소개합니다. 시작은 월 $400의 API 청구서였습니다 (네, USD 기준입니다. 저는 중국에 있지만, 어떤 통화든 똑같은 고통을 느끼실 겁니다). 저는 Midscene.js와 Qwen-VL Vision Models를 기반으로 구축된 AI 기반 테스트 자동화 플랫폼을 운영하고 있었습니다. 테스트 단계마다 전체 페이지 스크린샷을 멀티모달 LLM (Multimodal LLM)에 전송해야 했고, 단계당 약 $0.011를 지불해야 했습니다. 50단계로 구성된 테스트 케이스 하나에 약 $0.55가 들었습니다. 이를 매일 실행한다면? 월 $16.50입니다. 여기에 몇 가지 테스트 시나리오를 더 추가하자, 갑자기 커피값보다 API 호출 비용에 더 많은 돈을 쓰고 있는 저를 발견했습니다. 그리고 가장 최악인 점은 무엇이었을까요? 그 스크린샷 대부분에는 제가 이미 무료로 가지고 있는 정보가 포함되어 있었다는 것입니다.
저에게 교훈을 준 플랫폼: 먼저 간단한 배경 설명을 드리겠습니다. 저는 풀스택 테스트 자동화 관리 시스템인 ai-test-platform을 구축했습니다:
- Frontend: Vue 3 + ElementUI Plus
- Backend: Express + Node.js + MySQL
- Test engine: Midscene.js 1.5.2 + Playwright + Qwen-VL
테스트 케이스, 보고서 및 모델을 위한 관리 UI를 갖춘 Docker화된 시스템입니다.
잘 작동했습니다. 아름다운 보고서, 깔끔한 UI, 쉬운 테스트 관리까지. 심지어 Docker Hub (xulingfeng/ai-test-platform:latest)에도 배포했습니다. 하지만 테스트를 실행할 때마다 동전이 떨어지는 소리가 들리는 것 같았습니다. 여기저기서 $0.011씩 빠져나갔습니다. 29단계의 의사 온보딩 (doctor-onboarding) 흐름은 $0.32가 들었습니다. 하루에 여러 번 테스트를 실행하는 1인 QA 엔지니어에게 이는 빠르게 누적되는 비용이었습니다.
깨달음의 순간: 어느 오후, 테스트가 실행되는 것을 지켜보고 있었습니다. AI가 웹 페이지의 스크린샷을 분석하고 있었는데, 문득 한 가지 사실을 깨달았습니다. AI는 스크린샷에서 45개의 상호작용 가능한 요소 (interactive elements)를 볼 수 있었습니다. 하지만 Playwright는 이미 그 45개 요소를 모두 깔끔한 구조화된 텍스트 (structured text)로 추출해 둔 상태였습니다. 데이터가 이미 DOM 트리 (DOM tree)에 깔끔하게 정리되어 있는데, 저는 픽셀을 처리하는 데 비용을 지불하고 있었던 것입니다.
비전 모델 (Vision model)에게 페이지는 다음과 같이 보입니다: [픽셀 데이터, 렌더링 세부 정보, 색상, 그림자 등이 포함된 스크린샷 이미지...] 그리고 DOM에서는 다음과 같이 보입니다: [0] <input placeholder="Search..." name="q"> [1] <button>Sign in</button> [2] <a>Add new doctor</a> ... AI는 페이지를 "볼" 필요가 없습니다. 구조를 이해하고 무엇을 클릭할지 결정하면 됩니다. 그리고 구조화된 텍스트 (Structured text)는 그 역할을 완벽하게 수행합니다.
300배 최적화: deep-test
저는 순수 텍스트 기반 AI 테스트 프레임워크인 deep-test를 구축했습니다. 아키텍처는 매우 단순합니다:
작업(Task): "로그인 시스템, 제품 검색, 장바구니 담기"
↓
① 상호작용 가능한 요소 추출 (DOM 트리 / uiautomator) (스크린샷 없음. 비전 모델 없음.)
↓
② DeepSeek V4가 구조 분석 + 다음 동작 결정 (~2000 tokens/step × $0.14/M = $0.0001/step)
↓
③ 동작 실행 (Playwright click / ADB tap)
↓
④ 작업이 완료될 때까지 ①로 복귀
비용 비교는 경이로운 수준입니다:
| 방식 | 단계당 비용 | 50단계 테스트 비용 |
|---|---|---|
| Midscene.js + Qwen-VL-Plus | ~$0.011 | ~$0.55 |
| browser-use + Claude | ~$0.10 | ~$5.00 |
| deep-test + DeepSeek V4 | ~$0.00004 | ~$0.002 |
200~300배 더 저렴합니다. 0.55달러가 들던 50단계 테스트가 이제는 1센트 미만으로 수행됩니다.
실제 수치
저는 로그인, 메뉴 탐색, 12개 필드를 가진 새 의사 추가, 결과 확인 등 전체 병원 관리 워크플로우를 실행했습니다. 총 29단계였습니다. 결과는 81.8초, 총 비용 약 $0.001였습니다. 참고로, 이는 비전 기반 방식의 단 한 단계 비용보다도 적은 금액입니다.
잠깐 — 안드로이드 앱은 어떻게 하나요?
여기서부터는 더욱 흥미로워집니다. 안드로이드 앱은 웹 페이지처럼 깔끔한 DOM 트리를 제공할 수 없습니다. 그래서 저는 하이브리드 접근 방식을 추가했습니다:
- uiautomator2를 사용하여 네이티브 UI 트리 추출 (DOM과 마찬가지로 텍스트임)
- UI 트리에 정보가 충분하지 않을 때만 ADB screencap + OCR 사용
- 동일한 DeepSeek V4 결정 엔진 사용 — 입력 소스만 다름
이는 하나의 AI 에이전트가 동일한 아키텍처로 웹과 안드로이드를 모두 처리할 수 있음을 의미합니다.
그리고 저는 앱 내 웹 뷰(WebView)가 표준 자동화 명령을 무시하는 악명 높은 하이브리드 앱 WebView 입력 문제도 해결했습니다. 해결책은 set_text() 대신 uiautomator2.send_keys()를 사용하는 것이었습니다. 이를 알아내는 데 며칠이 걸렸지만, 구현하는 데는 단 한 줄이면 충분했습니다.
제가 배운 점:
대부분의 웹 테스트에 Vision 모델은 과합니다. Vision 모델은 다음과 같은 경우에 훌륭합니다:
- 시각적 회귀 테스트 (Visual regression testing, 레이아웃이 깨졌는가?)
- CAPTCHA 해결
- Canvas/SVG 비중이 높은 애플리케이션
하지만 표준적인 CRUD 작업 — 양식 채우기, 버튼 클릭, 메뉴 탐색 — 에 있어서는 DOM이 이미 당신에게 필요한 모든 정보를 가지고 있습니다. 진정한 최적화는 더 나은 프롬프팅(Prompting)이나 더 똑똑한 AI에 관한 것이 아닙니다. 작업에 적합한 데이터 형식을 선택하는 것에 관한 것입니다.
도구:
두 프로젝트는 아직 공개되지 않았습니다. 실제 운영 중인 의료 애플리케이션의 실제 테스트 데이터를 포함하고 있기 때문입니다. 회사 고유의 콘텐츠를 제거한 후 정제하여 오픈 소스로 공개할 계획입니다. 조기 액세스를 원하시거나 이 접근 방식에 대해 논의하고 싶으시다면 언제든 연락해 주세요.
기술 스택:
- LLM: DeepSeek V4 Flash ($0.14/M input, $0.28/M output)
- 웹 자동화: Playwright
- 안드로이드 자동화: uiautomator2 + ADB
- OCR: EasyOCR (로컬 실행, API 비용 없음)
저는 15년 경력의 테스트 매니저입니다. 좋은 테스트가 엄청난 비용을 들여야 한다고 생각하지 않기 때문에 사이드 프로젝트로 AI 테스트 도구들을 만들어 왔습니다. 이 내용이 공감이 가신다면, 제 툴킷에서 더 실용적인 테스트 프롬프트와 기술들을 공유하고 있습니다: xulingfeng.gumroad.com/l/vkhhq
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기