교무업무자동화

[hwp + python 업무자동화] 졸업사정안 자동화 #2 Field컨트롤

dinggle 2023. 12. 7. 18:25

2023.12.04 - [교무업무자동화] - [한글파일 X 파이썬 업무자동화] 졸업 사정안 자동화프로그램 #1

한글파일 양식 분석

< 목차 > 
1. 한글 파일 양식의 입력사항 분석
2. 업무 자동화를 위해 고려해야 할 요소
3. 입력사항 자동화를 위한 사전 준비 작업, Field Conrol, hwp API

 

1. 한글 파일 양식의 입력사항 분석

한글파일을 자동화하기 위해서는 먼저 입력 양식에 대한 분석이 선행되어야 한다. 이를 통해서 자동화를 할 수 있는 방식과 범위를 결정해야 한다. 특히 양식이 규격화가 되어 있지 않다면 불가능한 것은 아니지만 파이썬으로 코드를 짜는 과정에서  다양한 변수를 고려해야 하기 때문에 자동화 처리를 위해 양식을 먼저 분석하고 정비하는 것을 권한다. 

 

다음은 우리 학교의 학급별 사정안 양식 한글파일 양식이다. 

 

한글파일의 구성내용을 보면 학급별로 사정인원, 3개년 개근 대상자 수, 번호와 이름, 3개년 정근 대상자 수, 번호, 이름, 출결상황(결석, 지각, 조퇴, 결과), 모범상 대상자의 인원, 번호, 이름, 모범내용, 공로상 대상자 수, 번호, 이름, 모범내용으로 구성되어 있다. 

 

이 중 개근과 정근은 모두 3년간의 출결기록을 모두 종합하여 해당 조건에 충족하는 학생을 찾아야 한다. 특히 정근상의 경우 결석, 지각, 조퇴, 결과를 모두 합산하여 3일을 넘지 않아야 하기 때문에 3년간의 출결상황을 하나씩 계산하여 대상자를 산출하고 3년간의 출결상황을 합산하여 기재해야 한다. 문제는 이 과정이 대부분 담임교사의 수기계산을 통해 이루어지기 때문에 번거롭고, 실수의 가능성이 충분히 있다는 것이다. 실제로 졸업식 직전에 가서야 3년 개근 대상자나 정근 대상자를 잘못 선정하여 정정하는 사례가 빈번하게 발생한다는 것이다. 

 

 

다음으로 졸업 사정안 통계표를 살펴보자. 

졸업 및 포상 사정안의 첫번째 항목인 사정인원이 동일하게 입력된다. 하지만 출결상황은 졸업  및 진급의 기본 요건이 수업일수의 2/3 이상을 충족하는지를 확인하는 것이기 때문에 졸업 및 포상 사정안의 개근 대상자와 통계표의 개근 대상자는 서로 다른 기준이다. 다시 말해서, 졸업사정안의 개근 대상자는 3개년을 합산하여 개근을 충족한 학생이며, 졸업 사정안 통계표는 3학년 1년 간의 개근 요건을 충족한 학생이기 때문에 서로 다른 산출식을 갖는다. 

 

이러한 차이점을 제외하면 실질적으로 통계표는 학급별로 수합한 사정안을 바탕으로 취합한 자료이기 때문에 본질적으로 불필요한 업무를 줄일 수 있는 업무 자동화에 가장 적합한 대상이라고 볼 수 있다. 

 

 

 

2. 업무 자동화를 위해 고려해야 할 요소들

내가 업무 자동화를 위해서 가정 먼저 가장 먼저 고려하는 사항은 기존 업무의 복잡한 처리과정이 단순화하고 간결하게 바꿔야 하며, 기존 업무프로세스를  가장 귀찮은 일을 가장 직관적이면서 빠르고, 효율적으로 처리해야 한다는 점이다. 

 

하지만 자동화 처리 과정이 또 다른 하나의 업무처리과정으로 인식된다면 기존의 업무 관행적으로 따르고, 변화에 대한 저항감이 많은 보수적인 구성원이라면 자동화 프로세스가 아무리 단순하고 쉬운 작업이라고 할지라도 새로운 업무 행위로 인식할 수 있기 때문에 또 하나의 부담으로 다가갈 수 있다. 

 

기존의 업무 프로세스

양식 배포 > 나이스 출결상황 조회 > 개근, 정근 조건 계산 > 대상자 선정 > 사정안 작성 > 통계표 작성 > 통계표 자료 전송 > 반별 통계표 자료 취합 > 통계표 작성

 

업무의 흐름에서 가장 많은 시간을 소요하는 것은 반별로 사정안 자료를 생성하여 입력하고, 통계표 자료 작성을 위해 각 반별 데이터를 취합하여 수합하는 과정이다. 수작업으로 하는 과정이니 오류나 실수의 가능성이 얼마든지 있으며, 불필요한 시간이 생각보다 많이 소요된다. 특히 여러 사람으로부터 자료를 취합하여 하나의 문서를 만드는 작업과 같이 공동 작업이 필요한 경우는 작업 시간의 지체가 빈번하게 발생하여 업무 효율을 떨어뜨린다. 

 

졸업사정안 자동화 프로그램은 사정안 작성을 위한 Raw Data인 출결상황 데이터를 입력하여 사정안 한글문서와 통계표까지 프로그램에서 모두 직접 작성하는 형태로 기획하였다. 

 

자동화 프로그램을 활용하면 기존의 업무 프로세스가 대략 5~10분이면 모든 작업이 완료될 수 있다. 

 

 

3. 사전 준비 작업, Field 컨트롤, hwp API

 

파이썬으로 한글문서를 제어하기 위해서는 한글컨트롤에 대한 이해가 필요하다. 

 

가장 많이 참고한 블로그는 일상의 코딩(https://martinii.fun/) 이다. 한글 자동화에 대해 기초부터 체계적으로 자료가 있어 정말 많이 참고하였다. 코딩을 하면서 막히는게 있어서 구글링을 하면 이 사이트가 가장 먼저 나온다. 하지만 일부 게시글을 비공개인 상태로 유료 강의로 전환되어 있다. 그렇다 하더라도 참고할 수 있는 자료가 많아 많은 도움이 되었다. 

 

그리고 한글컨트롤에 대한 공식적인 매뉴얼은 한컴디벨로퍼(https://developer.hancom.com/)에서 한글 컨트롤/오토메이션(https://developer.hancom.com/hwpctrl-hwpautomation)에서 참고하였다. 여기에서 확인할 수 있는 자료도 사실상 위의 일상의 코딩이라는 블로그에서도 모두 확인할 수 있다.  

 

 

 

한글문서를 자동화하기 위해 구글링과 자료를 검토하며 내린 결론은 한글파일에 원하는 위치에 데이터를 입력하기 위해서는 데이터가 입력될 수 있는 좌표인 Field를 활용하는 것이 가장 효율적이라는 점이다.

 

엑셀이라면 데이터 입력의 기본 단위인 셀이 좌표가 되는 것이고, 한글이라는 그 역할을  Field가 수행할 수 있다.

 

필드는 한글메뉴에서 필드입력(입력-개체-필드입력, Ctrl+K, E)에서 확인할 수 있다. 필드 입력을 실행하면 누름틀이 생성이 되고, 이 필드를 활용하여 우리가 원하는 정보를 어디에 넣을지, 또는 원하는 정보가 담김 필드에서 값을 불러오는 기능으로 활용할 수 있다. 

 

 

필드는 위와 같이 누름틀로 입력되기도 하지만, 표에도 필드가 존재한다. 표에서 셀을 선택하고 속성창을 불러보면 하단에  필드정보를 확인할 수 있다.  한글의 표에서 각 셀은 엑셀과 같이 A1, B1과 같은 셀주소도 존재하지만 이 필드명을 해당 셀에 접근할 수 있는 좌표로 사용할 수 있다. 

 

 

 

결론적으로 위에서 한글양식에서 자동화를 통해 데이터를 입력하고, 읽어오고자 하는 위치에 필드를 삽입하고, 이 필드를 통해 한글문서의 자동화를 할 수 있다는 것이다. 

 

아래의 양식에서 음영처리가 된 부분을 모두 필드로 처리하고 각 필드에 입력될 정보를 읽어와 한글문서 뿌려주기만 하면 한글문서 자동화의 80퍼센트는 완료된다고 보면 된다. 

 

 

다음 글에서는 누름틀 필드와 표의 필드가 파이썬에서 구체적으로 어떻게 사용되는지를 중심으로 살펴 보겠다.