반복 업무 자동화가 필요한 이유와 이번 글에서 다룰 내용
회사나 개인 작업에서 매주 또는 매일 반복하는 엑셀 파일 정리 작업은 생각외로 많은 시간을 빼앗습니다. 비슷한 양식의 파일을 열고, 행을 복사하고, 특정 조건에 맞춰 값을 수정한 뒤 다시 저장하는 과정은 단순하지만 집중력을 흐리게 만듭니다. 이번 글에서는 프로그래밍 초보자도 쉽게 따라 할 수 있도록 파이썬을 활용해 반복적인 파일 정리 작업을 자동화하는 구체적인 절차를 살펴봅니다. 개발 환경 설정부터 실제 데이터를 다루는 요령, 그리고 실무에서 자주 발생하는 실수를 예방하는 방법까지 차근차근 정리해 드립니다.
[목차]
자동화 작업 준비: 필수 라이브러리 이해하기
파이썬으로 엑셀 파일을 다루기 위해서는 기본 문법 외에도 외부 라이브러리의 도움이 필요합니다. 가장 널리 쓰이는 도구는 판다스(Pandas)와 오픈파이엑셀(openpyxl)입니다. 이 두 라이브러리의 역할을 미리 파악해 두면 작업 목적에 맞는 올바른 코드를 작성할 수 있습니다.
- 판다스(Pandas): 대량의 데이터를 표 형태로 읽고, 정렬하고, 그룹화하는 등의 데이터 조작에 최적화된 라이브러리입니다.
- 오픈파이엑셀(openpyxl): 엑셀 파일의 서식, 셀 색상, 수식 등을 유지하거나 수정해야 할 때 필수적으로 사용되는 엔진입니다.
- pathlib: 운영체제에 상관없이 폴더 경로를 안전하게 탐색하고 여러 파일의 이름을 일괄로 읽어올 때 유용합니다.
단계별 자동화 스크립트 작성 절차
수십 개의 엑셀 파일이 특정 폴더에 쌓여 있다고 가정해 보겠습니다. 이 파일들을 하나로 병합하고 필요한 열만 남기는 과정을 코드로 구현하는 순서는 다음과 같습니다.
1. 폴더 내 파일 목록 가져오기
먼저 작업 대상 파일들이 위치한 경로를 지정하고, 확장자가 xlsx인 파일만 골라내는 코드를 작성합니다. 이때 파일 이름에 특정 날짜나 규칙이 포함되어 있다면 필터링 조건을 추가하기 수월합니다.
2. 데이터 읽기 및 병합하기
반복문을 이용해 각 파일을 순회하며 판다스로 읽어들입니다. 읽어들인 데이터프레임(DataFrame)을 하나의 리스트에 담은 뒤, pd.concat() 함수를 사용해 단일 데이터 구조로 합쳐줍니다.
3. 불필요한 데이터 정제하기
병합된 데이터에는 중복된 행이나 빈 칸이 포함되어 있을 확률이 높습니다. 결측치를 처리하고 특정 조건을 만족하는 행만 추려내는 정제 단계를 거칩니다.
4. 결과 저장하기
정리가 끝난 데이터를 새로운 엑셀 파일이나 CSV 형식으로 저장합니다. 파일명을 저장할 때 현재 날짜와 시간을 문자열로 조합해 주면 파일이 덮어쓰여지는 사고를 방지할 수 있습니다.
반복 자동화 작업 시 흔히 하는 실수
코드를 처음 작성하거나 급하게 업무에 적용할 때 다음과 같은 실수를 자주 범하게 됩니다. 사전에 숙지하여 오류를 방지하세요.
- 절대 경로 고정 사용: 내 컴퓨터의 특정 경로만 코드에 입력하면 다른 PC나 협업 환경에서 실행할 때 오류가 발생합니다. 상대 경로나 환경 변수를 활용하는 것이 안전합니다.
- 원본 파일 직접 수정: 원본 데이터를 대상으로 바로 수정 작업을 거치면 예기치 못한 데이터 유실 시 복구가 어려워집니다. 반드시 복사본을 만들거나 새로운 파일명으로 결과를 저장해야 합니다.
- 인코딩 오류 간과: CSV 파일을 다룰 때 한글이 깨지는 현상을 방지하기 위해
utf-8-sig인코딩 설정을 누락하는 경우가 많습니다. - 예외 처리 부재: 손상된 엑셀 파일이나 양식이 다른 파일이 폴더에 섞여 있을 때 전체 스크립트가 멈추는 문제를 막기 위해 try-except 문을 활용한 예외 처리가 필요합니다.
실무 적용 전 확인해야 할 체크리스트
작성한 자동화 코드를 실제 업무에 투입하기 전에 아래 항목들을 차례대로 점검해 보세요.
- [ ] 자동화 대상 폴더 경로가 올바르게 설정되었는가
- [ ] 원본 파일의 백업본이 안전한 장소에 보관되어 있는가
- [ ] 파일의 컬럼명이나 시트 이름이 변경되어도 코드가 정상 작동하는가
- [ ] 결과물이 저장되는 경로와 파일명 규칙이 명확한가
- [ ] 예외 상황(빈 파일, 잘못된 형식)에서 프로그램이 안전하게 종료되는가
마무리
반복 업무를 파이썬으로 자동화하는 과정은 처음에는 손이 많이 가고 어색할 수 있습니다. 하지만 한 번 안정적인 스크립트를 만들어 두면 매주 반복되던 수십 분의 작업 시간을 단 몇 초로 줄일 수 있습니다. 작은 파일 하나를 정리하는 것부터 시작해 점차 적용 범위를 넓혀가며 업무 효율을 높여 보시기 바랍니다.