엑셀 자동화에서 "새 파일을 만드는 것"과 "쓰던 파일에 이어 쓰는 것"은 난이도가 다른 문제입니다. 새 파일은 우리가 구조를 정하면 되지만 이어 쓰기는 사람이 다듬어 온 서식, 머리글 영역, 기존 데이터를 건드리지 않으면서 정확한 위치에 새 행을 넣어야 합니다. 대행사 90여 곳의 정산 시트에 매달 데이터를 자동 기입하는 시스템을 만들며 정리한 엑셀 템플릿 전기 자동화의 원칙들입니다.
엑셀 템플릿을 다시 만들지 않는 이유
가장 쉬운 길은 "우리 시스템이 만드는 새 양식으로 바꾸시죠"입니다. 그리고 대부분 나쁜 길입니다. 고객의 정산 시트에는 수년간 다듬어진 머리글, 요약 영역, 거래처와 공유하는 서식이 얹혀 있습니다. 양식 교체는 고객 내부의 습관과 대외 커뮤니케이션까지 바꾸라는 요구가 됩니다.
그래서 원칙은 템플릿 보존입니다. 자동화는 사람이 하던 "복사해 붙여넣기"를 대신할 뿐, 파일의 구조는 그대로 둡니다. 이 원칙이 도입 저항을 크게 낮춥니다. 자동화 전후의 산출물이 같은 파일이므로, 담당자도 거래처도 달라진 것을 느끼지 못합니다.
이어 쓰기의 기술적 디테일
템플릿 보존 전기에서 부딪힌 결정들을 정리하면 이렇습니다.
- 데이터 시작 행의 규칙화: 대행사 시트는 상단에 머리글·요약 영역이 있고 데이터는 특정 행부터 시작합니다. 이 시작 행을 상수로 규칙화하고, 기입은 "기존 데이터의 마지막 행 다음"을 찾아 이어 씁니다. 기존 행을 밀어내거나 덮지 않습니다.
- 서식 보존 라이브러리 선택: 엑셀을 읽고 쓰는 라이브러리 중에는 저장 시 서식을 날리는 것이 있습니다. 우리는 기존 워크북을 수정 저장할 때 서식이 보존되는 도구(rubyXL)와 읽기 전용 파싱 도구(roo)를 용도별로 나눠 썼습니다. 읽기와 쓰기의 요구가 다르면 도구도 달라야 합니다.
- 값으로 쓰기: 세액·수수료 계산 결과는 수식이 아니라 값으로 기입합니다. 수식으로 넣으면 행 삽입·정렬 같은 후속 편집에서 참조가 깨질 수 있고, 파일을 받는 쪽 환경에 따라 재계산이 달라질 수 있습니다. 계산은 시스템이, 파일에는 결과만.
원본은 따로, 가공은 따로: 이중 기록
전기 자동화에서 우리가 가장 잘했다고 생각하는 결정은 이중 기록입니다. 대행사 시트에는 계산이 더해진 가공 행을 쓰고 동시에 매체 통합 시트에는 원본 행을 그대로 이어 붙입니다.
이유는 추적성입니다. 가공된 숫자에 의문이 생겼을 때(이 수수료가 왜 이 값이지?), 원본이 같은 파일 안에 있으면 대조가 즉시 끝납니다. 원본이 시스템 어딘가에만 있으면 담당자는 확인할 방법이 없고 자동화에 대한 신뢰가 흔들립니다. 파일 하나에 가공과 원본이 함께 남는 구조는 자동화를 검증 가능하게 만드는 장치입니다.
| 기록 위치 | 내용 | 역할 |
|---|---|---|
| 대행사 시트 | 계산 포함 가공 행 | 실제 정산서 |
| 매체 통합 시트 | 원본 행 그대로 | 대조·감사 근거 |
결과 파일의 위생
마지막으로 산출물 관리입니다. 결과는 원본 템플릿을 덮어쓰지 않고 기간과 타임스탬프가 붙은 새 파일로 저장합니다. 실행이 잘못되어도 원본 템플릿은 무사하고 실행 이력이 파일 이름으로 남습니다. 어느 실행의 산출물인지 이름으로 구분되므로 잘못된 실행을 발견하면 그 산출물만 폐기하면 됩니다. 시스템에도 정산 건별 상태(대기·처리 중·완료·실패)와 통계가 남아 과거 이력을 화면에서 확인할 수 있습니다. 입력을 절대 수정하지 않는다는 원칙은 카페24 재고 업로드 자동화에서도 지킨 것과 같은 규칙입니다.
이 전기 로직이 들어간 전체 시스템은 광고비 정산 자동화 사례에서 볼 수 있습니다. 어느 시트에 쓸지를 정하는 앞단은 계정 매핑 라우팅 설계에서, 기입되는 금액의 계산 규칙은 수수료·부가세 자동 계산에서 다룹니다.
자주 묻는 질문
엑셀 템플릿 전기 자동화란 무엇인가요?
사람이 쓰던 엑셀 템플릿의 구조와 서식을 그대로 둔 채, 시스템이 데이터 행만 정확한 위치에 이어 써 주는 자동화입니다. 새 양식을 만드는 방식과 달리 고객의 기존 업무 산출물이 유지되므로 도입 저항이 작고 거래처와의 커뮤니케이션도 바뀌지 않습니다.
자동 기입이 기존 데이터를 덮어쓸 위험은 없나요?
설계로 막습니다. 데이터 시작 행 규칙과 "마지막 행 다음에 이어 쓰기"를 지키고 결과는 원본 템플릿이 아닌 타임스탬프가 붙은 새 파일로 저장합니다. 원본 파일 자체를 수정 대상으로 삼지 않는 것이 가장 확실한 안전장치입니다.
계산 결과를 수식으로 넣지 않는 이유는요?
수식은 파일의 후속 편집과 수신자 환경에 따라 값이 달라질 수 있기 때문입니다. 계산은 시스템 안에서 끝내고 파일에는 확정된 값만 기입하면, 파일이 어디로 전달되든 숫자가 흔들리지 않습니다. 검증이 필요할 때를 위해 원본 행을 통합 시트에 함께 남깁니다.
템플릿 구조가 바뀌면 어떻게 되나요?
시작 행이나 컬럼 구성이 바뀌면 전기 규칙도 맞춰 조정해야 합니다. 그래서 템플릿 구조 의존 부분(시작 행, 컬럼 매핑)을 코드 곳곳이 아니라 한곳의 규칙으로 모아 두는 것이 중요합니다. 조정이 필요한 지점이 명확하면 구조 변경은 큰 공사가 아니라 설정 수정이 됩니다.