💬말로 만드는 AI▶ 유튜브
🤖 비서 만들기 · 05

나의 AI 비서 Sancho 만들기 - 5편 메일 정리와 문서 만들기

이 페이지 목차목적준비물만드는 단계0단계 · 여는 말 (영상 0:05)1단계 · 새 세션 — 연결된 앱 (영상 0:20)2단계 · 권한 스위치 (영상 0:46)3단계 · 메일정리 화면 (영상 1:33)4단계 · 첨부와 문서 만들기 (영상 2:12)5단계 · Opus 로 검증하고 커밋 (영상 3:11)💡 설명자주 막히는 곳됐는지 확인하는 방법

5편 표지
5편 표지

개인 에이전트 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)

0단계 메일정리 화면
0단계 메일정리 화면

  • 위 그림: 연습용 메일 8통을 비서가 긴급 2 · 업무 4 · 광고 2 로 나눈 메일정리 화면.

1단계 · 새 세션 — 연결된 앱 (영상 0:20)

1단계 새 세션 화면
1단계 새 세션 화면

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

2단계 · 권한 스위치 (영상 0:46)

2단계 권한 스위치 화면
2단계 권한 스위치 화면

설정에 "권한" 칸을 만들어 줘. 스위치: 연결된 앱(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)

3단계 메일정리 화면
3단계 메일정리 화면

메일정리 메뉴를 만들어 줘(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)

4단계 첨부와 문서 만들기 화면
4단계 첨부와 문서 만들기 화면

채팅에 파일 첨부를 넣어 줘: + 단추, 끌어다 놓기, 붙여넣기(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)

5단계 Opus 검증 화면
5단계 Opus 검증 화면

전송 버튼 옆 모델을 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 태그로 커밋했다