개발 slecs

백오피스 관리자 매뉴얼 슬라이드 자동 생성으로 갱신 시간 대폭 단축

목차

매뉴얼을 매번 손으로 만드는 건 한계였음

이커머스 백오피스 운영팀에서 신규 기능이 붙을 때마다 관리자 매뉴얼 갱신 요청이 들어왔음. 처음엔 그냥 슬라이드 열어서 캡처 붙이고 화살표 그렸는데, 화면 하나만 바뀌어도 슬라이드 전체를 다시 손봐야 했음. 페이지 60장 넘어간 시점부터는 도저히 답이 없었음.

그래서 설정 파일 하나로 슬라이드를 자동 생성하는 스크립트를 짰음.

구조

핵심은 두 파일로 쪼갰음.

  • generate_from_config: YAML 설정을 읽어서 슬라이드 메타데이터를 만드는 부분
  • generate_pptx: 메타데이터를 받아 실제 슬라이드 객체로 찍어내는 부분

설정과 렌더링을 분리하니 매뉴얼 종류가 늘어도 YAML만 추가하면 됐음. 출퇴근 관리 매뉴얼(PLAN_ATTENDANCE)이 첫 번째 케이스.

slide = prs.slides.add_slide(layout)
slide.shapes.title.text = section["title"]
body = slide.placeholders[1].text_frame
for bullet in section["bullets"]:
    body.add_paragraph().text = bullet

삽질 포인트

문제 원인 해결
한글 폰트 깨짐 기본 레이아웃이 영문 폰트 run 단위로 폰트 강제 지정
캡처 이미지 비율 틀어짐 슬라이드 16:9, 이미지 4:3 비율 유지하며 letterbox 처리
빌드 산출물 형상관리에 올라감 생성된 pptx가 그대로 추적됨 .gitignore에 결과물 패턴 추가

특히 .gitignore 빠뜨려서 한 번 올렸다가 리뷰에서 지적받았음. 자동 생성물은 절대 올리면 안 된다는 걸 다시 새겼음.

얻은 것

  • 매뉴얼 갱신 시간이 반나절 → 5분으로 줄었음
  • 운영팀이 직접 YAML 고쳐서 미리보기까지 돌릴 수 있게 됐음
  • 화면 변경 시 캡처만 교체하면 되니 유지보수 부담이 확 빠졌음

처음엔 "이거 만들 시간에 그냥 슬라이드 짜는 게 빠르지 않나" 싶었는데, 두 번째 매뉴얼부터 본전 뽑았음. 자동화는 두 번 이상 반복될 때 시작하라는 격언이 또 맞았음. 그리고 한 번 틀을 잡아두니 다른 도메인 매뉴얼 요청 들어와도 YAML 한 장이면 끝났음.

다음

댓글 0

첫 댓글 달아줘.