Engineering
데이터 자동 생성으로 생산성 향상 : Playwright로 3분 걸리던 계약 생성을 30초로!
Scarlet여기어때
2025년 9월 3일
원문에서 보기 ↗안녕하세요 여기어때컴퍼니 QA2팀 스칼렛입니다.
오늘은 제가 Playwright를 활용하여 검증 과정에서 겪었던 비효율을 해소하고, 생산성을 극대화했던 경험을 공유하고자 합니다. 특히, 반복적인 수동 작업에 지쳐있던 분들이라면 이 글이 도움이 될 것이라고 생각합니다.
기능 구현의 배경: ‘입점 계약’ 도입과 번거로움
제가 참여했던 프로젝트는 파트너의 입점 계약 절차를 개선하는 내용이었습니다.
기존에는 ‘내부 관리자 도구의 제휴점 정보’에서 직접 입력할 수 있었지만, 이제는 ‘입점 계약 플랫폼’을 통해서만 입력이 가능 해졌습니다. 이 ‘입점 계약’은 수동으로 생성하거나, 이싸인온(eSignon, 전자계약)을 통해서만 생성할 수 있는데요.
문제는 검증을 위해 필요한 계약 데이터를 수동으로 생성하는 데 있었습니다.
숙소 카테고리 별로 계약 서식도 다르고 계약 내 입력 할 항목들도 많아 계약 한 건을 만드는 데 약 2~3분 정도가 소요되었고, 이는 단순 반복 작업의 연속이었습니다.
이번에는 혼자서 프로젝트를 진행하여 제한된 시간을 효율적으로 활용하는 것이 매우 중요했기 때문에, 이러한 단순 작업을 줄이고 핵심적인 검증 작업에 더 집중하기 위해 데이터 자동 생성에 대해서 고려하게 되었습니다.
왜 Playwright를 통한 자동화였나?
Playwright는 웹 테스트 자동화 도구로 널리 알려져 있지만, 저는 데이터 자동 생성이라는 목표를 위해 이 도구를 선택했습니다. 테스트 자동화와 데이터 생성이라는 목적은 다르지만, Playwright의 강력한 기능들은 데이터 생성 작업에 특히 유용합니다. 제가 Playwright를 선택하게 된 이유는 다음과 같습니다.
- UI 레코딩 및 코드 생성 : Playwright는 코드를 직접 레코딩하고 생성 해주는 기능을 지원합니다. 이는 초기 개발 시간을 단축하고, UI 변경에 따른 유지보수를 더욱 쉽게 만듭니다. 로봇 프레임워크의 키워드 기반 방식은 유연하지만, Playwright의 코드 생성 방식은 직관적인 개발 경험을 제공합니다.
- 빠른 실행 속도 : Playwright는 브라우저와 직접 통신하여 Selenium보다 훨씬 빠르고 안정적으로 동작합니다. 특히 UI 레코딩 기반으로 자동화를 구축했을 때, 빠른 실행 속도는 대량의 데이터를 효율적으로 생성하는 데 필수적입니다.
- 자동 대기(Auto-waiting) : Playwright는 요소가 나타나거나 사라지는 것을 자동으로 기다려주므로 , 타이밍 문제로 인한 불필요한 오류 발생 가능성이 현저히 낮아집니다. 로봇 프레임워크에서 수동으로 기다리는 명령을 추가하는 것보다 훨씬 편리하고 견고합니다.

웹 테스트 자동화 도구인 Selenium 과의 비교
Playwright 이전에는 웹 테스트 자동화 툴로 Selenium을 많이 사용했었는데요.
표로 비교해보았습니다.

→ 저는 테스트 자동화툴과 익숙하지 않았기때문에 초보자가 접근하기 쉬워야했고 codegen 기능을 통한 UI 레코딩 및 코드 생성과 빠른 실행 속도, 높은 안정성이 중요하다고 생각하여 Playwright를 선택하게 되었습니다.
Playwright, 어떻게 활용했나?
저는 Playwright의 UI 레코딩 및 코드 생성 기능 을 활용하여 데이터를 자동으로 생성하기 위한 자동화 기본 틀을 만들었습니다. 하지만 여기서 멈추지 않고, 생성된 코드에 직접 로직을 추가하여 제가 원하는 대로 동작하는 시스템을 구축했습니다.
구체적인 자동화 흐름은 다음과 같았습니다.
- 서버 선택: 테스트 환경에 따라 필요한 서버를 선택하도록 했습니다.
- 숙소 카테고리 선택 : 호텔, 펜션, 캠핑, 홈앤빌라, 모텔 등 다양한 숙소 카테고리를 선택할 수 있도록 했습니다.
- 계약 유형, 사업자 정보 및 정산 주기 입력: 계약의 핵심 정보를 자동으로 입력하도록 구성했습니다.
특히, 이 단계에서는 숙소 카테고리 및 계약 유형에 따라 입력해야 하는 값이 달라지는 조건들을 모두 고려하여 설계했습니다.
예를 들면 호텔의 경우는 정산주기를 선택할 수 있지만 모텔의 경우는 선택할 수 없기때문에 처음에 호텔을 선택했다면 정산주기를 입력받고 모텔을 선택했다면 정산주기 입력은 받지 않습니다.
또한 계약서 항목 내 검증에 영향을 끼치지 않는 항목의 경우는 고정값을 입력하여 입력받는 시간을 줄였습니다.
덕분에 제가 원하는 계약 정보를 입력하면, 이 정보에 맞춰 자동으로 계약이 생성되었습니다.

Playwright 자동화로 얻게 된 효과
Playwright를 통한 계약 생성 자동화는 다음과 같은 긍정적인 효과를 가져왔습니다.
- 빠른 숙소 카테고리별 입점 계약 생성: 이싸인온에서 펜션, 캠핑 등 카테고리별 입점 계약 생성이 훨씬 빠르고 효율적으로 가능해졌습니다. 기존 2~3분씩 걸리던 계약 생성 시간을 30초 로 대폭 단축시킬 수 있었습니다. 사실상 몇가지 정보만 입력하면 이후에는 자동으로 데이터를 생성해주기때문에 정보입력하는 시간인 15초만 투자를 하면 데이터 생성이 가능했습니다.
- 누구나 쉽게 계약 생성 가능: 입점 계약 생성 프로세스를 잘 알지 못하는 사람도 계약 정보만 있다면 계약서를 자동으로 생성할 수 있게 되어, 초보자도 쉽게 검증 작업에 참여할 수 있게 되었습니다.
- 검증에 더 집중: 단순 반복 작업을 줄여 핵심적인 검증 작업에 더 많은 시간과 에너지를 투자할 수 있게 되었습니다.
앞으로의 고민과 방향
물론, 구축한 데이터 자동 생성 기능이 항상 완벽하게 동작하는 것은 아닙니다. 현재 Playwright 기반 UI 자동화 과정에서 요소 선택의 불안정성이 간혹 발생하여 (약 10번 중 1~2회) 추가적인 개선이 필요합니다.
또한, 단일 데이터 생성을 넘어 동시에 여러 데이터 생성할 수 있는 방안을 모색하여 더욱 효율적이고 빠른 데이터 생성을 목표로 하고자 합니다.
궁극적으로는 이러한 경험을 바탕으로 데이터 자동 생성 코드를 지속적으로 고도화하여, 더욱 견고하고 효율적인 검증 환경을 구축하는 것이 저의 목표입니다. 이는 단순 반복 업무를 넘어, QA가 본연의 역할인 검증에 보다 더 집중할 수 있도록 돕는 중요한 역할을 할 것입니다.

마무리하며
Playwright를 활용한 데이터 자동 생성 기능은 저에게 단순한 시간 절약 그 이상이었습니다. 반복적인 업무에서 벗어나 생산성을 높이고, 더 중요한 업무에 집중할 수 있도록 도와주었습니다.
계약 데이터 자동 생성을 시작으로 제휴점 생성, 예약 데이터 생성 등 반복적인 수동작업이 필요한 영역에도 작업을 진행했으며 이를 활용하여 업무에 도입 할 예정입니다.
여러분도 혹시 반복적인 수동 작업에 지쳐있다면, Playwright와 같은 웹 테스트 자동화 도구를 적극적으로 활용해보시는 것을 추천드립니다.