스프레드시트는 어디까지 버틸 수 있는가
소규모 조직의 업무 데이터는 거의 항상 스프레드시트에 있습니다. 고객 목록, 재고, 일정, 정산.
"제대로 된 시스템을 도입해야 한다"는 조언을 자주 듣지만, 실제로 도입한 조직의 상당수가 6개월 뒤 다시 스프레드시트를 씁니다. 시스템이 자기 업무와 안 맞기 때문입니다.
이 실험의 전제는 다릅니다. 스프레드시트를 버리지 않고, 자동화의 데이터 소스로 제대로 쓰는 것.
스프레드시트가 자동화를 깨뜨리는 세 가지
1. 사람이 자유롭게 바꿉니다. 열을 추가하고, 순서를 바꾸고, 셀을 병합합니다. 그 순간 자동화가 깨집니다.
2. 형식이 제각각입니다. 같은 날짜 열에 2026-09-01, 9/1, 9월 1일이 섞여 있습니다.
3. 빈 줄과 메모가 섞입니다. 중간에 소계 행이 있고, 맨 아래 "※ 확인 필요" 같은 메모가 있습니다.
이걸 데이터베이스처럼 쓰려면 이 셋을 통제해야 합니다.
규칙 1: 입력 시트와 데이터 시트를 분리한다
가장 효과가 컸던 조치입니다.
사람이 보고 편집하는 시트와, 자동화가 읽는 시트를 나눕니다. 자동화는 데이터 시트만 읽고, 데이터 시트는 입력 시트를 참조해 정규화합니다.
이렇게 하면 사람이 입력 시트를 어떻게 꾸며도 자동화가 안 깨집니다. 서식, 병합, 메모 전부 입력 시트에서만 일어납니다.
규칙 2: 첫 행은 고정된 헤더, 그 아래는 순수 데이터
데이터 시트에는 다음이 없어야 합니다.
- 병합된 셀
- 중간 소계 행
- 빈 행
- 헤더 위 제목 행
- 시트 하단 메모
한 행이 한 레코드입니다. 예외를 만들면 그 예외가 자동화를 깨뜨립니다.
규칙 3: 형식을 입력 단계에서 강제한다
자유 입력을 허용하면 반드시 섞입니다.
- 날짜는 날짜 형식으로 지정
- 분류는 드롭다운으로 제한
- 숫자 열에 텍스트가 못 들어가게 유효성 검사
- 필수 열이 비면 조건부 서식으로 표시
이건 자동화가 아니라 시트 설정입니다. 그런데 자동화 안정성의 절반이 여기서 결정됩니다.
규칙 4: ID 열을 만든다
각 행에 고유 ID를 부여합니다. 행 번호를 ID로 쓰면 안 됩니다. 정렬하거나 행을 삽입하면 바뀝니다.
ID가 있으면 가능해지는 것들:
- 자동화가 특정 행을 정확히 지목
- 처리 완료 표시를 되돌려 쓰기
- 중복 처리 방지
- 이력 추적
ID 없는 시트는 자동화의 대상이 되기 어렵습니다.
규칙 5: 처리 상태 열을 둔다
자동화가 읽어간 행을 표시할 열입니다. 처리일시, 처리결과.
이게 있으면:
- 같은 행을 두 번 처리하지 않습니다
- 실패한 행만 다시 시도할 수 있습니다
- 사람이 진행 상황을 눈으로 봅니다
마지막이 특히 중요합니다. 자동화가 무엇을 했는지 시트에서 바로 보이면 신뢰가 생깁니다.
언제 스프레드시트를 벗어나야 하는가
계속 쓸 수 있는 건 아닙니다. 다음 신호가 나오면 옮길 때입니다.
- 동시 편집 충돌이 자주 납니다
- 행이 수만 건을 넘어 느려집니다
- 권한을 행 단위로 나눠야 합니다
- 같은 데이터를 여러 시트에 복사해 쓰고 있습니다
- 이력 추적이 업무상 필요합니다
특히 네 번째가 결정적입니다. 복사본이 생기는 순간 진실이 여러 개가 되고, 그때부터는 도구를 바꾸는 게 맞습니다.
실험 결과 요약
- 입력 시트와 데이터 시트 분리가 가장 효과가 컸습니다. 이후 사람의 편집으로 깨지는 일이 사라졌습니다
- 유효성 검사를 걸자 데이터 정제 로직의 상당 부분이 필요 없어졌습니다
- 처리 상태 열을 시트에 표시하자 담당자가 자동화를 신뢰하기 시작했습니다
- ID 없이 시작한 자동화는 전부 재작업이 필요했습니다
정리
- 스프레드시트를 버리지 않고도 자동화의 데이터 소스로 쓸 수 있습니다.
- 입력 시트와 데이터 시트를 분리하세요. 가장 효과가 큽니다.
- 데이터 시트는 헤더 한 줄 + 순수 데이터. 병합·소계·빈 행 금지.
- 드롭다운과 유효성 검사로 형식을 입력 단계에서 강제하세요.
- 고유 ID 열과 처리 상태 열은 필수입니다.
- 복사본이 여러 개 생기기 시작하면 도구를 옮길 때입니다.

