토스인컴 세금 환급 서비스 : 빠른 속도에서 품질을 지키기 위한 E2E 자동화 여정
정수호 · 토스 · 토스 기술 블로그
소개
우리는 결심했습니다. "누구나 실행할 수 있고, 언제나 신뢰할 수 있는 자동화 시스템"을 만들자고. 그 핵심은 Functional Page Object Model(POM)이었습니다.
AI 핵심 요약
세금 환급 서비스는 정책과 UI 변화가 잦아 수동으로 35개 이상의 시나리오를 반복 검증하기 어려웠고, 클래스 기반 POM도 상태 관리와 상속 구조 때문에 유지보수 부담이 컸습니다. 이를 해결하기 위해 Playwright 기반 자동화를 Functional POM으로 전환해 페이지 동작을 작은 무상태 함수로 나누고, 화면이 아닌 사용자 여정 단계별로 구성했습니다. 클릭 폴백, 안전한 네트워크 대기, 새 창·리다이렉트 뒤 최신 페이지 재할당, 공제별 독립 함수 등을 공통화하고 HTML 리포트·영상·Slack 알림으로 운영했습니다. 그 결과 자동 검증과 금액 정합성 확인을 지속적으로 실행하고 성능 변화도 추적할 수 있게 됐으며, 단순하고 읽기 쉬운 구조와 QA의 초기 참여가 속도와 품질을 함께 높인다는 점을 배웠습니다.
- 클래스 상속보다 page를 인자로 받고 반환하는 무상태 함수로 UI 동작을 캡슐화하면 테스트 간 상태 의존을 줄일 수 있습니다.
- 파일 경계는 화면 단위보다 로그인·공제·결제처럼 사용자 여정의 단계에 맞추면 책임과 재사용 범위가 분명해집니다.
- networkidle에만 의존하지 말고, 대기 시간 초과를 허용한 뒤 텍스트나 role 같은 UI 앵커로 준비 상태를 확인하세요.
- 새 창이나 리다이렉트 뒤에는 유효한 페이지를 다시 찾아 currentPage를 갱신해야 닫힌 Page 객체를 사용하는 오류를 피할 수 있습니다.
- 테스트 본문에는 비즈니스 시나리오를 남기고, 자주 바뀌는 문구·셀렉터·대기 로직은 POM과 공통 유틸에 모으세요.
비슷한 학습 자료
세금 환급 자동화 : AI-driven UI 테스트 자동화 일지
정수호 · 토스 기술 블로그
토스페이먼츠 결제 시스템 연동을 돕는 MCP 서버 구현기
김용성 · 토스 기술 블로그
프론트엔드 서비스 최적화? 토스에서는 '이렇게' 합니다! | EP.9 모닥불
토스 프론트엔드 챕터 · 토스 기술 블로그
200여개 서비스 모노레포의 파이프라인 최적화
정석호 · 토스 기술 블로그
크고 복잡한 제품, 과감하게 갈아엎기
이지윤 · 토스 기술 블로그
잘 만든 시스템 하나로 미친 효율 얻는 방법
오지은 · 토스 기술 블로그