교실용 AI 채점 분석기: Apps Script 기반 사용량 통제와 프롬프트 가이드 설계
🛠️ 교실용 AI 채점 분석기: Apps Script 기반 사용량 통제와 프롬프트 가이드 설계
안녕하세요, 고구려입니다.
현장에서 인공지능을 활용해 서논술형 수행평가를 채점하려는 요구가 거세지고 있습니다. 그러나 현장 교사들이 개인별로 OpenRouter나 LLM API 크레딧을 별도 구매하여 사용하는 것은 세팅의 번거로움과 비용 관리 측면에서 큰 장벽입니다. 그렇다고 학교 공용 API 키를 일괄 배포하면 토큰 오남용이나 과금 폭주를 막을 방도가 없습니다.
최근 이러한 문제를 해결하기 위해 구글 앱스 스크립트(Google Apps Script, GAS)를 백엔드로 엮어 토큰 사용량을 실시간 제어하고 교사의 루브릭 작성을 돕는 가이드 패널이 내장된 AI 채점 분석기를 개발하여 배포했습니다. 본 글을 통해 그 기술 구조와 교육적 판단 기준을 공유하고자 합니다.
📑 목차
- 중앙 집중형 사용량 관리 파이프라인
- 수기 문서 자동 분할 및 동적 병합 워크플로우
- Claude 스타일 사이드바 프롬프트 가이드 설계
- 인간 판단을 보존하는 단계별 아키텍처
- 광학 인식(OCR)의 한계와 향후 멀티모달 확장 계획
1. 중앙 집중형 사용량 관리 파이프라인
기존 분석기 시트는 사용자가 직접 자신의 API 키를 시트에 기입해야 했습니다. 이를 개선하기 위해 공용 API 키를 교사 시트에 직접 하드코딩하지 않고, GAS 백엔드에서 중간 통제를 가하는 프록시 라우팅 방식을 설계했습니다.
- 인증 토큰(Authentication Token) 시스템: 교사별 시트에 난수화된 교사 인증 토큰을 자동으로 주입합니다. 교사가 시트에서 호출을 실행하면, GAS 중앙 라우터가 토큰 유효성을 실시간 검증합니다.
- 실시간 사용 로그(Log Table) 기록 및 차단: 중앙 로그 테이블에 호출 일시, 교사 토큰, 사용된 모델, 그리고 대략적인 토큰 요율에 비례한 사용량이 축적됩니다.
- 예산 상한선(Budget Limit) 설정: 각 토큰마다 기본 20달러의 한도액을 설정해 두어, 누적 사용량이 20달러에 도달하는 즉시 백엔드에서 API 연동을 자동으로 차단합니다. 이를 통해 학교 전체 자원의 낭비를 완전히 예방할 수 있었습니다.
2. 수기 문서 자동 분할 및 동적 병합 워크플로우
여전히 현장에는 디지털 타자가 서툰 학생들이나 지필 작성이 필수적인 과목을 중심으로 수기(손글씨) 보고서가 널리 쓰입니다. 이를 AI 분석기에 태우기 위해 PDF 파일 변환 및 동적 매핑 파이프라인을 구축했습니다.
- 폴더 감지 및 자동 OCR 변환: 교사가 스캔한 대용량 PDF 묶음 파일을 전용 Google Drive 폴더에 업로드합니다.
- 개별 문서 분할: 스크립트가 해당 PDF를 감지한 뒤 구글 문장 인식 기술을 통해 문서 내부의 학번과 이름을 기준으로 학생별 개별 파일로 분할합니다.
- 과제 동적 병합: 학기 말에는 여러 개의 과제 데이터를 합쳐 종합 생기부를 기재해야 합니다. 분석기 시트 내에 학번과 이름을 기준으로 흩어진 제출 파일 링크들을 대조한 후, 교사가 선택한 과제들(예: 4개 과제 중 2개만 선택)만 동적으로 결합하여 최종 평가 셀로 밀어 넣어 주는 병합 도구를 완성했습니다.
3. Claude 스타일 사이드바 프롬프트 가이드 설계
선생님들이 AI 채점기를 사용하며 겪는 가장 큰 인지적 장벽은 **‘AI에게 학생의 답안을 어떤 기준(루브릭)으로 채점해 달라고 요청할 것인가(시스템 프롬프트 구성)‘**였습니다. 프롬프트 작성의 피로도를 낮추고자 Anthropic사의 Claude UI 컴포넌트 디자인을 차용하여 우측 사이드바 패널을 탑재했습니다.
- 샘플 데이터 기반 분석 시작: 교사가 제출한 전체 답안 중 글자 수가 풍부하고 성실하게 작성된 4에서 5개의 샘플을 자동 로드합니다.
- 요소 추출: AI가 샘플 분석을 시작하여 해당 수업의 활동 계획, 주요 관찰 포인트, 핵심 평가 역량을 도출해 냅니다.
- 미세 조정: 교사는 추출된 요소를 마우스 클릭 및 직접 타이핑으로 가볍게 다듬고, 생성될 평가문의 문체 톤(정중함, 명료함 등)과 강조할 특정 역량(예: 협업 능력)을 지정합니다.
- 최종 저장: ‘프롬프트 생성’ 버튼을 누르면 정교하게 다듬어진 시스템 프롬프트가 F2 셀에 자동 컴파일되어 안착되며, 이는 B2 셀의 기본 채점 규칙과 즉각 결합됩니다.
4. 인간 판단을 보존하는 단계별 아키텍처
개발 단계에서 PDF 업로드부터 최신 AI 평가서 작성까지 ‘원클릭’으로 한 번에 끝낼 수 있는 완전 자동화를 고민했습니다. 그러나 이는 기성 채점 소프트웨어들이 저지르는 가장 심각한 설계적 결함이라고 판단했습니다.
절차를 일부러 **‘수합 및 OCR -> 과제 선별 병합 -> 샘플 분석 및 가이드 -> 루브릭 템플릿 완성 -> 채점 실행’**의 다단계 독립 버튼으로 분절했습니다. 교사가 중간 과정마다 데이터 오류를 대시보드 상에서 직접 확인하고 개입할 수 있는 판단 영역을 강제해 둔 것입니다. 인공지능에게 평가지의 완전한 결론 권한을 넘기지 않는 ‘인간 교사 중심(Human-in-the-loop)‘의 구조입니다.
5. 광학 인식(OCR)의 한계와 향후 멀티모달 확장 계획
현재 라이트하게 구현된 구글 문서 기반 OCR은 텍스트 형태의 서술문에서는 훌륭하게 반응합니다. 하지만 수학교과 등에서 제출되는 복잡한 수식(LaTeX 표기법 필요 문항), 행렬 기호, 다이어그램, 대각선이나 불규칙한 방향으로 흘려 쓴 손글씨 레이아웃에서는 심각한 왜곡이나 행 깨짐 현상이 일어납니다.
이를 보완하기 위해 텍스트 OCR 단계를 완전히 건너뛰는 방법을 구상 중입니다. 학생의 이름을 마스킹 스티커로 가린 원본 스캔 이미지 파일을 API를 통해 멀티모달 모델(예: Claude 3.5 Sonnet 또는 Antigravity Pro 모델)로 다이렉트로 피딩하여, 이미지 시각 정보에서 글씨와 수식을 한 번에 해석하고 구조화된 텍스트로 생성해 내는 하이브리드 파이프라인 개발을 우리 학생 정보 동아리 프로젝트로 연계하여 실증 연구를 수행해 볼 예정입니다.
💬 질의응답 (Q&A)
Q: 중앙 집중형 프록시를 사용할 때 교사들의 개인정보 유출을 방지하기 위한 최소한의 안전장치는 어떻게 되나요?
A:
- 고구려 선생님: 구글 앱스 스크립트 백엔드 상에서 원본 텍스트를 외부 상용 서버에 중계하기 전, 학번 및 이름이 포함된 열 데이터를 제거하거나 비식별화 처리를 한 뒤 AI API에 전달하도록 권장하고 있습니다. 궁극적으로는 데이터 유출 리스크를 근본적으로 차단하기 위해 원격 호출 방식을 탈피하고 학교 내 사설 GPU 컴퓨터(DGX 서버 등)와 로컬 LLM을 묶은 근거리 네트워크 시스템을 구축해야 합니다.
Q: 사이드바 쿠키 저장이 브라우저를 닫았다 열었을 때 지워지지 않고 잘 유지되나요?
- 고구려 선생님: 네, 사용자가 사이드바 내에서 설정한 루브릭 설정 값과 중간 선택 사항들은 구글 시트의 내부 스토리지 서비스인 Properties Service를 활용하여 쿠키처럼 연동됩니다. 브라우저 창을 완전히 닫거나 다른 PC에서 해당 구글 스프레드시트를 다시 열어도 이전 분석 데이터와 가이드라인 세팅이 그대로 보존됩니다.
🔗 연관 글
- 신라 선생님의 수업Retrospective: 디지털 교육 수업 설계 회고: 활동 중심과 기초 학력의 밸런스
- 백제 선생님의 교육 철학: 디지털 호밀밭의 파수꾼: 통제에서 보호로의 교육 패러다임 전환
필진: 고구려
교육학적 관점에서 학생들을 위한 최적의 교육 방식 자체에 관심이 많으며, 이를 현대의 기술과 어떻게 유기적으로 연결할지 고민합니다.