SK스페셜티
팀장&AI 협의체 대상AI Literacy
역량강화 교육
업무를 정리하고, 반복하고,
함께 보는 도구를 만듭니다.
업무를 정리하고, 반복하고,
함께 보는 도구를 만듭니다.
보고서를 만들 때마다 같은 작성 기준을 설명하고, Excel에서 필요한 업무를 찾느라 필터와 계산을 반복할 때가 있습니다. 오늘은 보고서 작성 기준을 Project에 저장하고, Excel을 읽어 필요한 업무와 숫자를 보여주는 HTML 대시보드를 만듭니다.
| 만들 도구 | 함께 만들기 | 내 업무에 적용하기 |
|---|---|---|
| Project | L1 · 업무 메모로 주간보고 Project 만들기 | L2 · 내 반복업무를 처리하는 Project 만들기 |
| HTML 대시보드 | L3 · Excel 업무현황을 조회하는 화면 만들기 | L4 · 내 자료를 조회하는 대시보드 만들기 |
L1·L3은 강사와 함께 만듭니다. L2·L4는 설계 질문에 답하며 각자의 과제를 진행합니다. 안내와 프롬프트는 필요한 부분을 찾아 사용합니다.
1. Gen AI Hub와 워크북을 나란히 엽니다.
강사와 함께 기본 채팅과 파일 첨부, Project의 지침·문서 관리 위치를 확인합니다.
2. 실습자료를 내려받고 압축을 풉니다.
3. 파일별로 사용하는 위치를 확인합니다.
| 자료 | 사용하는 위치 | 쓰임 |
|---|---|---|
| 업무메모 A / B | ‘내용 보기’에서 복사해 대화에 붙여 넣기 | 이번에 처리할 자료 |
| 주간보고 작성기준(MD) / 서식(DOCX) | Project 소스로 등록 | 반복해서 참고할 자료 |
| 업무현황 A / B | HTML 대시보드에서 파일 선택 | 화면에서 조회할 자료 |
메모와 업무현황은 파일로 첨부하지 않습니다. 워크북의 ‘내용 보기’에서 복사해 프롬프트 아래에 붙여 넣습니다. 파일로 올리는 것은 Project 소스뿐입니다.
업무 실습에 앞서 개인·가족·취미에 쓸 이미지를 하나 만들어 봅니다.
위 그림은 다음 쪽의 예시 프롬프트로 만든 샘플입니다.
고른 주제의 프롬프트를 복사해 기본 채팅의 이미지 생성 기능에 넣습니다. 장소·색·분위기는 원하는 대로 바꿔도 됩니다.
가족이 가을 공원에서 피크닉을 즐기는 모습을 따뜻한 수채화 일러스트로 그려줘. 배경에는 단풍나무와 돗자리를 넣어줘.밝게 웃는 골든리트리버를 귀여운 스티커 캐릭터로 만들어줘. 굵은 외곽선과 단순한 색상을 사용하고 배경은 흰색으로 해줘.커피와 책을 주제로 독서 모임 포스터를 만들어줘. 크림색 배경과 차분한 브라운 계열을 사용한 미니멀 일러스트 스타일로 구성해줘.친구의 생일을 축하하는 카드 이미지를 만들어줘. 작은 케이크와 꽃을 중심으로 파스텔톤의 세련된 일러스트 스타일로 만들어줘.새 이미지를 처음부터 만들지 않고, 같은 대화에서 방금 만든 이미지의 한 부분만 바꿉니다. 색상, 배경, 인물의 표정, 그림 스타일 중 하나를 고릅니다.
현재 이미지의 전체 구성과 인물은 유지하고, 배경을 가을 공원에서 눈 내리는 겨울 공원으로 변경해 줘.현재 캐릭터의 모양과 색은 유지하고, 표정만 윙크하며 웃는 얼굴로 바꿔 줘.현재 포스터의 구성과 그림은 유지하고, 색상만 짙은 초록과 베이지 계열로 바꿔 줘.현재 카드의 케이크와 꽃 배치는 유지하고, 그림 스타일만 색연필로 그린 손그림 느낌으로 바꿔 줘.요청한 부분만 달라졌는지 봅니다. 보고서와 대시보드를 고칠 때도 바꿀 부분과 유지할 부분을 함께 말합니다.
AI는 대화를 이어가며 결과를 고칠 수 있습니다. 다만 업무에서는 같은 기준을 매번 다시 설명하기 번거롭습니다. L1에서는 그 기준을 정리해 Project에 저장하고 반복해서 씁니다.
가상 업무지원팀의 메모로 팀 주간업무 보고 도우미를 만듭니다. 보고서에 필요한 조건을 고른 뒤 지침과 소스로 저장합니다.
새 기본 채팅에 아래 프롬프트를 넣고, 에서 복사한 메모를 그 아래에 붙여 한 번에 보냅니다.
자료 A는 2026-10-01 기준입니다. 네 사람의 메모에 업무가 두 건씩 있습니다. T01~T08은 같은 업무를 찾아보기 위한 번호입니다. 사례의 기준일은 수업 날짜와 다릅니다.
아래에 붙인 팀원들의 업무 메모를 주간보고로 정리해 줘.결과에서 무엇을 먼저 보여줬는지, 어떤 표를 만들었는지 봅니다. 팀장이 결정할 일부터 보고 싶었다면 그 조건을 다음 요청에서 정하면 됩니다.
지금은 항목과 순서를 누가 정했는지 봅니다. 사실이 원자료와 맞는지는 원자료 대조에서 확인합니다.
첫 결과와 섞이지 않도록 새 기본 채팅을 엽니다. 아래 프롬프트 뒤에 의 메모를 다시 붙여 하려는 일과 질문 요청을 한 번에 보냅니다.
아래에 붙인 팀원들의 업무 메모를 팀 회의에서 볼 주간보고로 정리하려고 해.
바로 보고서를 쓰지 말고, 이 요청을 더 좋은 프롬프트로 만들기 위해 내가 정해야 할 내용을 먼저 질문해 줘. 결과에 가장 큰 영향을 주는 것부터 최대 3개만 물어봐 줘. 내 답변이 끝나면 프롬프트 초안을 작성해 줘.AI가 결과에 영향이 큰 질문을 최대 3개 하는지 봅니다. 질문마다 짧게 답하면 됩니다. 아래 예시 답변을 써도 되고, AI의 질문과 맞지 않으면 직접 답합니다.
팀장이 회의 전에 볼 거야. 결정할 일이 먼저 보이면 좋겠어. 메모의 업무는 모두 넣고 끝난 일은 뒤로 보내 줘. 앞에 결정할 일, 그다음에 업무별 현황표면 돼.받은 초안은 다음 단계에서 공통과제의 조건에 맞게 다듬어 실제로 사용합니다. 모르는 업무 사실은 답을 만들어 채우지 않습니다.
| 요소 | 살펴볼 내용 | 이번 사례 |
|---|---|---|
| 역할 | 어떤 관점에서 작업할까 | 회의자료 작성 담당자 |
| 과업 | 무엇을 만들까 | 팀 주간보고 |
| 맥락 | 누가 무엇에 쓸까 | 회의 전 팀장 검토 |
| 기준 | 어떻게 판단할까 | 누락 없이, 미정 날짜 유지 |
| 절차 | 어떤 순서로 처리할까 | 자료 확인 → 작성 → 대조 |
| 형식 | 어떻게 보여줄까 | 결정할 일 → 현황표 |
| 예시 | 어떤 작성 방식을 참고할까 | 서식이나 표 한 행 |
일곱 칸을 모두 채우는 과제가 아닙니다. 이번 결과를 바꾸는 조건이 빠졌는지 눈으로 확인합니다.
표를 보며 초안의 조건을 확인합니다. 내가 정한 조건과 AI가 제안한 조건을 구분하기 어려울 때만 아래 요청을 사용합니다.
초안에서 내가 정한 조건과 네가 제안한 조건을 나눠 줘. 내가 정하지 않은 업무 기준을 추가했다면 그 부분만 짧게 보여 줘. 아직 보고서는 작성하지 마.앞에서 AI와 만든 프롬프트 초안을 공통과제의 조건에 맞춰 조정합니다. 새 초안으로 갈아타지 않고 같은 대화를 이어갑니다.
방금 작성한 프롬프트 초안에 아래 조건을 반영해 최종 프롬프트를 정리해 줘. 이미 들어 있는 조건은 중복하지 마.
- 기준일은 2026-10-01, 읽는 사람은 팀장이야.
- 앞에는 자료에 팀장의 승인이나 선택이 필요하다고 적힌 일을 모아 줘. 분명하지 않은 일은 결정 요청에 넣지 말고 현황표에 원래 내용을 남겨 줘.
- 그다음에는 메모의 업무를 빠짐없이 현황표로 넣어 줘.
- 열은 업무ID, 업무명, 담당자, 마감일, 상태, 진행내용, 다음조치, 지원요청 순서야.
- 미완료 업무를 먼저, 완료 업무를 뒤에 배치해 줘.
- 담당자·날짜·수치는 원자료의 값을 쓰고, 마감일이 없으면 ‘미정’으로 남겨 줘.
충돌하는 조건은 위 기준으로 맞춰 줘. 완성된 프롬프트는 복사하기 편하게 코드 박스 하나에 넣고, 아직 보고서는 작성하지 마.최종 프롬프트에 위 조건이 들어갔는지 눈으로 확인합니다. 맞으면 같은 대화에서 실행합니다. 다르면 해당 조건만 고친 뒤 실행합니다.
방금 확인한 최종 프롬프트로 앞에서 붙인 업무메모 A의 주간보고를 작성해 줘.앞의 초안을 다듬어 실행했다면 아래 대체 프롬프트는 쓰지 않습니다.
이제 보고서가 나오면 업무 8건, 결정 요청 T03·T06, T05의 마감일 미정을 살펴봅니다. 원문을 모두 다시 읽기보다 해당 업무부터 대조합니다.
같은 대화에서 AI에게 대조할 위치를 정리하게 합니다.
지금 작성한 보고서와 앞에서 붙인 업무메모 A를 대조해 줘. 업무 누락, 담당자·마감일·상태가 달라진 곳, 원문에 없는 결정이나 설명이 추가된 곳을 찾아 줘. 업무ID, 보고서 표현, 원문 내용, 확인할 이유를 표로 보여 줘. 차이가 없으면 없다고 해 줘. 본문은 아직 고치지 마.AI가 지적한 곳도 에서 확인합니다. 특히 T02는 배포 완료, T03은 장소 선택 후 예약, T05는 마감일 미정이라는 차이를 봅니다. 보고서에 T03이 ‘예약 완료’로 바뀌었다면 아래처럼 고칩니다. 이미 맞다면 수정 요청을 넣을 필요가 없습니다.
T03은 예약 완료가 아니야. 원자료대로 ‘견적 2건 확보, 팀장 선택 후 예약’으로 고쳐 줘. 다른 업무의 값과 표 순서는 유지해 줘. 바꾼 부분만 마지막에 짧게 알려 줘.수정한 행과 유지하기로 한 다른 행을 함께 봅니다. 확인할 곳 목록만으로 전체 보고서의 정확성이 확정되지는 않습니다.
보고서의 구성과 처리 기준을 확인했다면 같은 대화에서 다음에도 쓸 내용을 정리합니다.
| 구분 | 담을 내용 | 이번 사례 |
|---|---|---|
| 시스템 지침 | 수행할 일과 처리 순서 | 주간보고 작성, 원자료 유지 |
| 반복 참고 소스 | 계속 참고할 서식과 기준 | 작성기준(MD), 서식(DOCX) |
| 이번 입력 | 매번 새로 넣는 자료와 값 | 업무 메모, 기준일 |
이 대화에서 마지막으로 확인한 팀장용 주간보고를 Project로 저장해 다음에도 만들고 싶어. 반복 참고 소스로 주간보고_작성기준.md와 주간보고_서식.docx를 등록하고, 워드로 요청하면 확인한 보고서를 이 서식으로 만들게 할 거야.
먼저 시스템 지침, 반복 참고 소스, 이번 입력으로 나누어 정리해 줘. 이번 업무명·담당자·날짜는 시스템 지침에 고정하지 말고, 내가 채택하지 않은 중간 제안은 빼 줘.
그다음 시스템 지침을 역할·과업·맥락·기준·절차·형식·예시 제목으로 나누어 써 줘. 이 대화에서 정하지 않은 요소는 지어내지 말고 제목째 빼 줘. 완성한 시스템 지침은 복사하기 편하게 코드 박스 하나에 넣어 줘.이번 업무명과 날짜가 반복 규칙에 고정되지 않았는지, 7요소 제목으로 나뉘었는지 봅니다.
등록 전에 를 열어 방금 만든 지침과 비교합니다. 결정할 일 → 현황표의 순서, 여덟 열, 전체 업무 포함, 미정 날짜 유지가 서로 맞아야 합니다. 다른 조건이 있으면 공통과제 기준에 맞게 지침을 고칩니다.
팀 주간업무 보고 도우미·
작성기준 MD는 제목·목록 등을 글자로 표현하는 Markdown 문서이고, 서식 DOCX는 보고서의 제목과 두 표의 구성을 담은 빈 양식입니다. 준비된 파일을 그대로 등록하면 됩니다.
업무메모 A/B는 고정 소스에 넣지 않고 각 대화에 붙여 넣습니다.
지침 작성에 참고할 도 확인할 수 있습니다.
Project 안의 새 대화에 아래 프롬프트를 넣고, 에서 복사한 메모를 그 아래에 붙여 보냅니다.
아래에 붙인 업무 메모로 2026-10-01 기준 팀 주간업무 보고를 작성해 줘.기본 채팅에서 정한 구성이 Project에서도 적용됐는지 봅니다. ‘팀장이 결정할 일 → 업무별 현황’ 순서와 여덟 열이 유지되는지 확인하고, 다음 세 군데를 원자료와 대조합니다.
형식만 맞고 내용이 다르면 해당 원자료와 적용된 기준을 함께 확인합니다. 다음 레슨에서는 내 업무로 바꾸거나 이 Project를 확장합니다.
화면에서 확인한 보고서를 회사 양식 파일로 받습니다. 양식과 채우는 방법은 지침과 소스에 저장해 두었으므로 짧게 요청합니다.
워드로 만들어 줘.파일을 내려받아 Word로 엽니다. 업무 8건, 팀장이 결정할 일 T03·T06, T05의 마감일 ‘미정’이 화면의 보고서와 같은지 봅니다. 과 비교할 수 있습니다.
저장한 Project가 다른 자료에서도 같은 기준으로 작동하는지 봅니다. Project 안의 새 대화에 아래 프롬프트를 넣고, 에서 복사한 메모를 그 아래에 붙여 보냅니다.
아래에 붙인 업무 메모로 2026-11-01 기준 팀 주간업무 보고를 작성해 줘.| 확인할 곳 | 기대하는 결과 |
|---|---|
| 전체 업무 | T11~T14 네 건, 이전 T01~T08 없음 |
| 팀장 결정 요청 | T12 승인 요청 |
| T12 상태 | 승인 후 배포가 남아 있으므로 진행 |
| T13 마감일 | 미정 |
| T14 | 완료, 현황표 맨 뒤 |
지침을 다시 설명하지 않았는데도 A와 같은 구성과 기준이 유지되면, 반복 기준이 Project에 저장된 것입니다.
공통과제에서 정한 조건을 내 업무에 대입해 봅니다.
| 질문 | 공통과제에서 정한 답 |
|---|---|
| 어떤 반복업무인가? | 팀원 메모로 주간보고 만들기 |
| 매번 어떤 자료를 받는가? | 이번 업무 메모와 기준일 |
| 어떤 결과를 받는가? | 팀장이 결정할 일, 업무별 현황표, 워드 파일 |
| 계속 지킬 기준은 무엇인가? | 업무 누락 없이, 미정 날짜는 그대로 |
| 어디에 저장하는가? | 시스템 지침과 반복 참고 소스를 각각 저장 |
| 어떻게 확인하는가? | 원자료 대조, 다른 자료로 새 대화에서 재시험 |
이번 결과만 고치는 것과 다음에도 적용할 지침·소스를 고치는 것의 차이는 L2의 우리 팀 주간보고로 바꾸기에서 다룹니다.
다음 시간에는 내 Project 설계 질문에 짧게 답하며 시작합니다. 프롬프트의 7요소는 초안을 살필 때 필요한 조건이 빠졌는지 확인하는 데 씁니다.
직접 처리하던 업무 하나를 고릅니다. 가져온 자료가 없다면 L1의 주간보고 Project를 우리 팀 방식으로 바꿉니다. 두 경로 중 하나만 진행합니다.
현업과제는 내 Project 설계 질문에서, 공통과제는 우리 팀 주간보고로 바꾸기에서 시작합니다. 필요한 안내를 찾아 사용합니다.
| 업무 후보 | 넣을 자료 | 만들 결과 |
|---|---|---|
| 회의 후속조치 | 회의 메모·전사 | 결정·담당자·기한 표 |
| 자료 제출 관리 | 제출 요청·접수 현황 | 미제출·보완 요청 목록 |
| 구매 진행 정리 | 요청·견적·승인 메모 | 단계별 진행 현황 |
| 교육 준비 | 일정·준비 메모 | 남은 준비와 확인할 일 |
짧게 적거나 예시를 골라 내 업무에 맞게 바꾸세요. 모르는 조건은 비워 두고 AI에게 질문받으면 됩니다. 실제 업무자료는 사내 사용 기준과 열람 권한에 맞는 범위에서 사용합니다.
설명이나 점검이 필요하면 도움받는 채팅 함께 쓰기를 참고합니다.
예시를 선택하면 아래 답변이 바뀝니다. 내 업무에 맞게 고쳐 쓰세요. 공통과제를 바꾸는 항목은 해당 안내 쪽으로 이동합니다.
짧게 답한 뒤 프롬프트를 만들어 보세요. 빈칸이 있어도 시작할 수 있습니다.
만든 프롬프트를 새 기본 채팅에 넣고 AI의 질문에 답합니다. 답변은 내가 아는 업무 기준부터 짧게 적습니다. 정해지지 않은 조건은 미정으로 두거나 이번에 만들 범위를 좁힙니다.
초안에서 빠뜨리면 안 되는 항목, 정보가 없을 때의 처리, 결과에서 사람이 확인할 곳을 살펴봅니다. 필요한 조건을 고친 뒤 아래 프롬프트로 저장할 지침을 정리합니다.
아래 괄호 부분만 내 업무로 바꿉니다. 질문 페이지에서 시작 프롬프트를 만들었다면 이 프롬프트는 입력하지 않습니다.
설계 질문에 답하던 같은 대화에서 저장할 지침을 받습니다.
지금까지 내가 선택한 내용으로 Project의 이름과 설명, 시스템 지침을 정리해 줘. 이름과 시스템 지침은 각각 복사하기 편한 코드 박스에 넣어 줘. 반복 참고 소스와 이번 입력도 따로 알려 줘. 내가 정하지 않은 업무 사실은 채우지 마.첨부한 자료를 저장된 지침과 소스에 따라 처리해 줘. 이번 결과를 원자료와 대조할 때 먼저 볼 항목도 알려 줘.원자료 한두 건을 골라 결과에서 같은 내용을 찾아봅니다. 빠진 내용, 바뀐 사실, 지켜지지 않은 기준을 확인한 뒤 결과 확인과 재시험으로 이어갑니다.
원자료와 결과를 나란히 놓고 중요한 이름·날짜·수치와 빠뜨리면 안 되는 항목을 확인합니다. AI가 짚어 준 곳도 직접 대조합니다.
맞지 않는 부분이 있으면 원인을 보고 수정할 위치를 고릅니다.
| 바꿀 곳 | 언제 바꾸는가 |
|---|---|
| 이번 입력 | 이번 자료가 빠졌거나, 기준일·대상 등 이번에만 적용할 조건이 잘못됐을 때 |
| 시스템 지침 | 매번 적용할 처리 순서·선별 기준·누락 정보 처리 방법을 바꿀 때 |
| 반복 참고 소스 | 보고서 서식이나 계속 참고할 작성기준·자료를 바꿀 때 |
이번 결과만 고칠 때는 바꿀 부분과 유지할 부분을 지정합니다. 다음에도 적용할 기준이라면 Project의 지침이나 소스를 실제로 수정해 저장합니다.
같은 종류의 다른 자료를 Project 안의 새 대화에 넣고 실행합니다. 정한 구조와 기준이 유지되는지, 이전 자료의 이름·날짜·값이 섞이지 않는지 봅니다.
첫 결과를 확인하고 필요한 부분을 고쳤다면, 다른 자료에서도 같은 기준이 적용되는지 시험합니다. 여유가 있으면 동료용 사용 안내를 정리합니다.
지침을 쓰다 막히거나 지침·결과를 점검받고 싶을 때 씁니다. 만들던 채팅은 그대로 두고 새 기본 채팅을 하나 더 엽니다. 이 채팅이 도움받는 채팅입니다. 막힌 곳이 없으면 이 쪽은 건너뜁니다.
1. 도움받는 채팅 열기
새 기본 채팅을 열고 시작 프롬프트를 첫 메시지로 붙여 넣습니다. 처음 한 번만 넣습니다.
2. 물어보기
막힌 부분과 현재 지침이나 결과를 복사해 함께 붙여 넣습니다. 이전 채팅을 기억한다고 가정하지 말고 매번 직접 붙여 넣습니다.
3. 고치고 확인하기
받은 수정 프롬프트를 만드는 채팅에 넣어 지침을 고칩니다. 결과가 맞는지는 도움받는 채팅의 설명으로 판단하지 않고, Project를 실행한 결과를 원자료와 비교해 확인합니다.
가져온 자료가 없다면 L1에서 만든 주간보고 Project를 우리 팀이 실제로 쓰는 방식으로 바꿉니다. 현업과제를 진행하고 있다면 이 쪽부터 세 쪽은 건너뜁니다. L1 Project 안의 대화에서 입력합니다.
이 Project는 가상 팀의 주간보고 기준으로 만들었어. 우리 팀이 실제로 쓰는 주간보고에 맞게 바꾸려고 해.
바로 고치지 말고, 우리 팀 보고와 다를 수 있는 부분을 결과에 영향이 큰 것부터 최대 3개만 질문해 줘. 내 답변이 끝나면 시스템 지침, 주간보고_작성기준.md, 주간보고_서식.docx 중 무엇을 어떻게 바꿀지 정리해 줘. 아직 파일은 만들지 마.질문에는 우리 팀에서 실제로 하는 방식대로 짧게 답합니다. 떠오르지 않으면 아래 예시를 골라 우리 팀에 맞게 고쳐 씁니다.
같은 대화에서 수정본을 받습니다.
정리한 대로 바꿔 줘. 주간보고_작성기준.md와 주간보고_서식.docx는 수정본을 각각 파일로 주고, 시스템 지침은 수정본 전체를 코드 박스 하나에 넣어 줘. 모든 업무 포함과 원자료의 사실 유지 원칙은 그대로 둬. 새로 넣은 항목의 정보가 메모에 없으면 지어내지 말고 ‘정보 없음’으로 남기도록 해 줘. 바뀐 부분을 짧게 알려 줘.Project 문서 관리에서 두 소스를 수정본으로 바꾸고, 시스템 지침도 수정본으로 저장합니다.
대화에서 ‘앞으로 그렇게 하겠다’는 답을 받은 것과 저장된 지침·소스를 바꾼 것은 다릅니다.
저장을 마치면 바꾼 기준으로 다시 실행하기로 이어갑니다.
저장한 Project의 새 대화에 아래 프롬프트를 넣고, 에서 복사한 메모를 그 아래에 붙여 보냅니다. 결과를 확인한 뒤 같은 대화에서 ‘워드로 만들어 줘.’를 입력해 파일도 받습니다.
아래에 붙인 업무 메모로 2026-11-01 기준 팀 주간업무 보고를 작성해 줘.| 확인할 곳 | 확인할 내용 |
|---|---|
| 내가 바꾼 부분 | 정한 구성·열·순서가 화면과 워드 파일에 모두 반영됐는가 |
| 업무 누락 | T11~T14 네 건이 모두 있고, 이전 T01~T08이 없는가 |
| 원자료 사실 | 담당자·마감일, T13의 ‘미정’이 메모와 같은가 |
| 없는 정보 | 메모에 없는 내용을 지어내지 않고 ‘정보 없음’으로 남겼는가 |
바꾼 부분이 반영되지 않았다면 대화에서 다시 설명하기 전에, 저장한 지침과 소스에 그 내용이 들어갔는지부터 확인합니다.
Project가 의도한 대로 작동하는지 확인한 뒤, 다른 사람에게 전달할 안내가 필요할 때 사용합니다. 같은 Project 대화에서 입력합니다.
이 Project를 처음 쓰는 동료를 위한 사용 안내를 짧게 써 줘. 넣을 자료, 처음 입력할 프롬프트, 결과에서 확인할 곳, 반복 기준을 바꾸는 위치를 포함해 줘. 실제로 만들지 않은 기능은 넣지 마.공유할 때에는 사용할 사람과 공유 범위를 정하고, 등록한 소스의 열람 범위도 확인합니다. 동료가 처음 넣을 자료와 첫 프롬프트를 함께 전달하면 시작하기 쉽습니다.
다음 레슨에서는 Excel 업무현황에서 필요한 업무와 숫자를 찾아보는 대시보드를 만듭니다.
L1에서 다룬 여덟 업무를 표로 정리한 ‘업무현황 A’를 사용합니다. 팀 회의 전에 확인할 질문을 정하고, Excel 자료에서 지연·마감·날짜 미정인 업무를 찾아보는 HTML 대시보드를 만듭니다.
이번에는 원하는 기능을 설명하고, 실행 결과를 확인하고, 필요한 부분을 고치는 과정을 경험합니다. 같은 방법을 다른 웹 도구를 만들 때도 적용할 수 있습니다.
AI와 함께 필요한 도구를 직접 만들어 볼 수 있습니다. 대시보드는 그 시작입니다.
원하는 기능을 설명하면 AI가 코드 작성을 돕습니다. 만든 파일을 열어 보고 수정할 부분을 요청하며 작은 도구부터 완성해 갑니다. 무엇을 만들지 정하고 제대로 작동하는지 확인하는 일은 사용자의 몫입니다.
| 만들고 싶은 것 | 활용 예 |
|---|---|
| 전자책 | 목차 이동, 검색, 예시 펼쳐 보기 |
| 시뮬레이터 | 조건을 바꾸며 비용·일정 비교 |
| 나만의 홈페이지 | 소개, 포트폴리오, 자료 모음 |
| 가계부 | 수입·지출 기록, 항목별 집계 |
| 업무 대시보드 | 파일 불러오기, 현황 조회, 조건별 필터 |
웹 도구는 익숙한 브라우저에서 사용합니다. 간단한 도구는 HTML 파일로 전달하고, 웹에 게시하면 링크로 공유할 수 있습니다. 모바일 화면에 맞게 구성하면 스마트폰에서도 사용할 수 있습니다.
기록을 계속 저장하거나 여러 사람이 함께 쓰려면 저장 방식과 접근 권한도 정해야 합니다. 이번에는 Excel 파일을 직접 불러오는 도구를 만듭니다. 사내 시스템에 자동 연결하거나 여러 사람의 입력을 실시간으로 공유하는 기능은 포함하지 않습니다.
이런 화면을 이루는 HTML·CSS·JavaScript부터 살펴봅니다.
AI로 웹 도구를 만들다 보면 HTML, CSS, JavaScript라는 말을 자주 만나게 됩니다. 코드를 직접 작성할 필요는 없지만, 각각 무엇을 뜻하는지 알면 AI의 설명을 이해하고 원하는 변경을 더 구체적으로 요청할 수 있습니다.
한 HTML 파일에 함께 들어 있어도 역할은 구분됩니다. 요청할 때 반드시 기술 용어를 쓸 필요는 없습니다. 구조를 바꿀지, 모양을 바꿀지, 동작을 바꿀지 구분해서 말해 보세요.
필요하면 CSS로 모양과 배치를 바꾸고, JavaScript의 라이브러리(미리 만들어 둔 기능 묶음)로 차트나 다양한 상호작용을 추가할 수 있습니다. 실제 사용할 환경에서 작동하는지도 확인합니다.
필요한 기능을 모두 직접 만들 필요는 없습니다. 차트, 지도, 달력, 파일 읽기처럼 미리 만들어진 기능을 묶어 제공하는 것을 라이브러리라고 합니다. AI에게 적절한 라이브러리를 찾아 활용하도록 요청할 수 있습니다.
아래에서 도구를 골라 어떤 기능을 조합하는지 살펴보세요. 기능을 조합하는 방식을 보여주는 예시입니다.
“Excel을 읽어 담당자별 업무 건수를 차트로 보여 줘.”
“인원과 단가를 바꾸면 예상 비용이 달라지는 화면을 만들어 줘.”
“마감일을 달력에 표시하고, 담당자별로 골라 보게 해 줘.”
위 버튼을 눌러 기능의 조합을 비교해 보세요. 기능 블록의 쓰임을 설명하는 예시입니다.
라이브러리 이름을 외울 필요는 없습니다. 어떤 자료를 넣고, 어떻게 작동하며, 어떤 결과가 나와야 하는지 설명합니다. 사용할 환경에서 작동하는지는 직접 확인합니다.
Gen AI Hub에서 제작 → 브라우저에서 실행
Gen AI Hub의 코드 인터프리터에는 Python 라이브러리가 설치되어 있습니다. Python으로 HTML 파일을 만들면서 JavaScript 코드와 외부 라이브러리를 불러오는 CDN 주소를 넣을 수 있습니다. 파일을 열면 JavaScript는 브라우저에서 실행됩니다. CDN을 사용하려면 해당 주소에 접속할 수 있어야 합니다.
인터넷 연결 없이 사용하려면 CDN 대신 필요한 JavaScript·CSS 라이브러리 코드를 HTML 안에 포함하고, 이미지·글꼴 등 외부 파일에 의존하는 부분도 함께 처리해야 합니다.
요청 예: “인터넷 연결 없이도 작동하도록 필요한 코드를 HTML 파일 안에 포함해 줘.”
만들 수 있는 기능은 많습니다. 이번에는 팀 회의 전에 확인할 질문 세 가지에 집중합니다. 먼저 자료에서 무엇을 알고 싶은지 정해 봅니다.
새 기본 채팅에 아래 프롬프트를 넣고, 에서 복사한 내용을 그 아래에 붙여 보냅니다. 이 내용은 다음 쪽에서 열어볼 Excel 파일과 같은 자료입니다.
아래에 붙인 업무 현황을 팀 회의 전에 보려고 해. 팀장이 먼저 확인하면 좋을 질문을 5개 제안해 줘. 각 질문에 현재 열만으로 답할 수 있는지, 추가로 필요한 정보가 무엇인지도 알려 줘. 아직 대시보드는 만들지 마.AI가 제안한 질문 중 현재 자료로 답할 수 있고, 회의 전에 확인할 필요가 있는 질문을 고릅니다. 질문에 따라 필요한 열이 달라집니다.
| 질문 | 현재 자료로 답할 수 있는가 |
|---|---|
| 마감일이 지났는데 끝나지 않은 일은? | 마감일·상태·기준일로 계산 |
| 오늘부터 7일 안에 마칠 일은? | 같은 열로 계산 |
| 마감일을 확인해야 할 업무는? | 미완료 중 마감일이 빈 업무를 찾음 |
| 이번 달 완료한 일은? | 완료일 열이 없어 알 수 없음 |
| 왜 지연됐는가? | 사유가 빠진 업무는 원인 확정 불가 |
공통과제에서는 현재 자료로 확인할 수 있는 지연·7일간 마감·마감일 확인 세 가지를 선택합니다. 완료일이나 지연 사유가 없는 자료로 그 내용을 추정해 채우지는 않습니다.
를 눌러 Excel 파일을 열고 ‘업무현황’ 시트를 확인합니다. 앞쪽에서 채팅에 붙여 넣은 것과 같은 자료입니다. 업무 한 건이 한 행이며, 첫 행에는 업무ID·업무명·담당자·마감일·상태·진행내용·다음조치·지원요청 여덟 열이 있습니다. 제목·합계 행과 병합 셀은 넣지 않습니다.
상태는 대기·진행·완료·보류로 맞추고, 미정 날짜는 비웁니다. 업무ID는 같은 업무를 원자료와 화면에서 찾아보는 번호입니다.
| 항목 | 이번 실습의 기준 |
|---|---|
| 기준일 | 2026-10-01, 화면에서 변경 |
| 미완료 | 대기·진행·보류 |
| 지연 | 마감일이 기준일보다 이전인 미완료 |
| 7일간 마감 | 기준일부터 6일 뒤까지 마감하는 미완료 |
| 마감일 확인 | 마감일이 빈 미완료 업무 |
T08은 오늘 마감이므로 지연이 아닙니다. T06은 보류지만 미완료이므로 날짜가 지났다면 지연입니다. 완료한 T07은 세 목록에서 제외합니다.
세 목록은 서로 겹치지 않지만 전체 업무를 모두 나눈 것은 아닙니다. 완료 업무와 7일 이후 마감 업무 등은 빠지므로, 세 건수를 더해 전체 업무 수로 보지 않습니다.
날짜가 비면 ‘마감일 확인’ 목록에 넣습니다. 값이 있지만 날짜로 읽을 수 없으면 오류 위치를 알리고 계산을 멈추며, 이전 결과도 비웁니다.
새 파일을 넣으면 기존 자료를 교체합니다. 같은 업무의 새 버전을 계속 더해 중복 집계하지 않습니다.
| 정할 것 | 이번 대시보드 |
|---|---|
| 입력자료 | 업무현황 시트의 여덟 열 |
| 계산 기준 | 기준일·상태·날짜의 조건 |
| 화면 | 파일명·기준일·건수·해당 업무 목록 |
| 잘못된 입력 | 위치 안내, 계산 중단, 이전 결과 비우기 |
| 실행 환경 | 받은 HTML을 브라우저에서 열고 파일 선택 |
Excel은 원자료를 관리하고, HTML은 선택한 파일을 읽어 보여줍니다. 화면에서 조회해도 원본 Excel은 바뀌지 않습니다.
앞에서 정한 입력자료·계산 기준·화면·입력 오류·실행 환경을 다음 쪽 제작 프롬프트에 담았습니다. 오늘 마감과 보류 업무의 처리 조건이 어디에 들어 있는지 살펴봅니다.
채팅에서 받은 HTML을 다운로드해 Chrome 또는 Edge로 엽니다. 파일을 읽고 계산하는 곳은 브라우저이며, Canvas 안에서 실행하지 않습니다.
업무현황 A를 붙여 넣은 같은 채팅에서 실행합니다.
앞에서 붙인 업무 현황과 같은 구조의 Excel을 읽는 팀 업무 현황 대시보드를 만들어 줘.
브라우저에서 열 수 있는 HTML 파일로 제공해 줘.
[입력자료]
- 시트 이름: 업무현황
- 열: 업무ID, 업무명, 담당자, 마감일, 상태, 진행내용, 다음조치, 지원요청
- 업무 한 건이 한 행이다. 완전히 빈 행은 제외한다.
- 새 파일을 선택하면 이전 자료를 교체한다. 원본 Excel은 수정하지 않는다.
[계산 기준]
- 기준일은 처음에 2026-10-01로 두고 화면에서 바꿀 수 있게 한다.
- 미완료는 대기·진행·보류다. 완료 업무는 아래 세 목록에서 제외한다.
- 지연: 마감일이 기준일보다 이전인 미완료 업무
- 오늘부터 7일간 마감: 기준일~기준일+6일에 마감하는 미완료 업무
- 마감일 확인: 마감일이 비어 있는 미완료 업무
[화면]
- 파일 선택, 불러온 파일명, 기준일 입력을 위에 둔다.
- 전체 업무 수와 세 목록의 건수를 보여준다.
- 각 목록에 업무ID·업무명·담당자·마감일·상태·다음조치를 표시한다.
- 마감일이 비어 있으면 화면에는 ‘미정’으로 표시한다.
[입력 오류]
- 필수 시트·열 누락, 업무ID 누락·중복, 정한 네 값 밖의 상태,
비어 있지 않지만 날짜로 읽을 수 없는 마감일은 위치를 알려준다.
- 이런 오류가 있으면 계산을 멈추고 이전 파일의 결과도 비운다.
[실행 환경]
- 데이터를 외부로 보내지 않고, 필요한 코드도 HTML에 포함한다.
- 외부 사이트 연결 없이 파일을 읽고 계산할 수 있게 한다.
- 구현하기 어려운 조건이 있으면 임의로 빼지 말고 먼저 알려 줘.| 항목 | 건수 | 업무ID |
|---|---|---|
| 전체 업무 | 8 | T01~T08 |
| 지연 | 2 | T01·T06 |
| 7일간 마감 | 3 | T03·T04·T08 |
| 마감일 확인 | 1 | T05 |
에서도 파일을 불러오고 원자료와 비교할 수 있습니다. 기본 예제는 첫 시트가 ‘업무현황’인 파일을 읽습니다.
화면의 기준일을 2026-10-02로 바꿉니다.
기준일만 바꾼 것이므로 원자료의 상태가 최신화된 것은 아닙니다.
기준일을 다시 2026-10-01로 돌립니다. 아래는 T08이 지연으로 잘못 나왔을 때의 수정 요청입니다. 그 오류가 있을 때만 HTML을 만든 채팅에 입력합니다.
기준일을 2026-10-01로 두었는데, 같은 날이 마감인 T08이 지연 목록에 나와.
지연은 마감일이 기준일보다 이전일 때만 계산해야 해. 오늘 마감인 업무는 7일간 마감 목록에만 들어가게 고쳐 줘.
다른 계산과 화면 구성은 유지하고 수정한 HTML을 파일로 제공해 줘.수정된 HTML을 다운로드해 열고, 업무현황 A와 기준일 2026-10-01로 다시 비교합니다. T08뿐 아니라 지연 T01·T06 포함, 완료 T07 제외도 봅니다.
| 질문 | 공통과제에서 정한 답 |
|---|---|
| 무엇을 알고 싶은가? | 지연·7일간 마감·날짜 미정 업무 |
| 어떤 자료를 쓰는가? | 업무현황 시트, 한 행에 업무 한 건 |
| 무엇을 보여주는가? | 건수와 해당 업무 목록 |
| 어떤 기준으로 계산하는가? | 기준일과 상태, 날짜 범위 |
| 오류는 어떻게 처리하는가? | 잘못된 입력의 위치 안내, 계산 중단 |
| 무엇과 비교하는가? | 원자료 한두 건과 기대하는 값 |
기본 대시보드에 를 불러오고 기준일을 2026-11-01로 바꿉니다. 전체 업무 4건, 지연 0건, 7일간 마감 2건(T11·T12), 마감일 확인 1건(T13)이 나오는지 확인합니다. 이전 자료의 업무가 남아 있지 않은지도 봅니다.
다음 시간에는 내 대시보드 설계 질문에서 위 표의 처음 세 질문에 짧게 답하며 시작합니다. 계산·예외·확인 기준은 AI의 질문에 답하며 구체화합니다. Excel은 자료를 관리하고 HTML은 선택한 자료를 읽어 보여줍니다. 바꿀 것이 자료인지 계산·화면인지에 따라 수정할 곳이 달라집니다.
공통 실습은 업무현황 A를 씁니다. 보고서를 Excel로 바꾸고 싶을 때만 진행합니다.
Word 보고서를 만든 대화에서 진행하거나, 새 대화에 완성한 보고서 내용을 붙여 넣습니다. 보고서 모양 대신 업무 항목을 행으로 옮깁니다.
확인한 보고서의 진행·완료 업무를 모두 합쳐 업무ID별 한 행인 Excel 파일로 만들어 줘. 같은 업무가 여러 표에 있어도 중복 행은 넣지 마.
시트는 ‘업무현황’ 하나만 만들어 줘.
열은 업무ID, 업무명, 담당자, 마감일, 상태, 진행내용, 다음조치, 지원요청 순서로 해 줘.
제목·소계·합계 행이나 병합 셀은 넣지 마.
마감일은 Excel의 날짜 값으로 넣고 YYYY-MM-DD로 표시해 줘. 미정인 날짜는 빈칸으로 둬.
지원요청이나 다음조치가 없으면 ‘—’ 대신 빈칸으로 둬.
업무ID와 사실 값은 유지하고, 바꾼 표기 방식만 짧게 알려 줘.
상태를 대기·진행·완료·보류 중 하나로 확정하지 못한 업무가 있으면 임의로 바꾸지 말고 먼저 그 업무를 알려 줘. 확인한 뒤 파일을 만들어 줘.파일을 열어 업무 수·업무ID·날짜·상태를 비교합니다. 보고서의 ‘미정’은 Excel 날짜 열에서 빈칸, 지원요청의 ‘—’도 빈칸이 됩니다.
만든 파일로 대시보드에서 불러오기를 해봅니다. 비교용으로 도 사용할 수 있습니다.
내 자료에 필요한 질문과 계산 기준을 정해 화면을 만듭니다. 가져온 자료가 없다면 L3에서 만든 대시보드를 우리 팀이 업무를 확인하는 방식에 맞게 바꿉니다.
설계 질문에 답하고 필요한 기능부터 만듭니다. 뒤의 안내는 필요한 부분을 골라 사용합니다.
자료에서 자주 찾는 질문 하나부터 시작하세요. 원자료를 읽지 않고 파일명만 보고 열이나 값을 추측하지 않습니다.
| 자료 | 먼저 볼 질문 | 다시 정할 기준 |
|---|---|---|
| 자료 제출 현황 | 기한이 지난 미제출은? | 일부 제출·완료 구분 |
| 구매 진행 현황 | 다음 처리를 기다리는 요청은? | 승인 대기·발주 완료 |
| 교육 준비 현황 | 행사 전까지 남은 준비는? | 행사별 일정·완료 조건 |
| 회의 후속조치 | 끝나지 않은 후속 업무는? | 결정·제안, 완료 시점 |
현업과제: 자료 한 종류와 질문 1~3개로 첫 화면을 만듭니다. 모든 기능을 한 번에 넣기보다 기본 계산부터 확인합니다.
공통 확장: 우리 팀 업무에 맞게 대시보드 바꾸기에서 시작합니다. L3 화면을 바탕으로 내가 볼 업무와 조회 기준을 정합니다.
예시를 선택하면 아래 답변이 바뀝니다. 내 업무에 맞게 고쳐 쓰세요. 공통과제를 바꾸는 항목은 해당 안내 쪽으로 이동합니다.
짧게 답한 뒤 프롬프트를 만들어 보세요. 빈칸이 있어도 시작할 수 있습니다.
내 업무로 새로 만든다면 프롬프트와 자료를 새 기본 채팅에 넣고 AI의 질문에 답합니다. 질문 페이지에서 우리 팀 대시보드로 바꾸기를 골랐다면 우리 팀 업무에 맞게 대시보드 바꾸기로 이동합니다. 새 채팅에서 확장할 때는 현재 HTML과 업무현황 A를 함께 첨부합니다.
직접 입력하려면 새 기본 채팅에 사용할 자료를 첨부하고 아래 괄호 부분을 바꿉니다. 질문 페이지에서 시작 프롬프트를 만들었다면 이 프롬프트는 입력하지 않습니다.
AI의 질문에 답하고 요구사항을 읽습니다. 원자료 한두 건을 골라 화면에 포함할지, 제외할지, 어떤 값이 나와야 할지 먼저 정합니다.
자료에 없는 날짜나 분류를 추측해서 집계하지 않도록 합니다. 필요한 열을 추가할 수 없다면 이번 화면의 질문을 줄입니다.
요구사항을 정한 같은 채팅에서 입력합니다.
방금 내가 확인한 요구사항으로 HTML 대시보드를 만들어 파일로 줘. 사용자가 파일을 선택해 브라우저에서 읽도록 하고 원본 자료는 수정하지 마. 새 파일은 이전 자료를 교체하게 해 줘. 데이터를 외부로 보내거나 외부 사이트에서 코드를 불러오지 않도록 해 줘. 구현하기 어려운 조건이 있으면 먼저 알려 줘.HTML을 다운로드해 열고 자료를 불러옵니다. 앞에서 골라 둔 한두 건의 값과 목록 포함 여부를 비교합니다.
오류가 있으면 아래처럼 실제 동작과 기대 결과를 함께 알려줍니다.
현재 [파일명·기준일·필터]에서 [문제 항목]이 [실제 결과]로 나와. 정한 기준대로라면 [기대 결과]가 되어야 해. 관련 처리만 고치고 나머지 기능은 유지해 줘. 수정한 HTML을 다시 파일로 줘.원자료 변경: Excel을 수정·저장하고 HTML에서 다시 불러옵니다.
화면·계산 변경: 현재 HTML과 바꿀 기준을 AI에게 전달하고 새 파일을 받습니다.
무엇을 고쳐 달라고 할지 정리하기 어렵다면 도움받는 채팅 함께 쓰기를 참고합니다.
같은 구조의 새 자료에서 한두 건을 골라 포함·제외 여부와 기대 값을 먼저 정합니다. HTML에 불러온 뒤 기준일도 이번 자료에 맞춰 확인합니다.
완성한 HTML과 입력자료를 구분해 보관합니다. 현재 사용하는 파일과 시험에 쓴 자료를 함께 남겨 두면 수정 후 비교하기 편합니다.
공통 화면을 확장했다면 바꾼 화면을 다른 자료로 확인하기로 이어갑니다.
HTML을 만들다 막히거나 계산·실행 결과를 점검받고 싶을 때 씁니다. 만들던 채팅은 그대로 두고 새 기본 채팅을 하나 더 엽니다. 이 채팅이 도움받는 채팅입니다. 막힌 곳이 없으면 이 쪽은 건너뜁니다.
1. 도움받는 채팅 열기
새 기본 채팅을 열고 시작 프롬프트를 첫 메시지로 붙여 넣습니다. 처음 한 번만 넣습니다.
2. 물어보기
현재 요구사항과 실행 결과, 막힌 화면을 함께 전달합니다. 다른 채팅의 파일이나 화면을 알고 있다고 가정하지 말고 필요한 내용을 직접 붙여 넣거나 첨부합니다.
아래 예시에서 지금 상황에 맞는 질문 하나만 골라 복사하고, 대괄호 안을 내 자료와 결과로 바꿉니다.
3. 고치고 확인하기
받은 수정 프롬프트를 만드는 채팅에 넣어 HTML을 고칩니다. 수정 파일을 다시 열고 원자료와 비교합니다. 도움받는 채팅의 설명만으로 계산이나 기능이 맞다고 판단하지 않습니다.
가져온 자료가 없다면 L3에서 만든 대시보드를 우리 팀이 업무를 확인하는 방식에 맞게 바꿉니다. 현업과제를 진행하고 있다면 이 쪽부터 네 쪽은 건너뜁니다. L3에서 HTML을 만든 대화에서 이어갑니다. 새 대화라면 현재 HTML과 업무현황 A를 함께 첨부합니다.
이 대시보드를 우리 팀이 업무를 확인하는 방식에 맞게 바꾸려고 해.
바로 수정하지 말고, 누가 언제 사용하는지, 가장 먼저 확인할 것은 무엇인지, 어떤 기준으로 업무를 골라 볼지 최대 3개만 질문해 줘.
내 답변이 끝나면 현재 자료로 가능한 변경과 추가 정보가 필요한 변경을 구분하고, 바꿀 화면·계산 기준과 유지할 기능을 정리해 줘. 아직 HTML은 만들지 마.AI의 질문을 확인하고 우리 팀에서 실제로 보는 방식대로 짧게 답합니다. 아래 예시를 활용해도 되고, 질문에 맞지 않으면 직접 답해도 됩니다.
| 바꾸고 싶은 부분 | 답변 예시 |
|---|---|
| 먼저 볼 업무 | 팀장이 회의 전에 볼 거야. 마감일이 지났는데 끝나지 않은 일을 맨 위에 보여 줘. |
| 지원 요청 | 지원요청에 내용이 있는 미완료 업무를 따로 모아 줘. 회의에서 도와줄 일을 확인하고 싶어. |
| 담당자별 조회 | 팀원들이 자기 업무를 볼 수 있게 담당자를 선택하면 숫자와 목록이 함께 바뀌게 해 줘. |
| 조회 기간 | 앞으로 7일 대신 14일 안에 마감되는 일을 보고 싶어. 기준일 당일도 포함해 줘. |
| 보여줄 항목 | 목록에서는 업무명, 담당자, 마감일, 다음조치만 먼저 보고 싶어. 나머지 내용은 필요할 때 확인하면 돼. |
AI가 정리한 변경 내용을 읽고 내 의도와 맞는지 확인합니다. 추가 정보가 필요한 기능은 자료를 보완하거나 이번 변경에서 제외합니다. 원자료 한두 건을 골라, 바꾼 기준에서 어느 목록에 들어가고 어떤 값이 나와야 하는지도 먼저 확인합니다.
방금 확인한 변경사항을 현재 대시보드에 반영해 줘. 바꾸기로 한 부분만 수정하고 나머지 기능과 실행 방식은 유지해 줘.
같은 조건을 쓰는 카드의 건수와 목록은 일치하게 해 줘. 원자료에 없는 값은 지어내지 마. 수정한 HTML을 파일로 주고, 바뀐 부분과 확인할 사항을 짧게 알려 줘.수정한 HTML을 열고 업무현황 A를 불러옵니다. 기준일은 2026-10-01로 두고, 앞에서 골라 둔 업무가 예상한 값과 목록으로 나오는지 확인합니다. 담당자나 기간을 바꿨다면 숫자와 목록도 함께 확인합니다.
수정한 HTML에 를 불러오고 기준일을 2026-11-01로 바꿉니다. 자료만 바꿔도 내가 정한 조회 방식과 계산 기준이 적용되는지 확인합니다.
| 확인할 곳 | 확인할 내용 |
|---|---|
| 자료 교체 | 전체 업무는 T11~T14 네 건이며, 이전 자료의 T01~T08은 남아 있지 않은가? |
| 바꾼 기능 | 내가 정한 목록·표시 항목·조회 조건이 새 자료에도 적용되는가? |
| 계산 결과 | 원자료에서 직접 고른 업무의 포함·제외 여부가 맞는가? |
| 건수와 목록 | 같은 조건으로 표시한 건수와 목록의 업무 수가 일치하는가? |
| 빈값과 완료 업무 | T13의 마감일 ‘미정’, T14의 완료 상태를 정한 기준대로 처리하는가? |
조회 기간이나 계산 조건을 바꿨다면 L3의 기대 결과를 그대로 적용하지 않습니다. 바꾼 기준으로 원자료를 다시 확인합니다. 오류가 있으면 실제 결과와 기대 결과를 함께 알려 주고 해당 부분만 수정합니다.
지원 요청 목록과 담당자 필터를 선택했다면 를 참고할 수 있습니다. 예제의 계산 기준이 내가 정한 기준과 같은지 확인합니다.
HTML이 의도한 대로 작동하는지 확인한 뒤, 다른 사람에게 전달할 안내가 필요할 때 사용합니다.
동료에게 알려줄 내용은 네 가지입니다.
L1·L2에서는 반복할 기준을 Project에 저장했습니다. L3·L4에서는 업무 질문을 데이터와 계산 조건으로 옮겼습니다. 다시 사용할 프롬프트와 기능 설명은 뒤의 부록에서 찾을 수 있습니다.
수업 후 필요한 기능과 기준을 찾아보는 곳입니다. 앞의 실습 링크로 이동해 프롬프트를 다시 복사할 수 있습니다.
| 하고 싶은 일 | 찾아갈 곳 |
|---|---|
| 짧은 요청을 프롬프트로 구체화 | AI에게 먼저 질문받기 |
| 잘된 대화를 반복 지침으로 저장 | 지침과 자료 나누기 |
| 내 업무 Project 만들기 | 현업과제 시작 |
| 자료에서 업무 질문 찾기 | 업무 질문 정하기 |
| Excel을 읽는 HTML 만들기 | 대시보드 생성 |
| 동작이 이상한 부분 수정 | 실제 값과 비교 |
메타 프롬프팅: 하려는 일과 질문 요청을 함께 입력 → AI 질문에 답하기 → 초안의 조건 선택 → 완성 프롬프트를 코드 박스로 받기 → 실행하고 필요한 부분 수정.
7요소는 역할·과업·맥락·기준·절차·형식·예시입니다. 매번 모두 적기보다 결과에 영향을 주는 빠진 조건을 찾는 데 씁니다.
같은 내용을 목적에 맞는 형식으로 표현할 수 있습니다.
자연어 — 사람이 문장으로 읽기
교육장 견적 두 건을 확보했습니다. 팀장이 장소를 선택하면 예약합니다.Markdown — 제목과 목록으로 문서 정리
## 교육장 예약
- 현재: 견적 2건 확보, 장소 미선정
- 다음 조치: 팀장 선택 후 예약교육장 예약
JSON — 항목 이름과 값을 일정한 구조로 전달
{
"업무ID": "T03",
"상태": "진행",
"지원요청": "팀장 장소 선택"
}MD는 편집할 내용의 원본으로, DOCX·PPTX·XLSX·HTML은 필요한 사용 형식으로 선택합니다. 형식을 바꾼 뒤에는 값과 내용이 유지됐는지 확인합니다.
| 표현 | 업무에서 쓸 장면 |
|---|---|
| 흐름도 | 자료 접수 → 확인 → 승인 |
| 시퀀스 다이어그램 | 담당자·검토자 사이의 요청과 회신 |
| 간트 차트 | 업무 기간과 일정 |
| 상태도 | 대기·진행·보류·완료 전환 |
| 관계도·ER 다이어그램 | 자료 항목·개체의 연결 |
| 마인드맵 | 업무나 아이디어의 분류 |
기본 채팅에서 다음처럼 요청할 수 있습니다.
팀원 메모를 받아 주간보고를 작성하고, 사람이 원자료와 대조한 뒤 반복 기준을 Project에 저장하는 과정을 Mermaid 흐름도로 그려 줘.AI는 Mermaid 코드(글자)를 보내고, 채팅창이 그 코드를 읽어 화면에 그림으로 그립니다. 그림이 보이면 순서와 분기가 실제 업무와 맞는지 확인합니다.
이 그림은 화면에만 보이고 파일로 남지 않으므로, 필요하면 화면을 캡처합니다. PNG 파일이 필요하면 Graphviz로 그려 달라고 요청합니다. Graphviz는 Mermaid와 다른 도구라서 모양과 내용이 바뀌지 않았는지 다시 봅니다. 요청 예시는 결재 흐름, 데이터 처리 순서도 그리기에 있습니다.
| 필요한 자료 | 다운로드 |
|---|---|
| Project 입력 | · |
| Project 소스 | · |
| 워드 완성 예시 | |
| 저장할 지침 예시 | |
| 대시보드 입력 | · |
| CSV 대안 | · |
| 실행 예제 | · |
Excel 읽기가 구현되지 않으면 같은 열의 CSV를 읽도록 제작 프롬프트를 바꿔 요청합니다. CSV 파일만 바꿔 넣는 것으로 모든 화면에서 동작하는 것은 아닙니다.
예제와 준비된 Excel로 파일의 동작과 계산 결과를 비교할 수 있습니다. 프롬프트 복사가 막히면 코드 박스의 글을 직접 선택해 복사합니다.
| 하려는 일 | 기능 | 확인할 점 |
|---|---|---|
| 이번 자료로 초안 만들기 | 기본 채팅·파일 첨부 | 원자료를 읽었는가 |
| 반복 규칙 저장 | Project 지침·소스 | 새 자료에서도 유지되는가 |
| 자료 밖의 질문 조사 | Deep Research | 링크를 열어 주장·근거 대조 |
| 긴 글의 일부 수정 | Canvas | 수정 범위·이전 내용 보존 |
| 문서·표·차트·HTML 받기 | 파일 생성 | 다운로드한 파일 직접 열기 |
| 관계·순서 표현 | Mermaid | 화살표·분기·내용 확인 |
Canvas는 문서 편집 공간입니다. 영역을 지정해 AI에게 고치게 하거나 직접 서식을 바꾸고, 실행 히스토리에서 이전 버전을 살펴볼 수 있습니다. HTML 실행 화면은 다운로드한 파일을 브라우저에서 엽니다.
Project에 저장한 자료와 현재 채팅에 첨부한 자료의 역할을 구분합니다. 채팅이 달라져도 현재 자료와 기준을 분명히 적고 결과를 확인합니다.
뒤의 업무별 활용 예시 39개는 내 업무에서 해볼 만한 작업을 찾을 때 사용합니다.
Gen AI Hub 채팅창의 코드 인터프리터에는 패키지 654개가 들어 있습니다. 그중 업무에 쓰기 좋은 39개를 골랐습니다. 이 패키지로 Excel 계산, 문서·차트 생성, PDF 처리 같은 일을 채팅 안에서 할 수 있어 Project와 HTML 대시보드를 만들 때 함께 쓸 수 있습니다. 카드를 누르면 요청 예시와 패키지·코드를 볼 수 있습니다. 요청은 내 자료와 조건에 맞게 바꿉니다.
예시별 실행 상태를 확인하고, 필요한 기능은 현재 환경에서 직접 시험해 봅니다.
Gen AI Hub 안에서 Python으로 만드는 과정과 받은 HTML을 브라우저에서 사용하는 과정은 다릅니다. HTML 파일 생성만으로 새 Excel을 읽는 기능이나 외부 연결 없이 실행되는지까지 확인된 것은 아닙니다.
기존 엑셀 양식을 열어 값·수식·서식을 채우고 고치는 도구입니다. 엑셀 작업의 표준입니다.
첨부한 실적 보고 양식의 요약 시트 B8:C11에 부서별 목표와 실적을 채워 줘원본의 선택 제안: 자동 선택 · 코드의 이름: openpyxl
원본 주의사항: 수식은 저장되지만 계산 결과값은 저장되지 않습니다. 엑셀에서 열면 다시 계산됩니다.
원본 실행 기록: 생성 파일: 보고서.xlsx, 양식.xlsx
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from openpyxl import Workbook, load_workbook
wb = Workbook(); ws = wb.active; ws.title = '요약'
ws.append(['부서', '목표', '실적']); ws.append(['영업1팀', 100, 90])
wb.save('양식.xlsx') # 가상 양식 만들기
wb = load_workbook('양식.xlsx') # 기존 양식 열기
ws = wb['요약']
ws['D1'] = '달성률'; ws['D2'] = '=C2/B2' # 수식 넣기
ws['D2'].number_format = '0.0%'
wb.save('보고서.xlsx')엑셀 파일을 새로 만들 때 쓰는 도구입니다. pandas로 엑셀을 저장하면 자동으로 쓰입니다.
부서별 집계 결과를 새 엑셀 파일로 만들어 줘. 열 너비도 맞춰 줘원본의 선택 제안: 자동 선택 · 코드의 이름: xlsxwriter
원본 주의사항: 새 파일 전용입니다. 기존 양식을 열어 고칠 수 없으니 양식 수정에는 openpyxl을 씁니다.
원본 실행 기록: 생성 파일: 신규.xlsx
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import pandas as pd
df = pd.DataFrame({'부서': ['영업1팀', '영업2팀'], '실적': [90, 120]})
with pd.ExcelWriter('신규.xlsx', engine='xlsxwriter') as w:
df.to_excel(w, sheet_name='실적', index=False)
w.sheets['실적'].set_column('A:B', 14) # 열 너비 지정구버전 엑셀(.xls)을 읽는 도구입니다. pandas가 .xls를 읽을 때 자동으로 씁니다.
첨부한 .xls 파일을 읽어서 부서별로 합계를 내 줘원본의 선택 제안: 자동 선택 · 코드의 이름: xlrd
원본 주의사항: 읽기만 됩니다. 수정이 필요하면 LibreOffice로 .xlsx로 바꾼 뒤 openpyxl로 처리합니다.
원본 실행 기록: 생성 파일: 구버전.xls, 구버전.xlsx
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import pandas as pd
df = pd.read_excel('구버전.xls', engine='xlrd') # .xls 읽기
print(df.head())엑셀 바이너리 파일(.xlsb)을 읽는 도구입니다.
pyxlsb로 첨부한 .xlsb 파일의 데이터 시트를 읽어 줘테스트용 .xlsb 파일을 만들 수 없어 실행하지 못함. 현업과제의 기본 경로로 선택하기 전에 별도 확인이 필요합니다.
원본의 선택 제안: 이름 지정 필요 · 코드의 이름: pyxlsb
원본 주의사항: [확인 필요] 테스트용 .xlsb 파일을 만들 수 없어 실제 읽기 동작은 확인하지 못했습니다.
원본 실행 기록: 테스트용 .xlsb 파일을 만들 수 없어 실행하지 못함
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import pandas as pd
df = pd.read_excel('실적.xlsb', engine='pyxlsb', sheet_name='데이터')
print(df.head())엑셀 표 같은 데이터를 읽고 거르고 묶어서 집계하는 기본 도구입니다.
실적 파일에서 취소 건을 빼고 부서별 목표·실적 합계와 달성률을 구해 줘원본의 선택 제안: 자동 선택 · 코드의 이름: pandas
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import pandas as pd
df = pd.DataFrame({'부서': ['영업1팀','영업1팀','영업2팀'],
'목표': [100, 50, 80], '실적': [90, 60, 70],
'상태': ['확정','확정','취소']})
df = df[df['상태'] == '확정'] # 취소 건 제외
g = df.groupby('부서')[['목표','실적']].sum()
g['달성률'] = g['실적'] / g['목표']
print(g)숫자 계산을 빠르게 처리하는 기본 도구입니다. pandas도 내부에서 씁니다.
목표가 0인 부서는 달성률을 빈칸으로 두고 계산해 줘원본의 선택 제안: 자동 선택 · 코드의 이름: numpy
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import numpy as np
목표 = np.array([100, 0, 80]); 실적 = np.array([90, 5, 70])
달성률 = np.where(목표 == 0, np.nan, 실적 / np.where(목표 == 0, 1, 목표))
print(달성률) # 목표 0은 nan(해당 없음)대용량 데이터를 빠르게 저장하고 읽는 파일 형식(Parquet)을 다루는 도구입니다.
pyarrow로 이 데이터를 parquet 파일로 저장해 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: pyarrow
원본 주의사항: 결과 파일을 엑셀로 열 수는 없습니다. 분석용 중간 저장에만 씁니다.
원본 실행 기록: 생성 파일: 원장.parquet
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import pandas as pd
df = pd.DataFrame({'부서': ['영업1팀','영업2팀'], '실적': [90, 120]})
df.to_parquet('원장.parquet', engine='pyarrow')
print(pd.read_parquet('원장.parquet'))통계 검정과 과학 계산을 하는 도구입니다.
개선 전후 데이터에 의미 있는 차이가 있는지 t검정으로 확인해 줘원본의 선택 제안: 자동 선택 · 코드의 이름: scipy
원본 주의사항: 통계 결과의 해석은 담당자가 판단해야 합니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from scipy import stats
전 = [2.1, 2.4, 2.3, 2.6, 2.2]; 후 = [1.8, 1.9, 2.0, 1.7, 1.9]
t, p = stats.ttest_ind(전, 후)
print(f't={t:.2f}, p={p:.4f}')회귀분석, 추세 분석 같은 통계 모델을 만드는 도구입니다.
statsmodels로 월별 실적의 추세를 회귀분석해 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: statsmodels
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import statsmodels.api as sm
월 = [1, 2, 3, 4, 5, 6]; 실적 = [100, 104, 110, 113, 119, 124]
m = sm.OLS(실적, sm.add_constant(월)).fit()
print(m.params) # 절편, 월별 증가분과거 데이터로 예측 모델을 만드는 머신러닝 도구입니다.
scikit-learn으로 다음 달 실적을 예측해 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: sklearn
원본 주의사항: 예측값은 참고용입니다. 실제 계획 수립에는 담당자 검토가 필요합니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from sklearn.linear_model import LinearRegression
X = [[1], [2], [3], [4], [5], [6]]; y = [100, 104, 110, 113, 119, 124]
m = LinearRegression().fit(X, y)
print('7월 예측:', round(m.predict([[7]])[0], 1))여러 요인을 함께 고려하는 고성능 예측 모델 도구입니다.
xgboost로 판매량 예측 모델을 만들어 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: xgboost
원본 주의사항: 데이터가 적으면 결과가 불안정합니다. 참고용으로만 씁니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import numpy as np
from xgboost import XGBRegressor
X = np.array([[1,10],[2,12],[3,9],[4,15],[5,14],[6,16]]); y = [100,104,110,113,119,124]
m = XGBRegressor(n_estimators=30, max_depth=2).fit(X, y)
print(m.predict(np.array([[7, 17]])))방정식 풀이처럼 수식을 기호로 계산하는 도구입니다.
sympy로 연간 목표 달성에 필요한 남은 달 평균 실적을 풀어 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: sympy
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import sympy as sp
x = sp.symbols('x')
# 연 목표 1,200, 9개월 누계 870 → 남은 3개월 평균 x
print(sp.solve(sp.Eq(870 + 3*x, 1200), x))막대·선 그래프를 그림 파일(PNG)로 만드는 기본 도구입니다.
부서별 목표와 실적을 막대그래프로 그려 줘원본의 선택 제안: 자동 선택 · 코드의 이름: matplotlib
원본 주의사항: 이 환경에는 한글 폰트가 미리 설정되어 있습니다. 폰트를 따로 지정하지 마세요.
원본 실행 기록: 생성 파일: chart.png
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import matplotlib; matplotlib.use('Agg')
import matplotlib.pyplot as plt
부서 = ['영업1팀', '영업2팀']; 실적 = [90, 120]
plt.bar(부서, 실적); plt.title('부서별 실적')
plt.savefig('chart.png', dpi=150, bbox_inches='tight'); plt.close()matplotlib 위에서 통계 그래프를 더 보기 좋게 그리는 도구입니다.
seaborn으로 부서별 월간 실적 추이를 그려 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: seaborn
원본 실행 기록: 생성 파일: trend.png
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import matplotlib; matplotlib.use('Agg')
import matplotlib.pyplot as plt, seaborn as sns, pandas as pd
df = pd.DataFrame({'월': [1,2,3]*2, '실적': [90,95,99,120,118,125],
'부서': ['영업1팀']*3 + ['영업2팀']*3})
sns.lineplot(data=df, x='월', y='실적', hue='부서')
plt.savefig('trend.png', dpi=150, bbox_inches='tight'); plt.close()마우스를 올리면 값이 보이는 인터랙티브 차트를 HTML로 만드는 도구입니다.
plotly로 부서별 실적 차트를 HTML 파일로 만들어 줘HTML 생성 기록과 실제 브라우저 작동 확인은 다릅니다. 다른 Excel을 불러오는 기능은 별도로 만들고 시험해야 합니다.
원본의 선택 제안: 이름 지정 권장 · 코드의 이름: plotly
원본 주의사항: 사내망에서 열려면 반드시 include_plotlyjs=True로 저장해 차트 기능을 파일 안에 넣어야 합니다.
원본 실행 기록: 생성 파일: chart.html
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import plotly.express as px
fig = px.bar(x=['영업1팀', '영업2팀'], y=[90, 120], title='부서별 실적')
fig.write_html('chart.html', include_plotlyjs=True) # 외부 연결 없이 열림간단한 문장으로 차트를 정의하는 시각화 도구입니다.
altair로 부서별 실적 차트를 만들어 줘HTML 생성 기록과 실제 브라우저 작동 확인은 다릅니다. 다른 Excel을 불러오는 기능은 별도로 만들고 시험해야 합니다.
원본의 선택 제안: 이름 지정 필요 · 코드의 이름: altair
원본 주의사항: [확인 필요] 저장한 HTML은 열 때 외부 인터넷에서 차트 기능을 불러오므로 사내망에서 안 보일 수 있습니다.
원본 실행 기록: 생성 파일: chart_alt.html
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import altair as alt, pandas as pd
df = pd.DataFrame({'부서': ['영업1팀', '영업2팀'], '실적': [90, 120]})
alt.Chart(df).mark_bar().encode(x='부서', y='실적').save('chart_alt.html')워드(.docx) 문서를 읽고, 새로 만들고, 양식에 내용을 채우는 도구입니다. 워드 작업의 표준입니다.
첨부한 회의록 워드 파일에서 결정 사항 표만 뽑아 줘원본의 선택 제안: 자동 선택 · 코드의 이름: docx
원본 주의사항: 설치 이름은 python-docx지만 코드에서는 import docx로 부릅니다. .doc 파일은 LibreOffice로 .docx로 바꾼 뒤 처리합니다.
원본 실행 기록: 생성 파일: 보고서.docx
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from docx import Document
d = Document(); d.add_heading('월간 실적 보고', 1)
t = d.add_table(rows=2, cols=2)
t.cell(0,0).text = '부서'; t.cell(0,1).text = '실적'
t.cell(1,0).text = '영업1팀'; t.cell(1,1).text = '90'
d.save('보고서.docx')
d = Document('보고서.docx') # 다시 읽기
print([p.text for p in d.paragraphs]) # 본문
print([[c.text for c in r.cells] for r in d.tables[0].rows]) # 표파워포인트(.pptx) 슬라이드를 만들고 고치는 도구입니다. PPT 작업의 표준입니다.
이번 달 실적으로 보고용 PPT 3장을 만들어 줘원본의 선택 제안: 자동 선택 · 코드의 이름: pptx
원본 주의사항: 코드에서는 import pptx로 부릅니다. SmartArt 등 일부 도형은 고치기 어렵습니다[확인 필요].
원본 실행 기록: 생성 파일: 보고.pptx
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from pptx import Presentation
from pptx.util import Pt
prs = Presentation()
s = prs.slides.add_slide(prs.slide_layouts[1])
s.shapes.title.text = '부서별 실적'
s.placeholders[1].text = '영업1팀 90 / 영업2팀 120'
prs.save('보고.pptx')PDF에서 글자와 표를 뽑아내는 도구입니다. PDF 읽기의 표준입니다.
pdfplumber로 첨부 PDF의 표를 뽑아서 엑셀로 만들어 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: pdfplumber
원본 주의사항: 스캔한 이미지 PDF는 글자가 없어 읽히지 않습니다.
원본 실행 기록: 생성 파일: 보고서.pdf, 부록.pdf
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import pdfplumber
with pdfplumber.open('보고서.pdf') as pdf:
page = pdf.pages[0]
print(page.extract_text())
print(page.extract_tables()) # 표를 행·열 그대로PDF 합치기, 나누기, 회전, 암호 설정 같은 편집 도구입니다. PDF 편집의 표준입니다.
pypdf로 PDF 두 개를 하나로 합쳐 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: pypdf
원본 실행 기록: 생성 파일: 보고서.pdf, 부록.pdf, 합본.pdf
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from pypdf import PdfReader, PdfWriter
w = PdfWriter()
for f in ['보고서.pdf', '부록.pdf']:
for p in PdfReader(f).pages:
w.add_page(p)
with open('합본.pdf', 'wb') as out:
w.write(out)PDF 페이지를 이미지로 바꾸는 등 기능이 많은 PDF 도구입니다. 이미지 변환이 필요할 때만 씁니다.
PyMuPDF로 PDF 첫 페이지를 이미지로 바꿔 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: fitz
원본 주의사항: [확인 필요] AGPL 또는 상용 라이선스입니다. 사내 사용 가능 여부는 법무·IT 정책을 확인하세요. 코드에서는 import fitz로 부릅니다.
원본 실행 기록: 생성 파일: page1.png, 보고서.pdf, 부록.pdf
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import fitz # PyMuPDF
doc = fitz.open('보고서.pdf')
doc[0].get_pixmap(dpi=120).save('page1.png')표와 글이 들어간 정형 보고서 PDF를 코드로 직접 만드는 도구입니다.
이번 달 실적 표를 PDF 보고서로 만들어 줘원본의 선택 제안: 자동 선택 · 코드의 이름: reportlab
원본 주의사항: 한글을 쓰려면 반드시 폰트를 등록해야 합니다. 안 하면 글자가 □로 나옵니다.
원본 실행 기록: 생성 파일: 실적보고.pdf
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import os
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfgen import canvas
pdfmetrics.registerFont(TTFont('KR', os.environ['KOREAN_FONT_PATH'])) # 한글 폰트 등록
c = canvas.Canvas('실적보고.pdf'); c.setFont('KR', 14)
c.drawString(72, 760, '월간 실적 보고 - 영업1팀 90 / 영업2팀 120')
c.save()HTML로 만든 화면을 그대로 PDF로 바꾸는 도구입니다.
weasyprint로 이 HTML 보고서를 PDF로 바꿔 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: weasyprint
원본 실행 기록: 생성 파일: 보고서_html.pdf
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from weasyprint import HTML
html = '''<html><body style="font-family:NanumGothic">
<h1>월간 실적 보고</h1><p>영업1팀 90 / 영업2팀 120</p></body></html>'''
HTML(string=html).write_pdf('보고서_html.pdf')이미지 크기 조정, 자르기, 글자 넣기 같은 이미지 편집 도구입니다.
첨부한 사진들을 가로 800픽셀로 줄여 줘원본의 선택 제안: 자동 선택 · 코드의 이름: PIL
원본 주의사항: 이미지에 한글을 쓰려면 폰트 파일을 지정해야 합니다. 코드에서는 import PIL로 부릅니다.
원본 실행 기록: 생성 파일: label.png
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import os
from PIL import Image, ImageDraw, ImageFont
img = Image.new('RGB', (400, 120), 'white')
font = ImageFont.truetype(os.environ['KOREAN_FONT_PATH'], 24) # 한글 폰트
ImageDraw.Draw(img).text((20, 40), '설비 점검 완료', fill='black', font=font)
img.save('label.png')업무 흐름도나 조직도를 글로 정의해 그림으로 그려 주는 도구입니다.
graphviz로 실적 보고 업무 흐름도를 그려 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: graphviz
원본 실행 기록: 생성 파일: 흐름도.png
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import graphviz
g = graphviz.Digraph(format='png')
g.attr('node', shape='box', fontname='NanumGothic')
g.edge('원천 데이터', '검증'); g.edge('검증', '집계'); g.edge('집계', '보고서')
g.render('흐름도', cleanup=True)QR 코드 이미지를 만드는 도구입니다.
qrcode로 이 주소의 QR 코드 이미지를 만들어 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: qrcode
원본 실행 기록: 생성 파일: qr.png
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import qrcode
qrcode.make('https://intranet.example/report').save('qr.png') # 가상 주소HTML 틀(템플릿)에 데이터를 끼워 넣어 보고서를 찍어내는 도구입니다.
jinja2 템플릿으로 부서별 HTML 보고서를 만들어 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: jinja2
원본 실행 기록: 생성 파일: 보고서.html
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from jinja2 import Template
t = Template('<h1>{{ 월 }} 실적</h1><ul>{% for d in 부서 %}<li>{{ d.이름 }}: {{ d.실적 }}</li>{% endfor %}</ul>')
html = t.render(월='2026-10', 부서=[{'이름':'영업1팀','실적':90},{'이름':'영업2팀','실적':120}])
open('보고서.html', 'w', encoding='utf-8').write(html)HTML 문서에서 필요한 표나 글자를 골라 뽑는 도구입니다.
beautifulsoup으로 첨부한 HTML 파일의 표를 엑셀로 옮겨 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: bs4
원본 주의사항: 외부망이 막혀 있어 웹사이트에 직접 접속해 가져올 수는 없습니다. 파일로 받은 HTML만 처리합니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from bs4 import BeautifulSoup
html = '<table><tr><th>부서</th><th>실적</th></tr><tr><td>영업1팀</td><td>90</td></tr></table>'
soup = BeautifulSoup(html, 'html.parser')
print([[c.get_text() for c in tr.find_all(['th','td'])] for tr in soup.find_all('tr')])마크다운으로 쓴 글을 HTML로 바꾸는 도구입니다.
markdown 패키지로 이 요약문을 HTML로 바꿔 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: markdown
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import markdown
text = '# 요약\n\n| 부서 | 실적 |\n|---|---|\n| 영업1팀 | 90 |'
print(markdown.markdown(text, extensions=['tables']))데이터가 정해진 규칙(형식·범위)에 맞는지 항목별로 점검하는 도구입니다.
pydantic으로 각 행이 규칙에 맞는지 점검하고 오류 목록을 만들어 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: pydantic
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from pydantic import BaseModel, Field, ValidationError
from datetime import date
class 실적행(BaseModel):
거래ID: str; 일자: date; 목표: float = Field(ge=0); 실적: float
try:
실적행(거래ID='T001', 일자='2026-10-05', 목표=-5, 실적=90)
except ValidationError as e:
print(e.errors()[0]['loc'], e.errors()[0]['msg']) # 목표 음수 오류JSON 데이터나 설정 파일이 정해진 구조를 따르는지 점검하는 도구입니다.
jsonschema로 결과 JSON이 규칙에 맞는지 확인해 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: jsonschema
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from jsonschema import validate
schema = {'type':'object','required':['month','total'],
'properties':{'month':{'type':'string','pattern':r'^\d{4}-\d{2}$'}}}
validate({'month':'2026-10','total':{}}, schema)
print('구조 점검 통과')CSV·텍스트 파일의 글자 인코딩(UTF-8, CP949 등)을 알아내는 도구입니다.
chardet으로 이 CSV 인코딩을 확인하고 한글이 안 깨지게 읽어 줘원본의 선택 제안: 이름 지정 권장 · 코드의 이름: chardet
원본 주의사항: 짧은 파일은 판정이 틀릴 수 있습니다. 한글 CSV는 CP949인 경우가 많습니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import chardet
raw = '부서,실적\n영업1팀,90\n영업2팀,120\n'.encode('cp949')
print(chardet.detect(raw)) # 인코딩 추정 결과월말, N개월 후 같은 날짜 계산과 다양한 날짜 표기 해석을 돕는 도구입니다.
각 거래일 기준 3개월 후 날짜와 해당 월의 말일을 계산해 줘원본의 선택 제안: 자동 선택 · 코드의 이름: dateutil
원본 주의사항: 코드에서는 import dateutil로 부릅니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from datetime import date
from dateutil.relativedelta import relativedelta
from dateutil import parser
d = date(2026, 1, 31)
print(d + relativedelta(months=1)) # 2026-02-28 (월말 자동 보정)
print(parser.parse('2026.10.5').date())나라별 공휴일 목록을 알려 주는 도구입니다.
holidays로 한국 공휴일을 빼고 10월 영업일 수를 세 줘ModuleNotFoundError: No module named 'holidays'. 현업과제의 기본 경로로 선택하기 전에 별도 확인이 필요합니다.
원본의 선택 제안: 이름 지정 권장 · 코드의 이름: holidays
원본 주의사항: [확인 필요] 대체공휴일·임시공휴일 반영 여부는 사내 달력과 대조하세요.
원본 실행 기록: ModuleNotFoundError: No module named 'holidays'
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import holidays, pandas as pd
kr = holidays.KR(years=2026)
days = pd.bdate_range('2026-10-01', '2026-10-31')
print(sum(1 for d in days if d.date() not in kr), '영업일')설정 파일(YAML)을 읽고 쓰는 도구입니다. 부서명·기준값을 코드와 분리할 때 씁니다.
설정은 yaml 파일에서 읽도록 스크립트를 바꿔 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: yaml
원본 주의사항: 반드시 safe_load로 읽습니다. 코드에서는 import yaml로 부릅니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import yaml
cfg = yaml.safe_load('''
부서: [영업1팀, 영업2팀, 생산지원팀, 품질지원팀]
허용상태: [확정, 취소]
''')
print(cfg['부서'])스크립트가 의도대로 계산하는지 자동으로 시험하는 도구입니다.
pytest로 달성률 계산 함수 테스트를 만들어 돌려 줘원본의 선택 제안: 이름 지정 필요 · 코드의 이름: pytest
원본 실행 기록: 생성 파일: .pytest_cache, __pycache__, test_calc.py
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
import subprocess, sys
open('test_calc.py', 'w', encoding='utf-8').write('''
def 달성률(목표, 실적):
return None if 목표 == 0 else 실적 / 목표
def test_기본(): assert 달성률(100, 90) == 0.9
def test_분모0(): assert 달성률(0, 5) is None
''')
r = subprocess.run([sys.executable, '-m', 'pytest', '-q', 'test_calc.py'], capture_output=True, text=True)
print(r.stdout[-200:])기체·액체의 밀도, 끓는점 같은 물성값을 계산하는 도구입니다.
CoolProp으로 25℃, 1기압 질소 밀도를 계산해 줘(참고용)원본의 선택 제안: 이름 지정 필요 · 코드의 이름: CoolProp
원본 주의사항: 공식 물성 대체 금지. 안전·출하·법정 자료에는 공식 물성 자료를 씁니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from CoolProp.CoolProp import PropsSI
rho = PropsSI('D', 'T', 298.15, 'P', 101325, 'Nitrogen') # kg/m³
print(f'질소 밀도(참고): {rho:.3f} kg/m3')화학 구조식을 다루고 분자량 등을 계산하는 도구입니다.
rdkit으로 CF4 분자량을 계산해 줘(참고용)원본의 선택 제안: 이름 지정 필요 · 코드의 이름: rdkit
원본 주의사항: 참고용입니다. 공식 자료를 대체하지 않습니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from rdkit import Chem
from rdkit.Chem import Descriptors
m = Chem.MolFromSmiles('FC(F)(F)F') # CF4
print('분자량(참고):', round(Descriptors.MolWt(m), 3))원소의 원자량 등 주기율표 정보를 알려 주는 도구입니다.
mendeleev로 F, N, Si의 원자량 표를 만들어 줘(참고용)원본의 선택 제안: 이름 지정 필요 · 코드의 이름: mendeleev
원본 주의사항: 참고용입니다. 공식 자료를 대체하지 않습니다.
원본 실행 기록: 출력 확인
아래 코드는 원본 자료의 가상 예시입니다. 워크북에서는 실행하지 않습니다.
from mendeleev import element
for s in ['F', 'N', 'Si']:
e = element(s); print(s, e.name, e.atomic_weight)업무를 정리하고, 반복하고,
함께 보는 도구를 만듭니다.