Claude Code로 PDF·이미지·웹툴 자동 만들기 (한글깨짐·에러 해결기)
AI 에이전트의 내용은 결국 자료에서 나온다. 우리 학교는 홍보 브로셔 PDF에 학과·복지·시설 정보가 다 들어 있었다. 그래서 Claude Code로 PDF를 읽고, 거기서 사진과 로고를 자동으로 뽑아냈다. 이 과정에서 만난 한글 깨짐·에러 해결기까지 정리한다.
PDF를 AI가 읽게 만들기
PDF를 그냥 던지면 글자는 읽어도 표·이미지가 섞인 홍보물은 잘 못 읽는다. 그래서 Claude가 택한 방법은 PDF를 페이지별 이미지로 변환해서 보는 것이었다(PyMuPDF 사용). 사람이 스캔본 보듯, AI도 페이지를 이미지로 보게 한 거다.
이렇게 9페이지를 다 읽어서 학과 설명, 취업처, 복지, 동아리, 연락처까지 한 번에 정리됐다. 내가 타이핑할 게 없었다.
교육계획서에서 '추론 근거'를 뽑아내다
홍보물만으론 부족했다. 학생들이 진짜 궁금해할 디테일(통학버스 노선, 동아리 종류, 학생 수, 기숙사 운영)은 175쪽짜리 학교 교육계획서에 있었다. 이 두꺼운 PDF에서 텍스트를 뽑아, 필요한 부분만 골라 MD 지식으로 정리했다. 이게 챗봇이 답할 때 기대는 추론의 근거가 된다. 검색 요약이 아니라 학교 공식 문서를 근거로 깔아주니, AI가 지어낼 여지가 확 줄었다.
로고를 투명 PNG로 뽑아내기
브로셔 안의 학교 교표와 협약형 마크도 그냥 쓰고 싶었다. 처음엔 화면을 네모로 잘랐더니 배경이 그대로 따라와 지저분했다. 그래서 둘로 나눠 처리했다. 협약형 마크는 PDF에 박힌 원본 이미지를 추출해 흰 배경을 투명하게 날렸고, 동그란 교표는 원형 마스크를 씌워 배경을 잘라냈다.
고정 자료를 넘어, 실시간 급식 웹툴까지
PDF·이미지는 한번 넣으면 끝인 고정 자료다. 그런데 "오늘 급식 뭐예요?"는 매일 바뀐다. 이건 자료로 못 박는다. 그래서 교육 당국의 급식 공개 데이터(나이스 API)를 챗봇이 직접 불러오게 붙였다. 학생이 급식을 물으면 그 자리에서 가장 가까운 날짜의 식단을 실시간으로 보여준다. 무료 공개 데이터라 돈도 안 든다.
재밌는 건, 이 급식 코드의 뼈대를 내가 예전에 다른 프로젝트에서 한 번 만들어 둔 게 있었다는 거다. 바이브 코딩을 계속하면 이렇게 이전에 만든 조각이 자산으로 쌓여 다음 도구를 더 빨리 만들게 된다.
여기서부터 한글 깨짐 지옥
문제는 우리 폴더 경로에 한글과 이모지가 섞여 있었다는 거다(예: 2. 개발 💻). 윈도우에서 이게 은근히 사고를 친다.
chcp 65001을 넣어서야 해결됐다.기숙사.jpg 같은 한글 파일 이름을 주소로 만들 때 인코딩을 안 해서였다. 브라우저는 알아서 처리하지만, 명령줄 도구로 확인할 땐 한글을 URL 인코딩해 줘야 했다.한글 파일명이 자꾸 말썽이라, 이미지 파일은 되도록 영문 이름(chatbot.png, og.png)으로 통일하는 쪽으로 정리했다. 사소해 보여도 이게 사고를 확 줄였다.
대화 참여하기