본문으로 건너뛰기
멍냥잇 — AI & LIFE

멍냥잇 AI 활용 제작 기록 · 가상 데이터로 검증한 실습

AI로 주간 업무보고 PPT 만들기: Gemini 문장과 검증 가능한 차트·표

주간 업무표를 발표 자료로 옮기면 숫자를 세는 일보다 어떤 내용을 한 장에 보여 주고 무엇을 말로 설명할지 결정하는 데 시간이 듭니다. 이 과정을 작게 시험하려고 가상 업무 6건을 입력으로 삼아 5장짜리 PPT를 만들었습니다. Gemini에는 슬라이드의 한국어 설명 문장만 맡기고, 건수 계산과 표·차트 생성은 코드로 처리했습니다.

제작 흐름

가상 업무 JSON → 코드로 상태·기한 집계 → Gemini 문장 초안 → 원자료와 문장 대조 → 편집 가능한 PPT 차트·표 생성 → 전 장 렌더링 확인

완성한 PPT와 입력 자료

5장 예제 PPT 내려받기 · 가상 입력·AI 문장·제작 코드·PPT ZIP 내려받기. 브라우저가 PPTX를 바로 저장하지 않으면 두 번째 ZIP 링크로 내려받아 압축 파일 안의 PPTX를 여세요. PowerPoint에서 제목과 표·차트의 값을 바꿀 수 있는 PPTX 파일입니다. 업무 내용은 앞서 만든 엑셀 주간 업무보고 생성기의 같은 가상 예제 6건을 발표용 입력으로 옮겼습니다. 실제 회사 자료나 고객 정보는 사용하지 않았습니다.

슬라이드는 표지, 현황 차트, 완료 업무, 미완료 업무와 기한 표, 다음 주 확인 항목 순서입니다. 한 장에 원본 업무표를 모두 우겨 넣지 않고, 발표할 때 필요한 질문 하나씩 나눴습니다.

완료 2건, 진행중 2건, 대기 1건, 보류 1건을 나타낸 예제 PPT의 편집 가능한 차트 슬라이드
2장: 상태별 업무 6건. 기한 초과 2건은 미완료 업무 4건에 포함되므로 막대에 따로 더하지 않았습니다.

숫자는 AI가 세지 않도록 설계했다

입력에는 업무 ID, 이름, 상태, 마감일, 완료일이 들어 있습니다. 보고 주간은 2026년 9월 21일부터 27일까지입니다. 코드가 각 행을 다시 읽어 대상 6건, 완료 2건, 미완료 4건, 미완료 중 기한 초과 2건, 보류 1건을 계산했습니다. 기한 초과는 9월 27일보다 마감일이 앞서고 아직 완료되지 않은 업무입니다. 보류 중인 운영 점검 준비는 10월 2일 마감이라 기한 초과로 세지 않았습니다.

completed = tasks.filter(t => t.status === "완료").length;
unfinished = tasks.filter(t => t.status !== "완료").length;
overdue = tasks.filter(t => t.status !== "완료" && t.due < weekEnd).length;

총 업무 수와 상태별 업무 수가 맞지 않으면 PPT 생성을 멈춥니다. 가상 예제에 적어 둔 기대 집계와 재계산한 값도 비교합니다. AI가 보기 좋은 숫자로 바꾸거나 기한 초과를 완료·미완료에 다시 더할 여지를 줄이려는 장치입니다.

Gemini에는 무엇을 맡겼나

2026년 10월 8일, 가상 업무 6건과 검산된 집계를 Gemini API에 한 번 보냈습니다. 모델에는 현황·완료 업무·주의할 업무·다음 주 확인 대상을 설명하는 짧은 문장 네 개만 요청했습니다. 없는 완료나 담당자 변경을 만들지 말고, 다음 주의 결과를 예측하지 말라는 조건도 넣었습니다. 원래 API 출력과 검토 후 PPT에 넣은 문장을 ZIP에서 각각 확인할 수 있습니다.

총 6건의 업무 중 완료 2건, 미완료 4건, 기한 초과 2건, 보류 1건으로 집계되었다.

이 문장을 입력 업무와 대조해 숫자가 모두 맞는지 확인했습니다. “기한 초과 2건”은 별도 업무 2건이 아니라 미완료 4건의 일부라는 설명을 차트 옆에 더했습니다. 문장이 자연스러워 보여도, 숫자의 포함 관계를 빠뜨리면 발표자가 잘못 해석할 수 있기 때문입니다.

편집 가능한 차트와 표를 만든 이유

2장의 차트는 완료 2, 진행중 2, 대기 1, 보류 1로 업무 6건을 나눠 보여 줍니다. 4장의 표에는 미완료 4건의 이름·상태·마감일·주말 기준을 그대로 넣었습니다. PPTX 안에서 차트는 데이터가 담긴 PowerPoint 객체이고, 표도 이미지가 아닌 표 객체로 저장했습니다. 독자는 예제 PPT를 열어 자기 업무에 맞게 바꿀 수 있습니다.

미완료 업무 네 건의 이름, 상태, 마감일, 기한 초과 여부를 담은 예제 PPT 표 슬라이드
4장: 월간 집계표 검토와 회의록 승인 대기는 9월 27일 기준 기한 초과입니다.

표지는 빈 보고서 종이가 놓인 책상 이미지를 AI로 생성했습니다. 이 사진은 디자인 요소이며, 실제 회사의 업무 장면이나 결과 증거가 아닙니다. 업무 수치와 판단 근거는 모두 가상 입력 데이터에 있습니다.

직접 따라 할 때의 순서

ZIP의 sample-report.json을 열어 업무 6건과 날짜를 먼저 확인하세요. outline-ai.json에는 Gemini가 제안한 네 문장이, outline-reviewed.json에는 원자료와 대조해 PPT에 채택한 문장이 있습니다. 자기 자료로 바꿀 때는 업무 ID·상태·마감일을 입력한 뒤 기대 집계가 맞는지 먼저 계산하고, AI 문장에 없는 사실이 끼어들지 않았는지 확인합니다.

Gemini 문장을 다시 받고 싶다면 본인의 API 키가 필요합니다. 키를 파일에 적지 않고 PowerShell의 현재 세션 환경 변수로 넘깁니다. 이 단계에서는 입력 업무가 외부 Gemini API로 전송되므로 실제 회사 자료는 조직의 허가 없이 사용하지 마세요.

$env:GEMINI_API_KEY = Read-Host 'Gemini API 키'
py .\outline_request.py
Remove-Item Env:GEMINI_API_KEY

일반 Python 환경에서도 다시 만들 수 있도록 일반 Python 재현판을 ZIP에 추가했습니다. Python 3.11 이상에서 압축을 풀고 해당 폴더의 PowerShell에서 아래 명령을 실행하세요. Codex 번들 런타임은 필요 없으며 최초 패키지 설치에는 인터넷 연결이 필요합니다.

py -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe build_portable.py
.\.venv\Scripts\python.exe -m unittest test_portable -v

결과는 output/weekly-report-portable.pptx에 저장됩니다. ZIP에는 미리 검증한 output/weekly-report-portable-verified.pptx도 있습니다. 기존 파일이 있으면 중단하므로 다시 만들 때는 --output output/my-report.pptx로 새 이름을 지정하세요. 이 재현판은 같은 집계와 검토 문장을 사용하되 디자인을 단순화했습니다. 차트와 표는 편집 가능한 PowerPoint 객체입니다.

실습 범위는 업무 1~6건, 업무명 30자 이하, 검토 문장 160자 이하입니다. 업무를 바꾸면 expected_counts도 검산하여 수정해야 합니다. 집계와 날짜 형식은 코드가 확인하지만 AI 문장의 의미까지 검증하지는 않으므로 문장을 원자료와 직접 대조하세요. PPT 생성 자체는 외부 AI를 호출하지 않고 포함된 검토 문장을 사용합니다.

기존 디자인의 .build/build_deck.mjs는 Codex 번들 환경을 사용한 참고 코드로 함께 보존했습니다. 일반 환경에서 따라 할 때는 위의 build_portable.py를 사용하세요. 재현판은 별도 폴더에서 생성·집계·차트·표·덮어쓰기 방지 테스트를 통과했고 5장 렌더링도 확인했습니다. PowerPoint 앱에서 직접 편집하고 다시 저장하는 시험은 하지 않았습니다.

검증한 범위와 아직 확인하지 않은 것

가상 입력 6건과 슬라이드 수치가 일치하는지 확인했습니다. 최종 5장을 이미지로 렌더링해 제목·표·차트의 겹침과 가독성을 눈으로 살폈고, PPTX 구조 검사에서 편집 가능한 차트 1개와 표 1개를 확인했습니다. 공개하는 PPT는 이 검사를 통과한 파일입니다. Microsoft PowerPoint 앱에서 직접 열어 차트 값을 고친 후 다시 저장하는 시험은 아직 하지 않았습니다. 사용 전에는 자신의 PowerPoint 버전에서 글꼴과 편집 동작을 확인하세요.

이 예제는 AI가 발표를 대신 판단해 준다는 사례가 아닙니다. 원자료를 계산하고, AI가 쓴 문장을 대조하고, 사람이 발표용 순서를 정한 뒤 PPT로 옮기는 과정을 보여 줍니다. 입력 업무가 다르거나 상태 정의가 다른 조직이라면 집계 기준부터 다시 정해야 합니다.