나의 AI 비서 Sancho 만들기 - 5편 메일 정리와 문서 만들기
이 페이지 목차
목적준비물만드는 단계0단계 · 여는 말 (영상 0:05)1단계 · 새 세션 — 연결된 앱 (영상 0:20)2단계 · 권한 스위치 (영상 0:46)3단계 · 메일정리 화면 (영상 1:33)4단계 · 첨부와 문서 만들기 (영상 2:12)5단계 · Opus 로 검증하고 커밋 (영상 3:11)💡 설명자주 막히는 곳됐는지 확인하는 방법
개인 에이전트 AI 강좌 · 5 / 10편
© 2026 crazy4eu (cwkim83) · 강좌 자료 CC BY-NC-ND 4.0 · 코드 상업적 배포 금지 — 맨 아래 「저작권 · 라이선스」
💻 완성 소스: github.com/cwkim83/my-agent-Sancho (태그ep5) — 막히면 이 코드를 열어 비교해 보세요.
단계 번호는 영상 왼쪽 위 장면 이름과 같고, "영상 시각"은 편집본 기준입니다. 회색 상자는 Code 탭 입력창에 그대로 붙여 넣는 요청문입니다.
이전 편: 나의 AI 비서 Sancho 만들기 - 4편 예약과 아침 브리핑 · 다음 편: 나의 AI 비서 Sancho 만들기 - 6편 메신저와 회의록
핵심 요약
| 항목 | 내용 |
|---|---|
| 이 편이 끝나면 | 설정의 권한 스위치(연결된 앱·명령 실행·내 폴더 읽기, 기본 꺼짐)로 비서의 힘을 켜고 끕니다. 메일정리 화면이 메일을 긴급·업무·광고로 나눠 요약하고, 일정·할 일 등록과 답장 초안을 돕습니다. 채팅에 파일을 첨부하면 비서가 읽고, 엑셀·워드 문서를 만들어 파일 카드로 줍니다. |
| 필요한 것 | 4편을 끝낸 my-agent 폴더(또는 GitHub 의 ep4 태그) · (실제 메일을 쓸 때) claude.ai 에 Gmail·구글 캘린더 연결 · 파이썬(문서 만들기 — openpyxl·python-docx) |
| 걸린 시간 | 실제 제작 약 2시간 8분(기다림 포함) → 편집본 4분 16초 |
| 요청문 | 5개 |
| 난이도 | 중~상. 권한 스위치(2단계)가 가장 오래 걸립니다(약 33분) |
| 모델 | 만들기 Sonnet 5.5 · 검증 Opus 5.5 (5단계에서만 바꿈) |
한 줄 요약 — 민감한 힘(메일·명령 실행)은 스위치로, 메일 보내기는 사람 확인 뒤에만. 메일은 요약만 저장하고, 문서는 스킬로 가르친 파이썬 요령대로 만듭니다.
⚠️ 이 영상은 연습용 메일로 시연합니다. 개인 메일함이 화면에 나오지 않게, 가상 회사 "가나다전자"의 가상 메일 8통(
data/db/sample-mails.json)을 씁니다. 권한의 "연결된 앱"을 켜면 실제 Gmail 받은편지함을 읽습니다.
5편 · 메일 정리와 문서 만들기
목적
비서를 메일과 문서에 연결합니다. 그러려면 먼저 위험한 힘을 켜고 끄는 스위치가 필요합니다.
준비물
- 4편을 끝낸
my-agent폴더 — 없으면 GitHub 에서 받은 뒤ep4태그로 시작합니다 - (실제 메일을 쓰려면) claude.ai › 설정 › Connectors 에서 Gmail·Google Calendar 를 연결. 같은 계정으로 로그인한 Claude Code(= 비서의 두뇌)가 이 연결을 씁니다
- 파이썬 —
pip install openpyxl python-docx(피피티를 만들려면python-pptx도)
만드는 단계
0단계 · 여는 말 (영상 0:05)

- 위 그림: 연습용 메일 8통을 비서가 긴급 2 · 업무 4 · 광고 2 로 나눈 메일정리 화면.
1단계 · 새 세션 — 연결된 앱 (영상 0:20)

CLAUDE.md 와 docs/blueprint.md 를 읽고 ep4 까지를 세 줄로 요약해 줘. 서버를 켜 줘.
브라우저 패널은 탭을 하나만 남기고, 화면 앞에 보이는 그 탭(127.0.0.1:8790)에서 보여 줘. 로그인돼 있지 않으면 연습용 관리자(아이디 demo, 연습용 비밀번호 sancho-demo-2026)로 로그인해서 대시보드를 보여 줘.
- 비서가 메일을 보려면 claude.ai** 에 연결된 앱**이 필요합니다. 웹에서 연결해 두면 같은 계정의 Claude Code 도 씁니다.
2단계 · 권한 스위치 (영상 0:46)

설정에 "권한" 칸을 만들어 줘. 스위치: 연결된 앱(Gmail·캘린더·드라이브), 명령 실행, 내 홈 폴더 읽기. 기본은 전부 꺼짐.
- 연결된 앱이 켜져 있으면 claude 실행 때 --allowedTools 에 연결된 앱 도구 이름(mcp__ 로 시작하는 Gmail·Calendar·Drive 도구)을 덧붙인다.
어떤 이름인지는 이 PC 의 claude 에서 실제로 확인해서 넣어 줘.
- 명령 실행이 켜지면 Bash(Windows 는 PowerShell 도) 추가, 홈 폴더는 --add-dir.
- 메일 보내기는 연결된 앱이 켜져 있어도 반드시 채팅에서 "보낼까요?"를 물어 사람이 확인한 뒤에만.
- 채팅 입력창 왼쪽에 지금 켜진 권한을 작은 표시로.
도구 이름은 확인만 하고, 실제 메일이나 일정 내용은 읽지 마(영상에 개인 메일이 나오면 안 된다). 다 되면 node selftest.js 로 돌려 줘.
- 기본은 전부 꺼짐. 위험한 능력은 꺼 두고, 필요할 때 사람이 켭니다.
- 비서는 이 PC 의 claude 에서 실제 도구 이름을 확인했습니다(Gmail 30·캘린더 9·드라이브 11개 중 23개 허용, 삭제·공유·덮어쓰기는 늘 막음). 메일 내용은 열지 않았습니다.
- 메일 보내기: 비서가 "보낼까요?" → 사람이 "네" 라고 답한 그 차례에만 보내기가 열립니다. 예약 실행에서는 늘 막힘. 입력창 왼쪽에 켜진 권한이 표시됩니다(🔌 앱 / 전부 꺼지면 🔒). 점검 489개.
3단계 · 메일정리 화면 (영상 1:33)

메일정리 메뉴를 만들어 줘(public/m/mail.html, 데이터 db/mails.json).
- 위에 "메일 정리하기" 단추: 비서에게 "최근 2일 받은 메일을 읽고 긴급·업무·광고로 나눠, 요약 한 줄·할 일·마감일을 db/mails.json 에 적어"를 보낸다.
- 화면: 세 칸(긴급·업무·광고), 메일 카드(보낸 사람·제목·요약·마감), 카드를 누르면 오른쪽에 자세히 + 단추: 답장 초안 만들기 · 일정으로 등록 · 할 일로 등록 · 처리됨.
- 답장 초안은 Gmail 임시보관함에 넣기만(보내지 않는다).
- 메일 원문 전체는 저장하지 말고 요약만 저장한다.
- 영상에서는 실제 메일함 대신 연습용 메일로 시연한다: data/db/sample-mails.json 에 가상 회사 "가나다전자" 업무에 맞는 가상 메일 8통(긴급 2·업무 4·광고 2, 실제 회사·사람 이름 금지)을 넣고, 연결된 앱 스위치가 꺼져 있으면 "메일 정리하기"가 이 연습용 메일을 읽게 해 줘.
다 되면 서버를 다시 켜고 메일 정리하기 → 칸별 카드 → 하나 골라 "일정으로 등록" → 일정 메뉴에 생긴 것까지 보여 줘. 브라우저 패널은 탭을 하나만 남기고, 화면 앞에 보이는 그 탭(127.0.0.1:8790)에서 보여 줘.
- 연습용 메일을 쓰는 줄(요청문 끝쪽)은 영상용입니다. 실제 메일로 쓸 분도 연습용 메일로 먼저 연습해 보길 권합니다.
- 결과: 긴급 2 · 업무 4 · 광고 2. 카드를 누르면 자세히와 단추 4개(위 그림). 일정으로 등록 → 2편의 일정 달력에 바로 생김(아래 그림).

- 비서는 처음 돌려 보고 메일 하나의 마감을 잘못 읽은 것을 스스로 찾아, 연습 메일의 날짜 표현을 고쳐 다시 돌렸습니다.
- 메일 원문은 저장하지 않고 요약만 — 비서가 원문 칸을 끼워 넣어도 서버가 아는 칸만 남기고 글자 수를 자릅니다. 답장 초안도 보내지 않고 임시 보관만. 점검 538개.
4단계 · 첨부와 문서 만들기 (영상 2:12)

채팅에 파일 첨부를 넣어 줘: + 단추, 끌어다 놓기, 붙여넣기(Ctrl+V 로 화면 캡처도). data/uploads/ 에 저장하고 비서에게 "이 파일을 읽어"로 경로를 넘긴다(이미지·PDF 는 Read 로 읽힌다). 이미지는 미리보기.
그리고 문서 만들기: 비서가 엑셀·PPT·워드를 만들면 data/파일함/ 에 저장하고, 채팅에 파일 카드(보기·열기·⬇ 받기)로 보여 준다.
문서 만드는 요령을 스킬(data/.claude/skills/office-docs/SKILL.md)로 적어 줘: 파이썬 openpyxl·python-docx 를 쓰고(이 PC 에는 python-pptx 가 없다), 없는 라이브러리는 마음대로 설치하지 말고 설치 방법을 알려 준다. 파이썬은 python 으로 실행한다(이 PC 에서 python3 는 멈춘다).
다 되면 서버를 다시 켜고, 3편 공정표(열교환기 제작)를 엑셀(CSV)로 내보낸 파일을 채팅에 첨부해서 "이 공정표에서 지연된 작업만 뽑아서 보고용 워드 문서로 만들어 줘(표 포함)" 를 보내고, 파일 카드가 나오는 것까지 보여 줘. 브라우저 패널은 탭을 하나만 남기고, 화면 앞에 보이는 그 탭(127.0.0.1:8790)에서 보여 줘.
- 첫부 방법 세 가지: + 단추 · 끌어다 놓기 · 화면 캡처 붙여넣기. 한 번에 10개, 파일당 25MB, 실행 파일은 막음.
- 결과: 파일 카드(위 그림) → 보기로 문서 안 표를 바로 보고(아래 그림), 열기로 이 PC 의 워드에서 엽니다.

- 첫 문서는 표의 작업 코드가
="2.3"처럼 찍혔는데, 비서가 스스로 원인(CSV 표기)을 찾아 스킬을 고치고 다시 만들었습니다. 같은 이름은 덮어쓰지 않고_2를 붙입니다. - 원래 피피티로 만들 계획이었지만 이 PC 에
python-pptx가 없어 워드로 했습니다. 피피티가 필요하면pip install python-pptx뒤 "보고용 피피티 3장으로". - 파이썬을 돌리려면 권한의 명령 실행이 켜져 있어야 합니다(영상은 시연 동안만 켬). 점검 579개.
5단계 · Opus 로 검증하고 커밋 (영상 3:11)

전송 버튼 옆 모델을 Opus 5.5 로 바꾼 뒤 보냅니다.
5편 검증: 권한 스위치가 꺼져 있으면 연결된 앱 도구가 정말 빠지는지, 메일 보내기가 사람 확인 없이 일어날 길이 있는지, 올린 파일 이름으로 data/uploads 밖에 쓸 수 있는지(../), 파일함 받기 주소로 다른 폴더 파일이 새는지. 파이썬 실행이 실패하거나 라이브러리가 없을 때 채팅이 멈추지 않는지도. 문제 목록 → 수정 → selftest → 커밋, ep5 태그.
- Opus 는 진짜 claude 를 띄워 비서가 정말 막히는지 하나하나 시험했습니다.
- 찾아 고친 5건: ① 숨은 지침으로 권한 넘기 — 비서가 쓸 수 있는
data/에CLAUDE.md나.claude/settings.local.json을 심으면 비서가 그 지침을 따르고 훅을 실행했습니다(메일 속 지시 한 통으로도) → 이제 비서는 그 이름을 못 쓰고, 있으면 꺼 두고 알림 ② "네" 한 번에 메일 여러 통·다른 주소로 → 보내기 직전에 문지기가 확인해 보여 준 주소로 한 통만 ③ 하드 링크·폴더 바꿔치기로users.json이 받기 주소로 샘 → 진짜 그 폴더의 보통 파일만 ④ 비서가 띄운 프로그램이 남으면 채팅이 멈춤 → 1.6초 안에 마무리 ⑤ 문지기 안내 문구. 커밋하고ep5태그. - 남는 한계(설정 화면에도 적음): 명령 실행이 켜져 있는 동안은 비서가 이 PC 에서 사실상 무엇이든 할 수 있습니다. 필요할 때만 켭니다.
- 검증이 끝나면 다시 Sonnet 5.5 로 돌려 둡니다.
💡 설명
- 연결된 앱(Connectors): claude.ai 에 연결한 Gmail·캘린더 같은 앱. 같은 계정의 Claude Code 에서도
mcp__…도구로 보입니다. - 권한 스위치: 비서에게 주는 힘(연결된 앱·명령 실행·홈 폴더 읽기)을 켜고 끄는 설정. 기본은 꺼짐.
- 문지기(mailgate): 메일이 나가기 직전에 주소·통 수를 확인해 막는 장치.
- 숨은 지침(프롬프트 주입): 비서가 읽는 파일·메일 안에 숨겨 놓은 지시. 비서가 그대로 따르면 위험합니다.
- 파일 카드: 비서가 만든 문서를 보기·열기·받기로 보여 주는 말풍선.
- office-docs 스킬: 파이썬 openpyxl(엑셀)·python-docx(워드)로 문서를 만드는 요령.
자주 막히는 곳
- 메일을 못 읽는다 → claude.ai 에 Gmail 이 연결돼 있는지, 설정 › 권한의 "연결된 앱"이 켜져 있는지 확인합니다.
- 문서를 못 만든다 → 권한의 "명령 실행"을 켭니다. 라이브러리가 없으면 비서가 설치 방법만 알려 줍니다.
- 명령이 멈춘다 →
python3대신python으로(윈도우에서python3는 마이크로소프트 스토어를 부르다 멈출 수 있음). - 답장 초안이 안 생긴다 → 연습 모드(연결된 앱 꺼짐)에서는 화면에만 초안이 나옵니다. Gmail 임시보관함에 넣으려면 연결된 앱을 켭니다.
됐는지 확인하는 방법
- 설정 › 권한에 스위치 3개가 있고 기본은 꺼짐, 입력창 왼쪽에 🔒
- 메일정리 → 메일 정리하기 → 긴급·업무·광고 카드 → 일정으로 등록 → 일정 달력에 생김
- 채팅에 파일을 끌어다 놓으면 파일 칩이 생기고, 문서를 시키면 파일 카드가 나온다
-
data/db/mails.json에 메일 본문이 없다(요약만) -
node selftest.js→ 모두 통과,git tag에ep5
스스로 점검
- 위험한 힘은 기본 꺼짐으로 두는 이유를 안다
- 메일은 원문이 아니라 요약만 저장하는 이유를 안다
- "숨은 지침"이 왜 위험한지 설명할 수 있다
- 연습용 데이터로 먼저 시험했다
- Opus 로 검증하고
ep5태그로 커밋했다