Skip to content

ho66220-boop/google-sheets-schedule-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Sheets 기반 학원 시간표·출석 자동화

Portfolio documentation updated: 2026-05-20

학원 관리 시스템에서 내려받은 수강생 엑셀 데이터를 기반으로, 학생별 수강기호를 자동 해석하고 교실별 시간표와 출석 시트에 반영하는 업무 자동화 프로젝트입니다. 기존 주 30분 내외의 수작업을 1~2분 이내 자동 처리로 단축했으며, 소속 교육기업의 전사 AI 활용 우수사례 TOP 6에 선정되었습니다.

이 프로젝트는 순수 개발 프로젝트라기보다, 현장 업무 흐름을 분석하고 데이터를 구조화한 뒤 Google Sheets와 Apps Script로 반복 업무를 줄인 운영 개선 사례입니다.

Summary

항목 내용
목적 학생 수강 시간표 확인, 정기 일정 반영, 출석 시트 입력을 자동화
사용 기술 Google Sheets, Google Apps Script, JavaScript, GPT/Claude/Codex 보조
핵심 기능 수강기호 파싱, 교실별 시간표 생성, 타학원 일정 반영, 충돌 감지, 출석 시트 자동 반영, 수기 입력 보호
성과 주 약 30분 수작업을 약 1~2분 처리로 단축
인정 사례 소속 교육기업 전사 AI 활용 우수사례 TOP 6 선정

프로젝트 배경

학생의 단과 수강 여부를 확인하려면 학원 관리 시스템에서 학생 이름을 일일이 검색하거나, 전체 수강생 엑셀 파일을 다운로드해야 했습니다. 전체 파일에는 모든 학생이 포함되어 있어 필요한 학생을 다시 분류해야 했고, 수강기호에 따라 요일과 교시를 사람이 해석해야 했습니다.

엑셀 활용에 익숙하지 않은 직원은 결국 학생별 스케줄을 직접 확인하고 입력했습니다. 주마다 약 30명 정도의 학생 스케줄을 확인하는 데 30분가량이 소요되었고, 담당자별 입력 시점이 달라 공용 출결 시트에 일정이 늦게 반영되는 문제도 있었습니다.

특히 단과 수업 외에도 타학원, 정기 외출, 지각, 조퇴 같은 일정이 존재했습니다. 이런 일정이 누락되면 학생 부재 사유를 즉시 파악하기 어렵고, 학부모 응대나 부재 문자 발송이 늦어질 수 있었습니다. 또한 단과와 타학원 일정이 겹치는 경우에도 사후에 발견되는 일이 있었습니다.

기존 업무의 문제점

  • 학생별 단과 수강 정보를 수작업으로 검색하고 정리해야 했습니다.
  • 관리 시스템 엑셀의 수강기호를 사람이 직접 해석해야 했습니다.
  • 직원별 엑셀 숙련도에 따라 업무 속도와 정확도가 달라졌습니다.
  • 타학원, 정기 일정 등 별도 스케줄이 공용 출결 시트에 늦게 반영될 수 있었습니다.
  • 단과와 타학원 일정이 충돌해도 즉시 확인하기 어려웠습니다.

개선 후 업무 흐름

  1. 관리 시스템에서 수강생 엑셀 파일을 다운로드합니다.
  2. 단과수강생 시트에 데이터를 붙여넣습니다.
  3. 타학원생 관리 시트에 정기 외출, 타학원 등 반복 일정을 입력합니다.
  4. Google Sheets 메뉴에서 시간표 자동화를 실행합니다.
  5. 교실별 시간표가 자동 생성되고, 충돌은 충돌확인 시트에 기록됩니다.
  6. 출석 반영 메뉴를 실행하면 오늘부터 7일간의 유효 일정이 출석 시트에 반영됩니다.

Before / After

구분 기존 방식 개선 후
수강 정보 확인 학생별 수기 검색 엑셀 붙여넣기 후 자동 처리
수강기호 해석 직원이 직접 해석 Apps Script 파싱
타학원 일정 반영 담당자별 수기 관리 별도 시트 기반 통합 관리
충돌 확인 사후 발견 충돌확인 시트 자동 기록
출석 시트 반영 담당자가 직접 입력 오늘부터 7일간 자동 반영
수기 입력 보호 덮어쓰기 위험 존재 보호값은 자동화가 건드리지 않음
처리 시간 주 약 30분 약 1~2분

주요 기능

수강기호 기반 시간표 자동 생성

관리 시스템 엑셀의 수강기호를 파싱하여 요일과 교시를 해석하고, 학생의 교실 및 좌석 정보에 맞게 교실별 시간표를 생성합니다.

타학원 및 정기 일정 반영

단과 외에도 타학원, 정기 외출, 지각 등 반복 일정이 존재하기 때문에 별도 관리 시트를 두었습니다. 담당자가 각자 관리하던 정보를 공용 구조 안으로 모아 학생 부재 사유를 더 빠르게 확인할 수 있게 했습니다.

충돌 자동 감지

단과 수업과 타학원 일정이 같은 요일/교시에 겹치면 충돌확인 시트에 자동 기록합니다. 이를 통해 학생에게 스케줄 조정이 필요하다는 안내를 빠르게 할 수 있습니다.

출석 시트 자동 반영

생성된 시간표를 실제 출석 시트에 반영합니다. 출석 시트에는 오늘부터 7일간의 날짜 컬럼만 대상으로 삼아, 당장 운영에 필요한 범위만 갱신하도록 구성했습니다.

날짜 예외 처리

수강 시작일, 종강일, 휴강일은 학생과 수업마다 다릅니다. 전체 주간 시간표는 기본 수강 구조를 보여주기 위해 날짜 조건을 적용하지 않고, 실제 출석 반영 단계에서만 개강 전/종강 후/휴강일 조건을 적용했습니다.

수기 입력 보호값 처리

출석 시트에는 직원이 직접 입력한 지각, 병결, 조퇴, 외출 등의 값이 존재합니다. 자동화가 이런 값을 덮어쓰지 않도록 보호값 목록을 두고, 자동 입력값만 갱신하거나 삭제하도록 설계했습니다.

핵심 설계 포인트

  • 시간표 생성과 출석 반영을 분리했습니다. 시간표는 전체 주간 구조를 보여주고, 출석 반영은 날짜 조건을 적용합니다.
  • 정기 일정 입력 방식을 별도 시트로 통합해 담당자별 관리 편차를 줄였습니다.
  • 자동값과 수기값을 구분해, 운영자가 직접 입력한 출결 사유를 보존했습니다.
  • 충돌 확인을 별도 시트로 분리해, 문제를 발견하는 즉시 조치할 수 있게 했습니다.
  • 실제 운영자가 메뉴 클릭만으로 실행할 수 있도록 Google Sheets UI에 메뉴를 붙였습니다.

폴더 구조

.
├─ README.md
├─ apps-script/
│  └─ Code.gs
├─ docs/
│  ├─ DATA_STRUCTURE.md
│  ├─ PORTFOLIO_SUMMARY.md
│  ├─ REFACTORING_PLAN.md
│  ├─ TEST_CASES.md
│  ├─ WORKFLOW.md
│  └─ images/
└─ samples/
   └─ portfolio_schedule_sanitized.xlsx

사용 방법

  1. 샘플 엑셀 또는 Google Sheets 파일을 준비합니다.
  2. 관리 시스템에서 내려받은 수강생 데이터를 단과수강생 시트 구조에 맞게 입력합니다.
  3. 타학원, 정기 외출 등 반복 일정은 타학원생 관리 시트에 입력합니다.
  4. Apps Script의 Code.gs를 Google Sheets에 연결합니다.
  5. 시트를 다시 열어 자동 생성된 메뉴에서 시간표 자동화를 실행합니다.
  6. 충돌 여부를 확인한 뒤 출석 반영을 실행합니다.

공개용 코드에서는 실제 외부 출석 시트 ID가 제거되어 있습니다. 운영 환경에서 사용하려면 YOUR_ATTENDANCE_SPREADSHEET_ID 값을 실제 출석 시트 ID로 교체해야 합니다.

샘플 데이터

samples/portfolio_schedule_sanitized.xlsx는 포트폴리오 공개를 위해 비식별 처리한 샘플 파일입니다. 실제 학생 이름, 학번, 학원명, 출석 시트 ID 등 민감한 정보는 포함하지 않았습니다.

AI 도구 활용 방식

GPT/Claude/Codex는 코드 초안 작성, 리팩토링 방향 검토, 디버깅 보조 도구로 활용했습니다.

업무 흐름 정의, 시트 구조 설계, 예외 규칙 정리, 테스트 케이스 검증, 실제 운영 적용은 현장 운영 경험을 바탕으로 직접 수행했습니다. AI 도구는 문제를 대신 정의한 것이 아니라, 이미 파악한 업무 문제를 더 빠르게 구현하고 검증하기 위한 보조 수단으로 사용했습니다.

실행 시점에는 LLM API를 호출하지 않습니다. 자동화는 Google Apps Script와 Google Sheets 안에서 동작합니다.

성과 및 기대 효과

  • 학생 스케줄 확인 작업을 주 약 30분에서 약 1~2분으로 단축했습니다.
  • 단과와 타학원 일정 충돌을 빠르게 확인할 수 있게 되었습니다.
  • 학생 부재 사유를 더 빠르게 파악해 학부모 응대 품질을 개선했습니다.
  • 담당자별 관리 편차를 줄이고, 공용 출결 시트 반영 누락 가능성을 낮췄습니다.
  • 반복 업무를 줄여 직원이 학생 관리와 응대에 더 집중할 수 있게 했습니다.

인정 사례

이 프로젝트는 소속 교육기업의 전사 AI 활용 우수사례 TOP 6에 선정되었습니다. 이후 사내 협업 플랫폼의 AI 활용 우수사례 콘텐츠로 인터뷰가 게시되었고, 우수사례 상금을 수상했습니다.

향후 개선 방향

  • Apps Script 단일 파일을 기능 단위 파일로 분리하는 구조 개선
  • 비식별 스크린샷 추가
  • 테스트 케이스 문서와 실제 샘플 입력값 보강
  • 출석 반영 결과 로그 또는 실행 이력 시트 추가
  • 운영자가 직접 설정값을 바꿀 수 있는 설정 시트 도입

요약

현장 업무의 반복 입력과 정보 누락 문제를 발견하고, Google Sheets와 Apps Script를 활용해 학생 시간표 생성과 출석 반영을 자동화했습니다. 수강기호 파싱, 예외 일정 처리, 충돌 감지, 수기 입력 보호 로직을 설계하여 주 30분 내외의 작업을 1~2분으로 단축했으며, 전사 AI 활용 우수사례 TOP 6에 선정되었습니다.

Privacy

포트폴리오 공개를 위해 실제 학생 이름, 학번, 학원명, 출석 시트 ID 등 민감한 정보는 모두 비식별 처리했습니다. 공개용 Apps Script 코드에서도 외부 출석 시트 ID는 YOUR_ATTENDANCE_SPREADSHEET_ID placeholder로 대체했습니다.

About

Google Sheets와 Apps Script로 학원 시간표·출석 업무를 자동화한 운영 개선 프로젝트

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors