나의 AI 비서 Sancho 만들기 - 7편 결재·목표·공수
이 페이지 목차
목적준비물만드는 단계0단계 · 여는 말 (영상 0:05)1단계 · 새 세션 (영상 0:27)2단계 · 결재 (영상 0:40)3단계 · 목표(OKR) (영상 1:47)4단계 · 한 줄 공수 (영상 2:32)5단계 · Opus 로 점검하고 커밋 (영상 3:18)💡 설명자주 막히는 곳됐는지 확인하는 방법
개인 에이전트 AI 강좌 · 7 / 10편
© 2026 crazy4eu (cwkim83) · 강좌 자료 CC BY-NC-ND 4.0 · 코드 상업적 배포 금지 — 맨 아래 「저작권 · 라이선스」
💻 완성 소스: github.com/cwkim83/my-agent-Sancho (태그ep7) — 막히면 이 코드를 열어 비교해 보세요.
단계 번호는 영상 왼쪽 위 장면 이름과 같고, "영상 시각"은 편집본 기준입니다. 회색 상자는 Code 탭 입력창에 그대로 붙여 넣는 요청문입니다.
이전 편: 나의 AI 비서 Sancho 만들기 - 6편 메신저와 회의록 · 다음 편: 나의 AI 비서 Sancho 만들기 - 8편 안전장치와 자기 수정
핵심 요약
| 항목 | 내용 |
|---|---|
| 이 편이 끝나면 | 회사에서 매일 하는 세 가지를 말로 처리합니다. 결재: 기안 → 검토 → 승인(반려·전결), 서명은 결재하는 본인만, 인쇄 양식. 목표(OKR): 전사→부서→개인 나무와 가중 진척. 공수: 한 줄 붙여넣기 → 날짜·프로젝트·작업·시간, 월별 합계·엑셀·WBS 투입 공수. |
| 필요한 것 | 6편을 끝낸 my-agent 폴더(또는 GitHub 의 ep6 태그) — 여러 사람 계정이 있어야 결재가 됩니다 |
| 걸린 시간 | 실제 제작 약 1시간 29분(기다림 포함) → 편집본 4분 30초 |
| 요청문 | 5개 |
| 난이도 | 중~상. 결재(2단계)가 가장 오래 걸립니다(약 31분) |
| 모델 | 만들기 Sonnet 5.5 · 검증 Opus 5.5 (5단계에서만 바꿈) |
한 줄 요약 — 화면을 만들고, 비서에게 파일 형식을 가르치면(스킬), 말로 처리됩니다. 단 서명·금액처럼 중요한 것은 비서가 아니라 서버가 확인합니다.
7편 · 결재 · 목표 · 공수
목적
결재·목표 관리·공수 기록을 만듭니다. 화면은 세 개지만 원리는 같습니다.
준비물
- 6편을 끝낸
my-agent폴더 — 없으면 GitHub 에서 받은 뒤ep6태그로 시작합니다 - 6편에서 만든 가상 직원(김민준 등) — 검토자로 씁니다
만드는 단계
0단계 · 여는 말 (영상 0:05)

- 위 그림: 결재가 끝난 구매 요청서 — 결재란에 기안·검토·승인 도장 세 개.
1단계 · 새 세션 (영상 0:27)

CLAUDE.md 와 docs/blueprint.md 를 읽고 ep6 까지를 세 줄로 요약해 줘. 서버를 켜 줘.
브라우저 패널은 탭을 하나만 남기고, 화면 앞에 보이는 그 탭(127.0.0.1:8790)에서 보여 줘. 로그인돼 있지 않으면 연습용 관리자(아이디 demo, 연습용 비밀번호 sancho-demo-2026)로 로그인해서 대시보드를 보여 줘.
2단계 · 결재 (영상 0:40)

결재 메뉴를 만들어 줘(public/m/approval.html, db/approvals.json).
- 기안: 제목·양식(일반 기안/구매 요청/출장)·본문·금액·첨부·결재선(검토자들 → 승인자, 사용자 목록에서 고르기).
- 흐름: 상신 → 검토자 순서대로 승인/반려(의견) → 승인자 승인/반려/전결. 반려되면 기안자에게 돌아감. 상태: 작성중/진행/완료/반려.
- 내가 결재할 차례인 문서는 "결재할 문서" 칸과 대시보드 카드 숫자에.
- 승인하면 그 사람 이름·시각이 서명 칸에 찍힌다. 서명 기록은 결재하는 본인만 남길 수 있고, 기안자가 문서를 고쳐도 서명 기록은 못 바꾸게(서버가 확인).
- 인쇄 양식(결재란 표 포함, 브라우저 인쇄로 PDF).
- 비서 스킬: "기안서 써 줘: 내용, 금액" → 작성중 기안을 만들어 주고 결재선은 사람이 고른다.
다 되면 서버를 다시 켜고 시연해 줘: 화면의 채팅에서 "기안서 써 줘: 비파괴검사 외주 420만 원, 다음 달 압력용기 개조 프로젝트" → 결재 메뉴에 작성중 기안 → 결재선(검토 김민준 → 승인 홍길동) 지정 → 상신 → 김민준의 검토 승인은 김민준으로 로그인한 API 요청으로 → 화면에서 홍길동 최종 승인 → 인쇄 양식까지. 브라우저 패널은 탭을 하나만 남기고, 화면 앞에 보이는 그 탭(127.0.0.1:8790)에서 보여 줘.
- 서명은 서버가 정합니다: 로그인한 본인이 자기 차례일 때만, 이름·시각은 서버가 찍습니다. 올린 뒤에는 기안자도 못 고치고, 비서도 서명을 만들 수 없습니다.
- 비서는 진짜 비서 스킬대로 "작성중 기안"만 만듭니다(위 그림). 결재선은 사람이 고릅니다.
- 시연에서 잡힌 버그 3건: 금액 칸이 "4,200,000"(쉼표)을 거절 · 결재 기록에
undefined· "승인 승인" → "최종 승인". 비서가 바로 고치고 점검에 넣었습니다. - 검토 김민준 승인 → 홍길동 차례가 되면 "결재할 문서 (1)"과 대시보드 카드에 숫자. 최종 승인 뒤 인쇄 양식(아래 그림). 점검 781개.

3단계 · 목표(OKR) (영상 1:47)

목표 메뉴를 만들어 줘(public/m/okr.html, db/okrs.json).
- 전사 → 부서 → 개인 목표를 나무 모양으로. 목표마다 핵심 결과(KR)들: 지표·목표값·현재값·가중치·기한.
- 진척 = KR 달성률의 가중 평균, 상위 목표는 하위 목표들의 평균. 막대와 색(순조/주의/위험).
- 비서 스킬: "이번 분기 품질팀 OKR 초안 짜 줘", "불량률 KR 현재값 1.8로".
다 되면 서버를 다시 켜고, 화면의 채팅에서 "이번 분기 품질팀 OKR 초안 짜 줘" → 목표 메뉴의 나무 → "불량률 KR 현재값 1.8로" → 위 목표 진척이 바뀌는 것까지 보여 줘. 브라우저 패널은 탭을 하나만 남기고, 화면 앞에 보이는 그 탭(127.0.0.1:8790)에서 보여 줘.
- 계산은 화면이 아니라 따로 만든 계산 모듈(
okr-calc.js)이 맡고 점검으로 확인합니다. 색은 "지난 시간 대비 진척"이라 분기 초에는 대부분 초록입니다(막대 위 검은 눈금 = 지금쑤 가야 할 진척). - 비서가 품질팀 목표 2개(KR 3개씩)를 만들어 전사 목표에 잇고, "불량률 KR 현재값 1.8로" → 달성률 60% → 부서 30% → 전사 15%(아래 그림). KR 현재값 칸은 화면에서 고치고 Enter 만 쳤도 저장됩니다. 점검 811개.

4단계 · 한 줄 공수 (영상 2:32)

공수 메뉴를 만들어 줘(public/m/manday.html, db/mandays.json).
- 입력은 한 줄 붙여넣기: "10/6 열교환기 용접 8h, 야근 2h / 압력용기 도면검토 3h" 같은 글을 비서가 읽어 날짜·프로젝트·작업·시간으로 나눠 저장.
- 프로젝트 이름은 projects 에 있는 것과 맞추고, 모르면 물어본다.
- 화면: 내 기록 표, 월별·프로젝트별 합계(M/D = 8시간), 막대그래프, 엑셀 내보내기.
- 3편 WBS 의 해당 프로젝트 화면에 "투입 공수" 합계를 보여 준다.
다 되면 서버를 다시 켜고, 공수 메뉴에 "10/6 열교환기 용접 8h, 야근 2h / 압력용기 도면검토 3h" 를 붙여 넣어 표 → 월별 합계 → WBS 화면의 투입 공수까지 보여 줘. 브라우저 패널은 탭을 하나만 남기고, 화면 앞에 보이는 그 탭(127.0.0.1:8790)에서 보여 줘.
- 엑셀 파일도 외부 패키지 없이 직접 만듭니다(5편 워드 때 만든 압축 함수 재사용). 내 공수 기록은 나만 보고, WBS 카드에는 모두의 합계만 나갑니다.
- 이름이 같은 프로젝트가 둘이면 비서가 마음대로 고르지 않고 사람에게 물어봅니다. 저장하면 13h · 1.63 M/D · 야근 2h, 월별·프로젝트별 합계와 막대(위 그림).
- WBS 화면의 투입 공수 카드에 바로 더해집니다(아래 그림). 점검 851개.

5단계 · Opus 로 점검하고 커밋 (영상 3:18)

전송 버튼 옆 모델을 Opus 5.5 로 바꾼 뒤 보냅니다. 6편에서 배운 대로 "공격해 봐"가 아니라 "설계한 규칙대로 동작하는지 확인"으로 요청합니다 — 이번에는 보호 장치에 멈추지 않았습니다.
7편 점검: 결재가 설계한 규칙대로 동작하는지 확인해 줘. 결재 순서대로만 승인되는지, 승인된 문서의 금액은 기안자도 못 바꾸는지, 서명 기록은 결재자 본인의 승인으로만 생기는지(일반 사용자 계정 기준), OKR·공수 합계 계산이 경계값에서도 맞는지. selftest 에 시험용 계정을 만들어 확인해 줘(실제 사용자 비밀번호는 쓰지 말 것). 어긋난 것 목록 → 수정 → selftest → 커밋, ep7 태그. 끝나면 화면에 결재 메뉴를 띄워 줘.
- Opus 는 6편 방식을 따라 진짜 데이터와 떨어진 시험 서버를 켜고, 시험용 계정 6개(비밀번호는 매번 무작위)로 32개 항목을 확인했습니다. 고치기 전 코드로 먼저 돌려 어긋난 것을 찾습니다.
- 찾아 고친 4건: ① 일반 직원이 자기를 승인자로 정해 혼자 올리고 혼자 승인 → 자기 문서 직접 승인은 관리자만 ② 계정을 지우고 같은 아이디로 만든 새 사람이 옛 사람의 결재 차례를 이어받아 서명 → 결재선에 사람마다 고유 번호 ③ OKR 99.6% 가 "100%"로 보임 → 내림 ④ 공수 하루 24시간 넘을 때 안내 문구. 점검 883개, 커밋하고
ep7태그. - 고치지 않은 것 3가지는 README 에 적었습니다(반려 뒤 결재선 바꾸기 · 결재선에 있는 사람을 지우면 문서가 멈춤 · 같은 아이디 새 계정의 기억).
- 검증이 끝나면 다시 Sonnet 5.5 로 돌려 둡니다.
💡 설명
- 결재선: 기안자 → 검토자들 → 승인자. 전결은 승인자가 끝내며 서명에 "전결"로 찍힙니다.
- OKR: 목표(Objective)와 핵심 결과(Key Result). 진척은 KR 달성률의 가중 평균.
- M/D(맨데이): 한 사람의 하루 일(8시간). 13시간 = 1.63 M/D.
- 스킬: 비서에게 파일 형식과 요령을 가르치는 문서. "기안서 써 줘" 같은 말을 파일에 어떻게 적을지 알려 줍니다.
자주 막히는 곳
- 결재선에 사람이 없다 → 6편에서 만든 계정이 있어야 합니다. 일반 직원은 자기를 승인자로 고를 수 없습니다.
- OKR 막대가 전부 초록 → 분기 초에는 정상입니다. 지난 시간 대비로 칠하기 때문.
- 공수가 다른 프로젝트로 들어간다 → 비서가 "어느 프로젝트인가요?"라고 물으면 고르고 저장합니다. 틀리면 ✕ 로 지우고 다시.
- 명령이 멈춘다 → 윈도우의
python이 멈출 수 있습니다. 비서는 이번에도 제가 띄운 것만 끄고 Node 로 돌아갔습니다.
됐는지 확인하는 방법
- 채팅 "기안서 써 줘: …" → 결재 메뉴에 작성중 기안
- 결재선 → 상신 → 검토 → 최종 승인 → 결재란 도장, 인쇄 양식
- 목표 메뉴에서 KR 현재값을 고치면 위 목표 퍼센트가 바뀐다
- 공수에 한 줄을 붙여 넣으면 표·합계, WBS 투입 공수 카드가 늘어난다
-
node selftest.js→ 모두 통과,git tag에ep7
스스로 점검
- 서명·금액처럼 중요한 것을 서버가 확인하는 이유를 안다
- 비서는 "제안(작성중)"까지, 결정은 사람이 한다
- 계산은 따로 모듈로 두고 점검으로 확인했다
- Opus 로 검증하고
ep7태그로 커밋했다