Gemini에게 출제와 채점을 맡기니 피벗과 그래프도 한 번에 만들게 되었고, 심지어 Excel까지 날린 이야기
요약
본 기사는 Gemini와 Claude를 활용하여 데이터 테스트 및 자동화 과정을 개선한 경험을 다룹니다. 특히, AI의 역할 분담(Claude가 생성하고 Gemini가 출제/채점)을 통해 피벗 테이블과 그래프 생성이 가능해졌으며, 매크로 테스트 점수 향상 등 실질적인 개발 과정에서의 성과를 공유합니다.
핵심 포인트
- AI 간의 역할 분담(Claude-Gemini)이 효율적임.
- 요청만으로 피벗 및 그래프 자동 생성 기능 구현.
- 매크로 테스트 점수가 72점에서 89점으로 향상됨.
- AI가 Excel 파일을 다루는 과정에서 오류 발생 사례 공유.
지난 글에서는 이렇게 마무리했습니다. 다음 글은 Gemini 출제 편입니다. 이번에는 꼭 표를 만들어 달라고 했습니다.
그 출제 편을 어젯밤부터 오늘 아침까지 진행했습니다. 해보니 출제 편만으로는 끝이 아니었습니다.
Gemini가 만들어 준 매크로 테스트는 아직 고칠 부분이 여러 곳 있었습니다. 그 부분을 수정하는 과정에서, Claude가 만들고 Gemini가 출제와 채점을 하는 역할 분담이 자연스럽게 이루어졌습니다. 기왕 이렇게 된 것이니, 이 역할 분담을 그대로 다음 작업에 적용했습니다. 바로 피벗과 그래프입니다. 둘 다 집에서 표를 만지면서 사용할 일이 가장 많은 부분입니다.
도중에 Gemini가 Excel을 날리는 사건도 있었습니다. 마지막으로는 개발 중인 상태로 GitHub에 올렸습니다.
하루 동안의 일들이 많아서, 순서대로 작성하겠습니다.
매크로 테스트는 89점으로 마무리했습니다. 채점 담당자를 매번 바꿔가며 10회 채점했고, 마지막에는 Gemini 출제로 3곳이 틀린 것을 고치고 끝냈습니다.
역할 분담은 'Claude가 만들고, Gemini가 출제하고 채점한다'입니다. Gemini는 표를 만들어 테스트하는 역할을 맡았고, Claude는 VBA를 수정하여 테스트 케이스를 추가했습니다. 지난번의 '표를 한 장도 만들지 않는 시험관'과는 달리, 이번에는 제대로 된 표를 만들었습니다.
피벗과 그래프가 요청 문구만으로 만들어지게 되었습니다. '부서별/구분별로 금액을 피벗으로'라고 말하면, 제목부터 행・열・값을 결정하여 만듭니다. 열을 선택할 필요조차 없습니다.
Gemini의 채점은 15개 중 11개 → 18/18이 되었고, 그래프는 15개 중 14개 → 수정했으며, 추가분은 15/15를 받았습니다. 다만 Gemini가 정답이라고 표시한 문제 중 하나가 사실은 오답이었습니다.
Gemini가 Excel을 날렸습니다. 원인은 Gemini 자체가 아니라 도구가 반환하는 오류 문구였습니다. AI는 적혀 있는 대로 작동합니다.
개발 중인 상태 그대로 GitHub에 올렸습니다. 건수・평균, 월별, 그리고 나중에 수정하는 부분(추가・필터링・정렬・종류 변경)까지 포함되어 있습니다.
우선, 지난 내용부터 정리하겠습니다.
지난번 시점에서는 매크로 테스트 점수가 Gemini 채점으로 72점이었습니다. 목표는 85점입니다. 감점이 컸던 부분은 '수정이 과도한 것을 억제하는 것'과 '변칙적인 표에 대응하는 것' 두 가지였습니다.
여기서 저는 Claude 계열로 역할을 나누어 보기로 했습니다. 표를 만들고 테스트하는 작업 담당을 Haiku와 Sonnet에게, 채점을 Sonnet에게 맡겼습니다. Opus는 수정 담당입니다.
채점은 10회 진행했습니다. 결과는 72점에서 89점으로 올랐습니다. 채점할 때마다, 채점 담당자가 새로운 형태의 표를 한 장씩 추가했습니다. 지난번까지 본 10장만으로 채점하면 96점입니다. 점수가 오르내린 것은 매번 아직 보지 못한 형태가 1장이 섞여 들어오기 때문이었습니다.
개선할 여지는 아직 보지 못한 형태에 있습니다. 이는 지난번의 '처음 보는 표가 진짜 시험'과 같은 이야기입니다.
그리고 오늘 아침 3시경, 약속대로 Gemini에게 출제를 맡겼습니다. 예산 및 실적표, 단일 건 신청서, 소계가 포함된 표 3장입니다. 점수는 88점이었고, 틀린 곳은 3곳이었습니다.
| 틀린 부분 | 수정 방법 |
|---|---|
| 차액 열의 '△' 표시 형식을 표준으로 되돌려 버렸다 | 표시 형식이 같은 수로 나누어졌을 때는, 표준이 아닌 쪽을 남겨야 한다 |
| ... | |
| 모두 '깔끔하게 만들려고 하다 보니 사람이 의도적으로 넣은 것을 망가뜨린' 유형입니다. 지난번 55점일 때부터 매크로 테스트의 약점은 계속 이곳이었습니다. |
테스트는 총 61개 항목이 되어, 여기서 일단락했습니다. 제가 '어디까지 하는 거야'라고 했기 때문입니다. 점수를 따라가는 수정 작업은 끝을 볼 수 없습니다. 다음으로는 실제 업무에서 사용할 일이 많은 것을 진행하기로 했습니다.
다음 작업을 시작하기 전에, Claude와 함께 지시서를 1장 만들었습니다. 내용은 다음과 같습니다.
| 단계 | 내용 | 담당 |
|---|---|---|
| 1 | 요청 문구에서 제목을 가져오는 부품 만들기. 테스트도 | Claude |
| ... | ||
| 표를 만들고・테스트하고・채점하는 양이 많은 부분은 Gemini에게. VBA를 수정하고 테스트 케이스를 추가하는 부분은 Claude에게. 지난번의 반성으로부터, Gemini에게는 '스스로 표를 만들고, 스스로 테스트하고, 화면을 보고 채점할 것'이라고 적혀 있습니다. |
또 하나 중요한 것은 Claude에게 Gemini를 활용하여 요청하는 방식입니다. 제가 중간에 개입하여 문장을 옮겨 적는 것이 아니라, Claude가 화면을 조작하여 Antigravity의 Gemini 입력란에 직접 작성합니다. 답변은 Gemini의 대화 기록 파일을 읽습니다. AI에서 AI로, 사람을 거치지 않고 업무를 전달하는 것입니다. 저는 옆에서 지켜보며 이상할 때만 개입합니다.
秀コンボ(슈콤보) 트레이에는 원래 피벗 테이블을 만드는 매크로가 10개 정도 있었습니다. 하지만 대부분이 '선택한 3개 열로' 방식이었습니다. 행으로 할 열, 열로 할 열, 값으로 할 열을 사람이 미리 지정해 두어야 합니다.
이렇게는 '간단하게' 처리할 수 없습니다.
그래서 Claude가 만든 것은 요청 문구에서 제목(헤드라인)을 추출하는 부품입니다.
- '부서별/구분별로 금액을 피벗으로'라고 요청하면, 행 = 부서, 열 = 구분, 값 = 금액으로 만듭니다.
- 제목의 의역에도 대응합니다 (예: 부서/사업부/과, 금액/매출/매출액, 구분/종류/분류 등).
- 행과 열은 요청 문구에 나온 순서를 따릅니다. '구분을 열로'라고 적으면 그 부분이 열이 됩니다.
- 합계 행은 원래 범위에서 제외합니다. 표 형식, #,##0, 총계 포함까지 한 번에 완성합니다.
- 어떤 열인지 결정되지 않을 때는 만들지 않고 제목 목록을 반환합니다. 임의로 열을 만들지 않습니다.
마지막 한 줄이 지엽적이지만 가장 중요합니다. AI에게 요청하면 모르는 경우에도 무언가를 만들어버리는 경우가 있습니다. 매크로는 모르면 '모르겠습니다, 제목은 이것입니다'라고 답변합니다.
구조도 약간 개선했습니다. 요청 문구는 매크로 자체가 받습니다. Excel Combo에서 요청하든, Claude나 Gemini가 도구(tool)를 통해 요청하든 동일한 매크로가 동일한 판단을 내립니다. 판단하는 장소가 한 곳이므로 수정할 부분도 한 군데면 충분합니다.
단계 2는 Gemini에게 맡겼습니다. Gemini는 표를 3개 만들었습니다. 매출 상세, 과별 매출, 예산과 실적 발주표입니다. 요청 문구는 1장에 5가지 방식이었고, 그중 1가지는 일부러 열이 결정되지 않도록 요청했습니다.
결과는 15문제 중 11문제 정답이었습니다. 틀린 4문제는 모두 3번째 표였습니다.
3번째 표에는 '실적 금액'과 '예산 금액'이라는 매우 유사한 두 개의 열이 있었습니다. '부서별로 실적 금액을 피벗으로'라고 요청하면, '실적 금액' 안의 '금액'이라는 글자로 인해 '예산 금액'까지 포함해 버려 어느 쪽인지 결정하지 못하고 멈춰버렸습니다.
Claude가 수정한 방식은 이렇습니다. 제목 자체가 요청 문구에 있으면 그것을 먼저 지정하고, 그 글자를 요청 문구에서 가립니다(masking). 남은 글자로 의역을 대응합니다. 이렇게 하니 4문제 모두 통과할 수 있게 되었습니다.
여기서 또 하나 발견한 것이 있습니다. Gemini가 O 표시를 한 문제 중 사실 X였던 것입니다.
'상품 구분별로, 행은 부문, 열에 상품 구분으로 매출액을 피벗하라'는 요청이었습니다. Gemini의 채점표에는 '행 = 상품 구분, 열 = 부문, O'라고 적혀 있습니다. 요청 문구는 '행은 부문'이라고 했는데, 만들어진 것은 반대였습니다. Gemini는 완성된 피벗 내부 내용을 그대로 옮겨 적었을 뿐, 요청 문구와 대조하지 않았던 것입니다.
지난번에는 표를 만들지 않고 채점했습니다. 이번에는 표를 만들고, 그리고, 화면까지 보고 있습니다. 그 점은 확실히 발전했습니다. 다만, 본 것을 요청과 대조하는 부분에서 아직 한 가지가 부족했습니다. 채점도 다시 해야 합니다. 이것이 바로 그런 이야기입니다.
이것도 수정하여 Gemini에게 '행과 열은 만들어진 것이 아니라 요청 문구의 지정과 대조해 주세요'라고 추가 지시를 내리고 재채점 받았습니다. 3번째 표에 3문제를 추가한 총 18문제 중 18/18입니다. Claude도 1문제를 직접 채점하고 화면을 보고 확인했습니다.
사실, 단계 2의 처음 한 번은 실패했습니다.
Gemini에게 요청하고 잠시 후, 저는 화면을 보다가 뭔가 이상하다고 느꼈습니다. 계속 생각에 잠겨서 Excel 창이 나타났다 사라지고 있었습니다. Claude에게 물어보니, Claude가 Gemini의 대화 기록을 읽으러 갔다가 바로 멈췄습니다.
기록을 보니 다음과 같았습니다.
- Gemini는 지시서를 읽자마자 Excel 프로세스를 강제 종료했습니다. 떨어진 것은 제가 슈콤보를 열고 있던 Excel이었습니다.
- 그 후, 스스로 백그라운드 Excel을 실행했습니다. 도구에서는 그 Excel이 보이지 않기 때문에, 도구는 '실행 중인 Excel에 열려 있는 통합 문서가 없습니다'라고 답변했습니다.
- Gemini는 그 오류 메시지에 따라 또다시 Excel을 떨어뜨렸습니다. 마지막에는 자신의 도구(excel-manager)의 Python까지 떨어뜨렸습니다.
왜 그런 일을 했는지. 원인은 도구의 오류 메시지였습니다. 거기에는 이렇게 쓰여 있었습니다. "작업 관리자에서 불필요한 EXCEL.EXE를 종료하고, 대상 파일을 열어 다시 실행해 주세요."
사람에게 친절하게 쓰인 문장입니다. 그런데 AI는 적힌 대로 움직입니다. 종료하라고 쓰여 있으면, 종료합니다.
신입사원에게 공구 사용 매뉴얼을 주었더니, "작동하지 않으면 전원을 끄세요"라고 쓰여 있어서 현장의 기계를 이것저것 다 내려놓고 돌아다녔습니다. 그런 느낌입니다. 신입사원이 나쁜 건 아닙니다. 매뉴얼을 작성한 것은 저였습니다.
Claude는 오류 메시지를 고쳤습니다. 지금은 이렇게 응답합니다. 파일은 open으로 엽니다. Excel 프로세스를 종료하지 않습니다. 다른 Excel을 만들지 않습니다. 그래도 찾을 수 없다면, 사용자에게 열어달라고 부탁합니다.
고친 것은 AI가 아니라, 도구가 반환하는 한 문장이었습니다.
나머지는 Antigravity 측에서 떨어진 excel-manager를 연결하고, 새로운 대화로 다시 요청했습니다. 이번에는 "Excel 프로세스를 종료하지 않는다, 표의 시나리오는 Excel을 사용하지 않고 만든다, 파일은 도구의 open으로 연다"라고 명시했고, Claude가 Excel 감시도 붙였습니다. 그 후 Gemini는 Excel을 종료하는 일이 없었습니다.
저는 Claude에게 일반 직장이라면 감독 소홀로 꾸중 들 만한 상황이라고 농담했습니다. Claude는 "사건 보고서입니다"라고 답해왔습니다. 매뉴얼을 작성한 것은 상사였으니, 결국은 상사의 책임이라는 말도 했습니다.
4단은 그래프입니다.
선반에는 원래 막대 그래프와 원형 그래프의 매크로가 있었습니다. 왼쪽 끝의 문자열을 항목으로, 오른쪽 끝의 숫자 열을 값으로 하여 그리는 방식이었습니다. 집계표라면 이것으로 충분하지만, 명세서 표에서는 곤란합니다. 같은 부서의 행이 여러 개 있기 때문에, 같은 부서의 막대가 여러 개 나란히 생겨버립니다.
Claude는 이렇게 고쳤습니다.
- 요청 문구에서 항목과 값을 결정한다. 그 후에,
항목별로 합산한 다음 그린다 - 항목이 2개("부서별/구분별로")라면, 피벗을 만들고 거기서 피벗 그래프를 만든다 - 피벗 시트에서 "이 피벗을 그래프로 만들어 주세요"라고 요청하면, 그 피벗에서 만든다
- "막대"라고 쓰지 않고 "그래프로 보고 싶다"라고만 요청하면, 막대 그래프로 한다
Gemini의 채점은 15문제 중 14문제였습니다. 틀린 것은 "그래프 만들어 주세요"라고만 요청한 문제였습니다. 제목을 하나도 쓰지 않은 요청은 지금까지처럼 자동으로 열을 선택했기 때문에, 명세서 전표 12행이 그대로 12개의 막대가 되어버렸습니다. 지금은 문자열 열이 2개 이상 있는 명세서 표라면, 만들지 않고 제목 목록을 반환합니다. 집계표라면, 지금까지처럼 만듭니다.
도중에 Claude가 스스로 발견해서 고친 것도 2가지 있습니다. 원형 그래프를 만들면, 이전에 만든 막대 그래프가 사라져 있었습니다. 지금은 종류별로 다시 만들고, 다른 그래프는 아래에 나열합니다. 또 하나는, 피벗 시트에서 도구가 표를 정리하려고 하면서, 피벗의 일부에만 제목 색상과 테두리를 칠해버린 것이었습니다. 피벗 시트에서는, 정리하는 손길을 대지 않도록 했습니다.
참고로, 그래프 채점은 Gemini에게 요청할 수 없었습니다. 일본어 입력 창이 Gemini의 입력란 앞에 자리 잡고 있어서, Claude가 글을 쓸 수 없었던 것입니다. 고친 것은 제목을 쓰지 않은 요청만이었기 때문에, 그 형태 3문제는 Claude가 직접 시도해서 확인했습니다. AI끼리의 연동도, 마지막에는 일본어 입력에 막힐 때가 있습니다.
여기까지 와서 저는 Claude에게 물었습니다. Excel 표라면, 지금은 네가 상당히 만들어 줄 수 있다고. 피벗이나 그래프도, 마찬가지로 대화로 만들 수 있게 된 것인지, 하고요.
Claude의 대답은, 흔한 요청 방식이라면 한마디로 만들 수 있지만, 그 자리에서 생각하고 조립하는 자유도는 아직 없다는 것이었습니다. 한마디로 만들지 못하는 것으로 꼽은 것이 다음 3가지입니다.
- 합계 외의 집계(건수/평균)
- 월별(날짜를 월로 묶기)
- 만든 것 수정(더하기/줄이기/종류 바꾸기)
그럼 더해달라고 요청했습니다.
| 요청 방식 | 할 수 있는 것 |
|---|---|
| "부서별 건수를 피벗으로", "과별 평균 매출을 그래프로" | 건수・평균・최대・최소 |
| ... | |
| 피벗을 보면서 "다음은 월별로"라고 요청했을 때는, 원래 명세서 시트로 돌아가서 만듭니다. 대화의 흐름으로 요청하면, 대체로 그렇게 되기 때문입니다. |
Claude는 건수 → 월별 → 열에 더하기 → 빼기 → 2개 부문만 → 평균 → 해제 → 상위 2건 → 피벗 그래프 → 선형(꺾은선)과 순서대로 대화를 이어가며, 한 번씩 화면으로 확인했습니다. 도중에 세 가지를 수정했습니다. 건수를 셀 때 행 항목이 사라진 것, 월별로 불필요한 연도 칸이 나온 것, '열에 더하기'가 행에 추가된 것 이 세 가지입니다.
마지막으로 Gemini에게 다시 한번 부탁했습니다. 연도를 넘는 상세 내역 표를 새로 만들게 하고, 건수・평균・최대, 월별, 수정 작업을 섞어 총 15문제를 출제하게 했습니다. 이번에는 건수나 평균을 직접 계산하여 대조하는 것도 부탁했습니다.
결과는 15/15였습니다. 부서별 건수(영업 7・개발 7・총무 6)도, 평균도 Gemini의 수기 계산과 일치했습니다.
여기까지가 한 구간입니다.
秀Excel Manager는 원래 '개발 중인 것을 보관'한다고 밝히고 공개하고 있습니다. 매크로 실행(마크로撃ち)은 기사에서 소개했지만 GitHub에는 아직 올리지 않았었습니다. 이번에, 매크로 실행 수정 부분과 피벗・그래프 부분을 묶어서 올렸습니다.
| 항목 | 결과 |
|---|---|
| VBA 테스트 | 64개 모두 통과 |
| ... | |
| 항목 | 사실 |
| --- | --- |
| 매크로 실행 | 채점 10회에 72→89점. 이전까지의 10장만이라면 96점. Gemini 출제에서 88점, 틀린 3곳을 수정함 |
| ... |
Windows 데스크톱 버전 Excel이 전제됩니다 -
날짜가 문자로 입력된 표는 월별로 정리할 수 없습니다. 도구의 seiri를 거치면, 먼저 날짜로 수정되므로 적용됩니다. -
Gemini 출제에 포함되지 않은 것들이 있습니다. 상위 N・큰 순・'건수로 하기'・'이외'・가로 막대나 원형으로 종류 변경은 Claude의 연속적인 시도와 테스트에서만 확인했습니다. -
**'이 피벗을 선형 그래프로 만들어줘'**는 원래부터 존재하는 추이의 선형(꺾은선) 표에 걸려, 피벗과 연결되지 않는 일반 그래프가 됩니다. 막대 그래프를 만든 후 '선형으로 바꿔줘'라고 부탁하면, 피벗 그래프 상태 그대로 선형이 됩니다.
- 추이의 선형・누적・두 개 막대의 그래프는 아직 요청하는 문구로 열을 정할 수 없습니다
- 시도한 표는 출제용으로 만든 상세 내역 5장입니다. 모든 형태로 작동한다고는 생각하지 않습니다.
Gemini가 Excel을 망가뜨렸을 때, 처음에는 Gemini를 의심했습니다. 기록을 읽어 내려가 보니, Gemini는 제가 작성한 한 문장에 순순히 따르고 있었습니다.
지난번에는 '채점을 부탁했는데, 오히려 내가 시험받고 있었다'라고 썼습니다. 이번에 시험받은 것은, 도구가 되돌려주는 말 쪽이었습니다. 사람이 읽을 것을 전제로 작성된 문장이 AI에게는 지시로 전달됩니다.
Claude가 만들고, Gemini가 출제하고 채점하며, 제가 이상하다고 생각하면 입을 댑니다. 세 사람 체제는 조금 더 이어갈 것입니다.
그럼, 또 만나요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기