소개
시도하고자 했던 것과 그 이유
매월 공공기관에 hwpx, xlsx 형식의 보고서를 제출해야 하는데, 너무 단순반복적인 일이라서 정말 자동화가 간절했습니다. 챗GPT, Gemini, Claude로 보고서 작성을 종종 시도해봤었는데, 불과 얼마 전까지만 해도 엑셀이나 한글파일 작성은 오류가 많았습니다. 오류+재작성을 반복하다보면 너무 열받아서 직접 작성하느니만 못했습니다.
금전지출내역서(엑셀): 통장내역에서 수입·지출 내역을 항목별로 엑셀 파일 에 정리
월정기보고서(한글): 당월 활동내역, 방문사진, 기타 보고사항을 담은 한글(.hwpx) 문서
지출증빙(pdf): 통장내역 사진, 영수증
시도 방법
Obsidian에 작업 가이드 MD 파일을 만들어 두고, Claude Code가 그 가이드를 읽고 실행한다.
물론, MD 파일은 샘플 작업하면서, Claude Code가 제작했습니다.
Obsidian (가이드 저장소) Claude Code (실행자)
───────────────────────── ──────────────────
컨택기록 템플릿.md → 컨택기록 MD 생성
금전기록_작업가이드.md → 통장 사진 보고 엑셀 작성
월정기보고서_작업가이드.md → 보고서 작성 실행
1단계: 엑셀 금전지출내역서 작성 (통장 사진 → 엑셀)
통장 사진을 촬영해서 이미지 폴더에 저장하면, Claude Code가 사진을 보고 엑셀 파일에 직접 기록합니다.
통장 사진 촬영 → 이미지 폴더 저장 → Claude Code에게 사진 + 엑셀 제공 → 엑셀 업데이트1) Claude Code에게 요청
"금전기록_작업가이드.md 읽고, 이미지 폴더의 통장 사진 보고 엑셀 업데이트해줘."
2) 잔액 검증
엑셀 업데이트 후 통장 사진의 마지막 잔액과 엑셀 합계를 대조하여 검증
통장 사진 잔액 = 엑셀 합계 → OK
통장 사진 잔액 ≠ 엑셀 합계 → 해당 기간 누락 내역 확인
3) 지출증빙 확인
이미지 폴더에 있는 영수증·지급내역 사진과 엑셀 지출 내역을 대조해서, 누락된 증빙 확인
4) pdf 파일 생성 (이미지 파일 분류 → pdf)
엑셀 작업과 한글 문서 작성이 끝나면 이미지 폴더를 스캔해서 통장사본과 지출증빙 각각 PDF 파일로 자동 생성
이미지 폴더 스캔 → 통장사본 PDF + 지출증빙 PDF생성 파일:
통장사본_기○○_2026년3월.pdf— 통장 사진 전체지출증빙_기○○_2026년3월.pdf— 지출증빙 전체
지출증빙 PDF 페이지 순서 및 파일 규격
A4 사이즈, 150dpi
사방 여백 1.5cm
여백 안에 이미 들어오는 이미지는 크기 조정 없음
PDF 생성 완료 후 사용된 이미지는 이미지/정리완료/ 폴더로 이동
2단계: 월정기보고서 작성 ( → 한글)
1) 한글 파일 HWPX로
지난 주 스터디에서 한글파일은 hwpx로 작업해야 AI가 비교적 잘 읽을 수 있다고 스터디원들이 공유해주셔서, 기존 파일들의 형식을 맞춰 놓고 자동화 작업을 진행했습니다.
클로드 설명
.hwp는 바이너리 포맷이라 Claude Code가 내부 구조를 파악하기 어렵지만,.hwpx는 XML 기반의 ZIP 파일이어서 Python으로 직접 읽고 수정할 수 있습니다.
2) 보고서 기초 데이터 관리
통화 녹음, 사진, 관련자들과 의논한 채팅
컨택기록 폴더를 드라이브에 별도로 모아서 저장
Claude Code는 아직 음성 파일처리는 안된다고 해서 모바일 텍스트 변환하고 OneDrive에 저장하면, Claude Code가 읽어서 컨택기록 MD를 날짜별로 생성해둠.
3) Claude Code가 가이드를 읽고 보고서 작성 실행
"월간작업_가이드.md 읽고 3월 보고서 작업 시작해줘.Claude Code가 하는 일:
가이드 MD 파일을 읽고 작업 순서 파악
컨택기록 MD 파일들을 순서대로 읽어서 내용 파악
전월 HWPX 파일을 복사해서 날짜·금액 수정
활동내역 테이블에서 사진 삽입 스크립트 실행
컨택기록 및 사진 메타속성을 확인해서 날짜 및 시간 입력
4) HWPX 방문 사진 자동 삽입
보고서 형식에 표 안에 사진 삽입은 Python 스크립트로 작업
월정기보고서.hwpx (ZIP)
├── Contents/section0.xml ← 본문 XML (이미지 위치·크기 정보)
├── Contents/content.hpf ← 이미지 등록 목록
└── BinData/image1.png ← 삽입된 이미지 파일
사진 삽입 스크립트 사용법
월정기보고서_사진삽입.py 설정만 매월 수정
# ===설정=== (매월 수정)
HWPX_FILE = "월정기보고서_한○○_2026년4월.hwpx"
BIN_EXT = ".png" # 한○○: ".png" / 기○○: ".PNG"
PHOTOS = [
# (소스파일명, xml_ref, 새ref번호 또는 None)
# xml_ref: binaryItemIDRef 속성값 — 확장자 없이 입력
# None → 기존 슬롯 교체 / 숫자 → 해당 슬롯 뒤에 추가
("20260408_132603.jpg", "image1", None), # image1 슬롯 교체
("20260410_095223.jpg", "image2", None), # image2 슬롯 교체
("20260410_104341.jpg", "image2", 7), # image2 뒤에 image7 추가
]
imgClip 오류 수정
사진이 잘리거나 사이즈가 잘못 들어가는 오류들이 있었는데, 클로드코드가 기존 보고서 형식을 분석해서 좌표 단위 등을 수정합니다.
# 기존 파일 이미지 크기 역산
img.width # → 3968px
xml_imgClip_right # → 297600
# 297600 / 3968 = 75 → imgClip은 px × 75 (96 DPI 기준)
# 이미지 비율 유지, 슬롯 내 최대 크기로 스케일
def _calc_display(w_px, h_px, slot_w, slot_h):
aspect = w_px / h_px
slot_aspect = slot_w / slot_h
if aspect >= slot_aspect:
return slot_w, int(slot_w / aspect)
else:
return int(slot_h * aspect), slot_h
# imgClip: 96 DPI 기준 전체 이미지 (px × 75)
clip_w, clip_h = w_px * 75, h_px * 75결과
매월 약 3시간 이상 걸리던 노가다 작업이 엄청 단축되었습니다.
아주 완벽한 건 아니어서, 조금씩 편집 수정은 있습니다만, 점점 더 개선될 것으로 기대됩니다.
Obsidian에 저장된 작업별 가이드 MD 파일 확인 (각 사람마다 각각의 md 파일)
Claude Code가 프로세스대로 보고서 작성
작성 파일과 이미지 삽입하는 python 파일은 드라이브에 저장
앞으로의 계획
월정기보고서를 이렇게 자동화하고, 월 주요한 이벤트를 md 파일로 기록해두고 연간 보고서나 케이스 발표에 활용하려고 했는데, hwpx 파일이 잘 읽어지니 히스토리 기록이 필요한 일들을 어떻게 효과적으로 기록하면 좋을지 생각해봐야겠습니다.
위스퍼와 오픈클로로 비슷한 것 자동화하신 스터디원 계셨는데, 참고해서 적용해보려고 합니다.