소개
Skill을 활용한 업무 자동화 방식을 고민하던 중, "건축 허가 승인업무 담당자"의 입장에서 일한다면 어떨지 상상해 보았습니다.
하나의 승인 신청서를 검토할 때마다 법률 규정이나 금액, 일정 등의 정보가 담긴 여러 개의 사내 시스템을 각각 열고, 각각 로그인하고, 데이터를 손으로 모아 문서를 작성하는 과정이 반복될 것입니다. 건 당 30분~1시간이 걸리는 이 과정을 자동화하고 싶었습니다.
목표는 단순했습니다. 신청서 번호 하나만 입력하면 검토 보고서가 자동으로 만들어지는 것.
이 스킬의 이름은 "summary"로 지었습니다.
어떤 도구를 사용했고, 어떻게 활용하셨나요?
Claude Code (CLI) + Playwright MCP
Claude Code에게 스킬 파일을 작성하게 하고, 그 스킬이 매번 실행 지침서 역할을 하도록 구성했습니다. 스킬 외에 실제 데이터를 처리하는 Node.js 스크립트도 함께 만들었습니다.
자동화 흐름:
1. 🙋🏻 스킬 입력 / ex: "summary XXX-XXXXXX(신청서 넘버)"
2. 🤖 신청서 DB → Playwright headless로 접속, 브라우저 안에서 데이터 가져오기
3. 🤖 신청인 관리 시스템 → 동일 방식
4. 🤖 자재 기준표 → 별도 인증 체계라 24시간 캐시로 분리하여 활용 (없으면 사용자가 다운받아 놓은 엑셀 파일 변환)
5. 🤖 세 데이터를 합쳐 Node.js 스크립트로 마크다운 보고서 생성. 파일은 ~/Documents/검토노트/신청서번호.md로 저장
6. 🤖 완성된 문서 자동 오픈
흐름도의 예
결과와 배운 점
생성되는 보고서 구성:
- 신청 개요 (건물 종류, 위치, 규모, 담당자)
- 신청인 현황 및 팀 구성
- 자재 적합성 검토 (기준표 교차 검증, 문제 항목 자동 플래그)
- 허가 기간 산정 (규모별 예상 처리 기간 자동 계산)
- 특수 조건 알림 (위험 지역, 짧은 일정, 특수 공법 등 자동 감지)
항목 목록을 보여주는 웹페이지의 스크린샷
결과:
- 건당 30~60분 → 재실행 시 약 3분으로 단축
- 검토 항목 누락 거의 없음 (자동 교차 검증 덕분)
배운 점:
시스템은 사내 SSO 세션 기반 인증이라 일반 fetch로는 접근이 안 됨
Playwright로 브라우저를 열고 그 안에서 fetch를 호출해야 로그인 세션이 따라감
가장 큰 발견은 "브라우저 세션은 브라우저 안에서만 산다" 는 것입니다.
사내 시스템 대부분이 특수한 세션 인증 방식을 사용해서, 코드에서 직접 데이터를 요청하면 "권한 없음" 오류가 납니다. Playwright로 실제 브라우저를 열고, 그 브라우저 안의 JavaScript로 요청을 보내야 로그인 상태가 유지된 채로 데이터를 가져올 수 있었습니다. 이걸 파악하는 데 가장 오래 걸렸습니다.
시행착오
- 처음엔 코드에서 직접 API를 호출하려 했지만 "권한 없음" 오류 → 브라우저 안에서 호출하는 방식으로 전환
- 브라우저에서 가져온 데이터가 일반 텍스트가 아닌 이상한 형태({0:'a', 1:'b', ...})로 저장되는 현상 발견 → 숫자 순서대로 정렬해서 이어 붙이는 변환 로직 추가
- 자재 기준표 시스템이 별도 로그인 체계라 매번 인증이 필요 → 24시간 캐시로 분리해서 해결
- 최초 실행 시 시스템 3개 모두 로그인이 필요해서 예상보다 훨씬 오래 걸림 → 구조적 한계로 문서화
아직 개선이 필요한 부분:
- 재실행 시에도 약 3분 소요 — 여러 시스템 접속이 순서대로 실행되기 때문. 동시에 실행하도록 개선 가능 여부 확인 필요
- 세션 만료 감지 로직이 단순 (응답이 HTML인지 여부로만 판단) — 더 정교한 감지 필요
- 자재 기준표 캐시 갱신 자동화 (현재는 수동)
- 보고서 포맷 개선 (섹션별 강조, 테이블 정렬)
앞으로의 계획:
- 브라우저 익스텐션으로 전환 — Claude Code를 사용하지 않는 동료들도 쓸 수 있도록 브라우저 익스텐션 형태로 배포할 계획입니다. 다만 현재 방식은 "브라우저 안에서 로그인된 상태로 데이터를 가져오는 것"이 핵심인데, 익스텐션에서는 이 부분을 어떻게 처리할지가 가장 큰 과제입니다. 사내 시스템과의 연결 방식을 익스텐션 환경에 맞게 재설계해야 하며, 현재 이 부분을 고민 중입니다. 혹시 비슷한 경험이 있으신 분의 조언을 구합니다.