API가 없는 Windows 전용 업무 앱 자동화
언제 쓸까: 내부 앱 벤더가 API를 공개하지 않을 때; Claude가 일일 데이터를 입력해야 할 때.
사전 조건
- 대상 앱이 설치된 Windows 10/11 — 표준 설치
- uvx를 위한 Python 3.10+ — winget install Python.Python.3.12
흐름
-
UI 트리 검사
BookingSystem.exe앱을 실행한 후 메인 창의 UI 트리를 덤프하세요. automation ID를 보고 싶습니다.✓ 복사됨→ 이름 없는 버튼이 아닌 AutomationId가 있는 컨트롤이 트리에 표시됨 -
정상 경로 한 번 수행이제: 새 예약 대화상자를 열고, 고객 'Acme Inc', 날짜 2026-05-12를 입력하고 저장하세요. 마지막에 스크린샷을 찍으세요.✓ 복사됨→ 예약 저장됨; 스크린샷으로 확인
-
일반화하여 반복/work/bookings.csv를 읽으세요. 각 행에 대해 예약 흐름을 반복하세요. 스크린샷을 /work/runs/에 저장하세요.✓ 복사됨→ 각 행이 처리됨; 예약별 스크린샷
결과: CSV에서 재현 가능한 벤더 앱 헤드리스 자동화
함정
- 앱이 커스텀 컨트롤을 사용함 (예: AutomationId가 없는 WinForms ListView) — 고정된 창 위치의 좌표 클릭으로 대체; 취약성을 문서화
- 루프 중간에 모달 대화상자가 포커스를 빼앗음 — send_keys 전에 항상 활성 창을 확인; 예상치 못한 경우 중단