웹 서비스를 만들 때는 화면을 완성하는 것만큼 배포 전 흐름을 확인하는 일도 중요합니다. 그런데 페이지가 많아지면 모든 화면을 직접 열어보는 데 시간이 걸리고, 어떤 경로부터 확인할지 정하는 일도 쉽지 않습니다.
특히 여러 외부 서비스의 운영 상태와 장애 이력을 보여주는 ‘VibeStatus’처럼, 서비스별 상태 페이지와 이력 페이지가 반복되는 웹 서비스라면 더욱 그렇습니다. (VibeStatus는 제가 바이브코딩 방식으로 작업한 웹 서비스로, 메이커가 자주 쓰는 서비스의 실시간 상태와 업데이트 소식을 확인할 수 있습니다.)
오늘 소개할 ‘Manta AI’는 URL을 입력하면 웹 서비스를 탐색하고, 페이지와 이동 관계를 정리해 주는 AI 소프트웨어 테스트 에이전트입니다. 자연어로 테스트 계획을 작성하고 실행하는 기능도 제공하는데요. 저는 반복 페이지가 많은 VibeStatus의 공개 영역을 연결해 실제로 어떤 도움을 받을 수 있는지 살펴봤습니다.
사용 전에는 자연어 테스트 계획(Test Plan)을 가장 기대했습니다. 테스트 코드를 직접 작성하지 않고도 핵심 흐름을 확인할 수 있을 것 같았기 때문입니다. 그런데 사용해 보니 자연어 테스트보다 먼저 실행한 탐색(Exploration)과 사이트 인텔리전스(Site Intelligence)가 서비스 구조와 검수 범위를 정리하는 데 더 도움이 됐습니다.
Manta AI 안에서는 별도의 테스트 코드를 작성하지 않았고, 보고된 항목이 실제로 수정이 필요한 문제인지 구분하기 위해 공개 흐름만 ‘Playwright’로 다시 실행하는 방식으로 테스트를 진행해봤습니다. 이번 글에서는 Manta AI의 주요 기능과 실제 결과, 아쉬운 점을 함께 정리해 보겠습니다.
- 사용 전에는 자연어 Test Plan을 가장 기대했지만, 실제로는 Exploration과 Site Intelligence가 서비스 구조와 검수 범위를 파악하는 데 더 도움이 됐습니다.
- Bugs에는 보안 설정 누락과 외부 API·리소스 오류처럼 성격이 다른 항목이 함께 포함돼, 표시된 숫자를 곧바로 실제 버그 수로 보기는 어려웠습니다.
- 자연어 Test Plan은 원하는 흐름을 테스트 절차로 바꿔줬지만, 정상 리디렉션까지 실패로 처리해 허용할 URL 이동과 성공 조건을 구체적으로 적어야 했습니다.
- Manta AI는 테스트를 모두 대신하기보다 검수할 범위와 문제 후보를 먼저 펼쳐 주는 도구에 가까웠으며, 우선순위와 최종 오류 판단은 사람이 맡아야 했습니다.

Manta AI는 크게 두 가지 흐름으로 사용할 수 있습니다. Exploration으로 웹 서비스의 구조와 문제 후보를 먼저 파악한 뒤, 확인이 필요한 사용자 흐름을 자연어 Test Plan으로 만들어 실행하는 방법입니다.이 과정에는 내비게이션 맵(Navigation Map), 인증 영역 확인, UI 변경에 대응하는 셀프 힐링(self-healing)이 활용됩니다.

시작점은 Exploration입니다. 서비스 URL을 입력하고, 운영·스테이징 같은 환경을 지정하면 에이전트가 접근한 범위에서 경로를 탐색하고, 결과 화면에 경로(routes)와 문제 후보(findings)를 표시해줍니다. (다만, 모든 URL을 빠짐없이 수집했다는 의미는 아닙니다. 에이전트가 접근한 범위에서 탐색 가능한 경로와 문제 후보를 다음 단계로 넘겨주는 구조이기 때문입니다.)

Site Intelligence는 Exploration 결과를 서비스 구조 관점에서 정리한 화면입니다. 탐색된 페이지(pages)와 페이지 사이의 이동 관계(flow transitions)를 보여주기 때문에, 반복 페이지의 분포와 사용자 타입(게스트, 회원, 관리자 등)에 따른 영역, 폼·인증 지점의 위치를 파악할 때 참고할 수 있습니다. Navigation Map은 이 구조를 지도 형태로 보여줍니다. Site Intelligence에서 전체 구성과 규모를 파악했다면, Navigation Map에서는 특정 페이지가 어떤 경로와 연결되는지 확인할 수 있습니다.

문제 후보는 Bugs에서 검토할 수 있습니다. 리스트에서 개별 내용을 클릭하면 상세 화면에서 URL, 심각도, 신뢰도, 환경과 재현 절차를 볼 수 있습니다.

특정 사용자 흐름은 자연어로 조건을 요청해 Test Plan으로 실행할 수 있습니다. 저는 홈에서 영어 Stripe 상태 페이지로 이동해 내용을 확인하고 돌아오는 내용을 입력했는데, 8단계의 실행 가능한 테스트 절차를 확인할 수 있었습니다. 테스트 실행(Test Run)을 누르면, 앞서 설정한 Test Plan을 실제 브라우저에서 실행하며, 단계별 통과와 실패 결과를 기록합니다.
2026년 7월 기준 Manta AI는 공식 홈페이지에서 공개 베타(Public Beta)로 운영되고 있습니다. 신용카드 등록 없이 무료로 시작할 수 있으며, 팀 요금은 사용량 기반이라고 안내합니다. 다만, 구체적인 요금과 크레딧(credits) 환산 기준은 공개 화면에서 확인하기 어렵습니다.

어떤 식으로 서비스가 작동하는지 확인하기 위해, Exploration부터 실행했습니다. 'VibeStatus' 서비스를 운영(Production) 환경에 연결했고, 관리자 로그인, 상태 구독 제출, Slack 설치와 외부 링크 이동은 제외했습니다. Exploration을 실행하면 자동으로 Site Intelligence, Navigation Map, Bugs가 기록됩니다.
새 탐색은 17분 45초 동안 진행됐고, 결과 화면에는 466 routes와 12 findings가 표시됐습니다. 실행 전후 잔액 차이로 계산한 크레딧 사용량은 0.79였습니다. (참고로, 가입 시 25 크레딧이 제공됩니다) 이는 기능별 고정 요금이 아니라 이번 실행에서 확인한 차감량으로, 서비스 규모와 탐색 범위에 따라 달라질 수 있습니다.


탐색이 끝난 뒤, Site Intelligence를 열어봤습니다. 총 464 pages와 424 flow transitions가 수집된 것을 확인할 수 있습니다. 서비스별 상태와 이력 페이지처럼 반복되는 경로가 보였고, 게스트와 관리자 영역, 폼과 인증이 필요한 지점도 영역별로 구분돼 있었습니다.

Navigation Map에서는 /en에서 상태 페이지로 이어지는 경로와 /status/*, /en/status/* 형태의 언어별(이 서비스는 한글과 영문이 모두 지원됩니다.) URL이 드러났습니다. /guides/*, /updates/*, /en/data-deletion, /slack/install 같은 경로도 함께 보였는데요. 공개 흐름과 인증·설치 흐름을 나눠 다음 검수 순서를 정할 수 있었습니다.

Bugs의 43 open 중 대표 항목을 직접 열어 실제 응답과 화면을 확인해봤습니다. 대표 사례는 ‘Missing security header’였습니다. 상세 화면에는 URL, 신뢰도 100%, 심각도(Medium), 운영(Production) 환경 등에 대한 정보와 재현 절차가 포함되어 있습니다.
확인해 보니 이 항목은 브라우저가 허용할 콘텐츠 출처를 제한하는 CSP(Content Security Policy)와 관련된 내용이었습니다. 공개 URL 응답에서 Content-Security-Policy 헤더가 보이지 않아 보안 정책을 검토할 개선 후보로 결정할 수 있었습니다.

Manta AI가 콘솔 오류로 표시한 다섯 URL도 Playwright로 다시 실행했습니다. 실행 로그를 확인해 보니, 다섯 페이지 모두 Supabase의 outage-analysis 함수 요청이 HTTP 402 또는 429 응답으로 실패했다는 것을 알 수 있었습니다. Manta AI가 감지한 오류 응답 자체는 다시 확인할 수 있었던 셈입니다.
다만 오류가 발생한 이유와 사용자에게 미친 영향은 별개의 문제였습니다. 429는 일반적으로 요청이 짧은 시간에 몰렸을 때 반환되지만, 이번 함수가 어떤 조건에서 응답했는지는 서버 측 확인이 필요하기 때문입니다. 402 역시 응답 본문이나 서버 로그 없이는 원인을 특정하기 어려웠습니다. 따라서 이 결과만으로 주요 화면이나 사용자 흐름에 문제가 생겼다고 판단할 수는 없었습니다.
외부 파비콘을 불러오지 못해 발생한 404처럼 핵심 기능과 직접 관련이 낮은 항목도 있었습니다. 결국 Bugs에는 실제로 재현되는 응답 오류와 사용자 영향이 낮은 리소스 오류가 함께 포함돼 있었습니다. 수정 티켓으로 옮기기 전에는 오류가 발생한 위치와 사용자 영향, 중복 여부를 기준으로 우선순위를 다시 판단하는 과정이 필요하다고 느낀 순간이었습니다.

다음 조건으로 자연어 Test Plan을 만들었습니다. 게스트로 홈을 열고, 영어 Stripe 상태 페이지로 이동해 상태 콘텐츠를 확인한 뒤 홈으로 돌아오는 흐름입니다. 로그인과 폼 제출, Slack 설치와 외부 링크 이동은 하지 않는 조건도 함께 적었습니다. 다만 /에서 /en으로 이동하는 정상 리디렉션을 허용한다는 조건은 별도로 적지 않았습니다.
Manta AI는 이 요청을 Guest can view Stripe status page and return to home이라는 Test Plan으로 만들었고, 생성된 계획은 총 8단계였습니다.

아쉽게도, 결과는 8단계 중 1단계만 통과한 뒤 실패(Failed)로 끝났습니다. 두 번째 단계에서 Plan이 https://vibestatus.co.kr/를 기대했지만, 실제 브라우저는 https://vibestatus.co.kr/en에 도착했기 때문입니다. 정상적인 리디렉션이었지만, 이번 Test Plan에서는 URL 불일치로 처리됐습니다.
Test Plan이 두 번째 단계에서 중단된 원인이 실제 서비스 오류인지 확인하기 위해, 같은 공개 흐름을 Playwright로 다시 실행했습니다. 홈에 접속하자 /에서 /en으로 정상 이동했고, 영어 Stripe 상태 페이지에서도 현재 상태와 최근 인시던트, 가동 시간 영역이 모두 표시됐습니다. Incidents와 Updates 페이지도 정상적으로 열렸습니다. 실제 사용자 흐름이 중단된 것이 아니라, Test Plan이 정상 리디렉션을 예상하지 못해 실패한 결과라는 것을 알 수 있었습니다.
이번 경험을 통해 자연어 Test Plan은 확인할 흐름을 실행 가능한 절차로 만드는 데는 도움이 되지만, 서비스별 정상 동작까지 모두 알아서 판단하지는 못한다는 점을 알 수 있었습니다. /에서 /en으로 이동해도 성공으로 처리한다는 조건처럼 허용할 URL 변화와 성공 기준을 요청에 구체적으로 적어야 합니다.

반복 페이지가 많아 어디부터 검수할지 정하기 어려운 서비스라면 Manta AI를 초기 탐색에 활용해 볼 수 있습니다. 공개 영역이나 안전한 스테이징 환경에서 먼저 범위를 넓혀 보고, 정상 리디렉션과 인증 전환, 성공 조건을 사전에 정의할 수 있는 팀에도 잘 맞습니다. 다만, 자동 결과를 그대로 확정하지 않고 대표 표본을 골라 직접 재현할 수 있어야 한다는 전제가 붙습니다.
결제·삭제·권한 변경처럼 잘못 실행했을 때 영향이 큰 흐름은 신중하게 적용해야 합니다. 정상적인 인증 전환과 외부 API 오류의 경계를 사전에 명확히 정의하기 어려운 서비스도 마찬가지입니다. Bugs 결과를 재현 없이 바로 수정 티켓으로 옮기거나, 셀프 힐링과 반복 회귀 테스트의 완전 자동화를 기대하는 방식은 이번 테스트 결과만으로 뒷받침하기 어렵기 때문입니다.
이번 테스트에서 가장 현실적이었던 활용 순서는 자동 탐색으로 구조를 펼치고, 사람이 우선순위를 정한 뒤 핵심 흐름만 Test Plan으로 만들고, Bugs의 문제 후보를 재현하는 방식이었습니다.
Manta AI를 사용하기 전에는 자연어 Test Plan을 가장 기대했습니다. 하지만 실제로 더 도움이 된 기능은 Exploration과 Site Intelligence였습니다. 반복되는 상태 페이지와 이동 관계를 펼쳐 보여줘, 서비스 구조와 검수 범위를 파악하는 데 바로 활용할 수 있었기 때문입니다.
Manta AI에 맡길 수 있었던 일은 에이전트가 접근한 페이지와 이동 경로를 모으고, 반복 구조와 문제 후보를 정리하며, 자연어 요청을 테스트 절차로 바꿔 실행하는 단계까지였습니다. 반면, 어떤 경로를 먼저 검수할지, 정상 리디렉션과 실제 실패를 어떻게 구분할지, 외부 API 응답이 사용자에게 영향을 주는지, Bugs 항목의 중복과 중요도를 어떻게 판단할지는 사람의 몫이었습니다.
UI 변경 후 셀프 힐링과 수정 후 반복 회귀 테스트까지는 검증하지 못했지만, 반복 페이지가 많아 검수의 시작점을 잡기 어려운 팀이라면 Manta AI를 서비스 구조와 문제 후보를 먼저 펼쳐 보는 도구로 활용해 볼 수 있을 거라 생각합니다.
<참고>
©️요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.