ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12개월 급여대장 병합부터 원장 대조까지 자동 병합 및 변환 프로그램 만들기
    자동화 프로그램 2026. 4. 10. 20:40

    매달 쌓이는 급여대장 파일 12개를 열어서, 직원별로 연간 합계를 내고, 그걸 다시 업로드 양식에 맞춰 옮기는 작업. 해본 사람은 안다. 이게 얼마나 지루하고, 얼마나 실수가 나기 쉬운 일인지.

     

    오늘 문의 주신 고객님은 사회복지시설에서 일을 하시는데, 본인이 모든 직원의 12개월 급여를 관리하고 대장 병합부터 원장 대조까지 모두 진행해야하는데 실수도 잦고 하나하나 비교해가면서 작업하는게 너무 힘들어 고민 끝에 연락을 주신 케이스이다.

     

    연말마다 찾아오는 급여 정리 지옥

     

    고객님은 매달 급여대장을 엑셀로 관리하고 있는데, 연말이 되면 이 파일들을 전부 합쳐서 "업로드 양식"이라는 정해진 포맷으로 변환해야 했다. 문제는 이 과정이 전부 수작업이라는 거다.

    월별 급여대장 파일이 12개. 각 파일에 직원 수십 명의 급여, 공제, 보험료 데이터가 들어있다. 이걸 하나하나 열어서 직원별로 연간 합계를 내야 한다. 거기에 국민연금, 건강보험, 고용보험, 장기요양보험, 소득세, 지방소득세 같은 항목들을 각각 따로 계산해야 하고, 직접비와 간접비도 구분해서 나눠야 한다. 산재보험이나 퇴직금은 별도 비율로 산출까지 해야 했다. 여기에 총계정원장이라는 또 다른 엑셀과 대조해서 숫자가 맞는지 검증하는 작업까지 더해지면, 꼬박 이틀은 걸리는 작업이었다.

    가장 골치 아팠던 건 "직원 매핑" 문제였다. 월별 급여대장에 적힌 사원명과 업로드 양식에 들어갈 직원명이 다른 경우가 있었다. 이름 뒤에 괄호로 부서명이 붙어있거나, 중도 퇴사자가 다른 코드로 재등록되어 있거나. 이런 예외 케이스를 하나씩 눈으로 확인하면서 맞춰야 했던 거다.

     

     

    "자동으로 합쳐주고, 양식에 맞게 변환해주면 안 되나요?"

     

    고객의 요청은 단순해 보였지만, 파고 들어가면 꽤 복잡한 구조였다. 처음 대화를 나누면서 정리한 요구사항은 크게 네 가지였다.

    첫째, 월별 급여대장 파일 12개를 자동으로 읽어서 직원별 연간 합계를 내는 것. 둘째, 그 합계를 기관에서 지정한 업로드 양식 포맷에 맞게 변환하는 것. 셋째, 총계정원장과 대조해서 숫자가 맞는지 자동으로 검증하는 것. 넷째, 직원 이름이 다르거나 코드가 바뀐 경우에도 알아서 매칭해주는 것.

    추가로 대화를 하면서 몇 가지 더 발견했다. 시설 유형에 따라 업로드 양식의 시트가 "주간"과 "요양"으로 나뉘어 있었고, 직접비/간접비 구분에 따라 급여 항목이 다른 열에 들어가야 했다. 산재보험 비율이나 퇴직금 산출 기준도 상황에 따라 포함하거나 제외할 수 있어야 했다. 단순히 "합치고 옮기는" 수준이 아니라, 기관 회계 기준에 맞는 정교한 변환이 필요했던 거다.

     

     

    헤더가 제각각인 엑셀들을 하나로 읽어야 했다

     

    개발에서 제일 먼저 부딪힌 문제는 월별 급여대장의 헤더 구조였다. 엑셀 파일마다 열 이름이 미묘하게 달랐다. 어떤 파일에서는 "장기요양보험료"이고, 다른 파일에서는 "장기요양보험"이다. "주민세"라고 적힌 걸 "지방소득세"로 읽어야 하는 경우도 있었고, 엑셀 내부에서 줄바꿈 문자가 섞여 들어간 헤더도 있었다.

    그래서 헤더를 읽을 때 정규화 과정을 거치도록 만들었다. 줄바꿈과 공백을 정리하고, 미리 정의해둔 별칭 사전으로 같은 항목인데 이름만 다른 경우를 통일한다. 이 한 단계가 없으면 12개 파일을 합치는 순간 열이 어긋나면서 숫자가 엉뚱한 곳에 들어가는 사고가 난다.

    직원 매핑은 3단계 폴백 구조로 설계했다. 1순위는 사용자가 직접 만든 매핑 파일. 여기에 원본 사원코드와 업로드용 직원번호를 직접 지정할 수 있다. 2순위는 업로드 양식 시트에 이미 등록된 직원 정보. 3순위는 이름 기반 자동 매칭인데, 여기서 괄호나 하이픈 뒤의 부가 정보를 제거한 단순화된 이름으로 비교한다. 이 구조 덕분에 대부분의 직원은 자동으로 매칭되고, 예외 케이스만 매핑 파일에서 수동으로 잡아주면 된다.

    총계정원장 대조 기능도 넣었다. 업로드 데이터의 직접비/간접비별 급여 합계, 퇴직금, 사회보험 회사부담금을 총계정원장의 해당 계정과 비교해서 차이를 한눈에 보여준다. 여기서 한 걸음 더 나아가, "원장 보정" 옵션을 켜면 총계정원장의 합계에 맞춰서 업로드 데이터의 금액을 자동으로 배분해주는 기능까지 만들었다. 직원별 급여 비중에 따라 단수 차이 없이 정수로 배분하는 로직이라, 1원 단위까지 맞아떨어진다.

     

     

    프로그램 사용은 이렇게 간단하다

     

    GUI로 만들었기 때문에 사용법이 직관적이다. 프로그램을 켜면 입력 항목이 정리된 화면이 뜬다. 월별 급여대장이 들어있는 폴더를 선택하면, 프로그램이 알아서 파일 패턴을 감지하고, 같은 폴더에 업로드 양식이나 총계정원장 파일이 있으면 그것도 자동으로 잡아준다. 템플릿 시트 목록도 드롭다운으로 보여줘서 클릭만 하면 된다.

    회계년도, 급여년월, 산재보험 포함 여부 같은 세부 옵션도 GUI에서 체크박스 하나로 조절할 수 있다. 변환 버튼을 누르면 12개 파일을 읽어서 병합하고, 직원별 합계를 내고, 업로드 양식을 생성하고, 원장 대조표까지 만들어준다. 결과는 리포트 파일, 업로드 파일, 직원 매핑 템플릿 세 개가 나온다.

    리포트 파일에는 월별 병합 데이터, 직원 연간 합계, 업로드 데이터, 직원 매핑 검토, 원장 대조 — 이 다섯 개 시트가 들어있다. 담당자가 결과를 검토할 때 어느 단계에서든 확인할 수 있도록 중간 과정을 전부 남겨둔 거다. 업로드 파일은 기관 양식 그대로의 포맷으로 나오기 때문에, 따로 손대지 않고 바로 제출할 수 있다.

     

    이틀 걸리던 작업이 몇 분이면 끝난다

     

    12개월 급여대장 병합부터 업로드 양식 생성, 원장 대조까지 — 이전에 이틀 가까이 걸리던 연말 작업이 버튼 한 번에 몇 분이면 끝나게 됐다. 수작업에서 가장 무서운 건 "실수해도 모른다"는 거다. 한 셀을 잘못 복사해도, 공제항목 하나를 빼먹어도, 숫자만 봐서는 알기 어렵다. 자동화는 이 공포를 없앤다. 같은 로직이 매번 같은 결과를 내니까.

    이 프로젝트를 하면서 느낀 건, 회계 업무 자동화는 "편해지는 것"보다 "정확해지는 것"이 더 큰 가치라는 거다. 사람이 엑셀 12개를 넘나들면서 항목을 맞추다 보면, 아무리 꼼꼼해도 실수가 생긴다. 그런데 프로그램은 헤더 정규화, 직원 매핑, 원장 대조까지 매번 똑같이 정확하게 처리한다. 담당자는 결과만 확인하면 되는 거다.

    비슷한 급여 업무를 수작업으로 하고 있다면, 자동화를 고려해볼 만하다. 특히 매년 반복되는 연말 정산이나 양식 변환 작업은, 한번 프로그램을 만들어두면 그 다음부터는 시간이 거의 들지 않기 때문이다.

Designed by Tistory.