교무업무자동화

[hwp + python 업무자동화] 졸업사정안 자동화 #1 개요

dinggle 2023. 12. 4. 10:34
< 목차 >

1. 졸업 사정안 자동화 프로그램의 필요성
2. 주요 과정별 자동화 프로그램 구성안
3. 세부 단계별 자동화 프로그램 기능 구현(블로그 연재순)

 

< ABSTRACT >

1. 고3 학생들의 졸업 및 진급 사정회 처리과정에서 발생하는 시간적 어려움과 오류를 줄이기 위해 파이썬 기반의 나이스 자동화 프로그램을 개발한 초보 개발자임.

2. 자동화 프로그램은 학급별 졸업 사정안 작성, 졸업 사정안 통계표 작성, 나이스 출결 현황 분석 세 가지 주요과정으로 구성됨. 특히, 학급별 데이터를 구글시트를 활용하여 통계표 작성하는 과정이 추가되었음.

3. 세부 단계별 자동화 프로그램 구현 목표는 사정안 양식 분석, 사정안 양식 기초작업, 나이스 출결상황 데이터 정제, 나이스 출결상황 데이터 추출, 사정안 데이터 입력, 통계표 작성 기초작업, 통계표 작성, 사정안 프로그램 GUI 구성, 프로그램 인스톨 등이 있음.

 

1. 졸업 사정안 자동화 프로그램의 필요성

 

학년말이 되면 각 학교별로 사정 및 포상 규정에 따라 진급 및 졸업 사정회를 개최한다. 학생들의 졸업과 진급 처리를 하는데 매우 중요한 과정이기 때문에 사정안을 정확하게 작성하고 사정회를 거쳐야 아이들을 무사히 졸업, 진급 시킬 수 있다.

 

하지만 이 사정회가 학년말 방학 직전에 개최되기 때문에 담임교사의 입장에서 각종 출결서류 정리와 출석부 정리, 생활기록부 작성, 교과 성적 확인 및 처리 등의 업무가 모두 몰려 있고, 사정안에 일반적으로 포함되는 3년간의 출결상황과 포상기록 등을 종합하여 기록해야 하가 때문에 고3 학생들의 특성상 집계과정 상에서 오류가 발생하는 경우가 많이 발생한다. 

 

또한 각 학급에서 작성한 사정안을 바탕으로 학년 전체의 통계표도 수합하여 처리해야 하기 때문에 학급단위에서 통계값을 누락하거나 오류가 발생하면 학년 전체의 통계값도 틀려 버리는 경우가 많아 진급 및 졸업사정회 과정에서 어려움이 발생하는 경우가 있다. 

 

바쁜 학년말 업무 처리 시간을 줄이고, 처리 과정에서 발생하는 단순한 실수를 줄이고자 나이스를 기반으로 파이썬 기반의 업무처리 모듈을 개발하였다. 

 

참고로 이 프로그램 개발 프로젝트를 위해서 파이썬을 시작한 이제 2개월인 초보 개발자(?)이다. 각 기능에 대한 이해가 부족한 부분이 많이 있지만, 개발과정에서 초보가 의문을 가지게된 있을 수 있지만 개발과정에서 꼭 필요한 부분을 중심으로 초보의 시선으로 설명하고자 한다.

 

2. 주요 과정별 자동화 프로그램 구성안

 

주요과정 자동화 프로그램 구성안 
가. 학급별 졸업 사정안 작성
(한글 파일)

우리 학교의 사정안의 기본 양식은 사정 인원, 3개년 개근 대상자 명단, 정근 대상자(출결 현황 포함), 모범상 대상자, 공로상 대상자로 구성되어 있다.

이 중 사정 인원, 3개년 개근 대상자 명단, 정근 대상자 명단(출결 현황 포함)은 나이스의 출결 현황에 모두 포함되어 있는 내용으로 기존의 수기로 작성하던 과정을 자동화 대상으로 삼았다.  

나. 졸업 사정안 통계표 작성
(한글 파일)

학급별 졸업 사정안의 내용을 바탕으로 통계표를 작성하지만 모든 내용이 동일하지 않다. 그렇기 때문에 산출 과정에서 두 파일에서 사용하는 데이터의 출처는 동일하지만 분석과정과 입력값이 상이하다.

특히 통계표에는 졸업 가능 여부를 위한 출결일수를 중심으로 통계표가 작성되고, 졸업 사정안은 3년간의 개근과 정근을 파악하기 위해 사정안이 작성되기 때문에 산출방식이 달라 두 파일을 작성하는 과정에서 생각보다 많은 시간이 소요된다.

히지만 이 통계표도 나이스의 출결상황에서 자료를 뽑아 올 수 있기 때문에 자동화의 대상으로 삼았다. 

기술적으로 학급별로 작성된 데이터를 집계하여 통계표를 작성하는 과정이기 때문에 각 학급별 데이터 집계하고 이를 실시간으로 분석하여 입력하는 과정이 추가로 필요하여 구글시트를 이용한 데이터 처리 과정을 구현하였다. 

다. 나이스 출결 현황 분석
(엑셀 파일)

나이스의 생활기록부 항목별 조회 기능을 활용하면 교무 업무 처리를 위해 필요한 많은 통계자료를 생각보다 손쉽게 분석할 수 있다.  

사정안 처리는 나이스의 생활기록부 탭에서 항목별 조회 항목에서 출결상황(전학년)의 자료를 xls data 형식으로 받아서 데이터 정제 및 분석, 데이터 입력 및 전송의 모든 과정을 처리하는 Raw Dada로 활용하였다. 

 

 

 

3. 세부 단계별 자동화 프로그램 기능 구현

 

세부단계 기능 구현의 목표
한글파일 양식 분석 사정안 분석을 통해 자동화를 구현할 수 있는 부분은 어떤 것들이 있는지 분석해 본다. 
사정안 양식 기초작업 hwp API를 통해 자동화를 위한 필드와 누름틀을 활용 방법을 구현해 본다.
나이스 출결상황 데이터 정제 pandas를 통해 데이터프레임을 구성하기 위한 나이스 출결상황 xls data를 정제해 본다. 
나이스 출결상황 데이터 추출 pandas를 통해 구성한 데이터프레임을 통해 필요한 데이터를 추출해 본다. 
사정안 데이터 입력 pansdas를 통해 추출한 데이터를 hwp API를 활용하여 데이터를 입력해 본다. 
통계표 작성 기초작업
(출결상황 데이터 집계, 분석)
gspread를 통해 구글시트를 DB로 활용하여 출결상황 데이터를 집계, 분석해 본다. 
통계표 작성 gspread를 통해 작성한 구글시트에서 통계표에 데이터를 입력해 본다. 
사정안 프로그램 GUI구성 tkinder를 통해 사정안 프로그램 GUI를 구성해 본다. 
프로그램 인스톨 pyinstall를 통해 사정안 프로그램을 인스톨하고 배포해 본다.