Excel은 엔지니어링 소프트웨어가 아니다—그렇다고 버릴 필요도 없다
엔지니어링 스프레드시트를 빠른 계산 파일에서 검토 가능한 계산 모델로 바꾸는 위험 등급·추적성·시험·버전 관리 가이드.
스프레드시트는 엔지니어에게 가장 생산적인 도구 중 하나다. 계산을 빠르게 시작할 수 있고, 누구나 열어 볼 수 있으며, 셀을 따라가면 대략적인 계산 흐름도 확인할 수 있다. 문제는 파일의 역할이 조용히 바뀔 때 생긴다. 어제 만든 개인용 검토표가 오늘의 설계 근거가 되고, 내일은 견적이나 발주 자료에 들어가며, 몇 년 뒤에는 작성자도 없는 “표준 양식”으로 복사된다. 겉모습은 여전히 익숙한 표이지만 엔지니어링 소프트웨어에 필요한 통제 장치는 저절로 생기지 않는다.
이 글은 Excel을 금지하자는 주장이 아니다. 어떤 계산까지 스프레드시트로 처리해도 되는지, 중요한 파일을 어떻게 검토 가능한 계산 모델로 만들지, 언제 테스트 가능한 코드나 워크플로로 옮겨야 하는지를 정하는 실무 가이드다. 목표는 단순하다. 다른 엔지니어가 작성자의 기억에 의존하지 않고 사용 목적을 확인하고, 주요 입력과 수식의 출처를 추적하고, 결과를 재현하고, 수행된 시험을 검토하고, 실제 의사결정에 사용된 버전을 특정할 수 있어야 한다.
검증(verification)은 모델을 올바르게 만들었는지 묻고, 확인(validation)은 의도한 용도에 맞는 모델을 만들었는지 묻는다. NASA의 시스템 엔지니어링 지침도 검증을 요구사항 충족 여부의 평가로, 확인을 의도한 사용 목적 충족 여부의 입증으로 구분한다.
연구가 말하는 것과 말하지 않는 것
Powell, Baker, Lawson은 2008년 현업에서 사용하던 스프레드시트 50개를 정해진 프로토콜로 감사했다. 그 프로토콜이 다루는 오류 유형이 발견되지 않은 파일은 3개뿐이었다. 전체 표본에서는 483건의 오류 인스턴스가 4,855개 셀에 영향을 주었고, 수식 셀 기준 평균 오류율은 1.79%였다. 중앙값 기준 한 파일에는 1,294개의 수식이 있었으며, 감사에는 평균 3.25시간이 걸렸다.
이 한계는 중요하다. 별도의 25개 현업 스프레드시트 연구에서는 발견된 오류 중 상당수가 결과에 실질적인 영향을 주지 않았지만, 일부는 핵심 결과를 크게 바꿨다. 따라서 오류 개수만으로 엔지니어링 위험을 판단할 수는 없다. 올바른 대응은 위험 기반 보증이다. 잘못된 결과가 안전, 법규 준수, 비용, 일정 또는 되돌리기 어려운 의사결정에 미치는 영향이 클수록 더 많은 검증 자원을 투입해야 한다. NIST가 제공하는 영국 NPL의 스프레드시트 시험 가이드도 보증 강도를 실패 결과와 중요도에 맞추라고 권고한다.
진짜 경계는 ‘스프레드시트냐 소프트웨어냐’가 아니다
실무에서 더 유용한 경계는 통제된 계산과 통제되지 않은 계산이다. 입력이 정의되어 있고, 수식 출처가 명시되어 있으며, 계산 셀이 보호되고, 기준 사례와 경계값 시험을 통과하고, 독립 검토와 승인 버전이 있는 스프레드시트는 테스트가 전혀 없는 불투명한 스크립트보다 신뢰할 수 있다. 반대로 보기 좋게 꾸민 파일이라도 상수가 수식 안에 숨겨져 있고, 단위가 암묵적이며, 외부 링크가 오래됐거나, 어느 셀이 바뀌었는지 검토자가 알 수 없다면 위험하다.
위험 등급대표 용도최소 통제상위 단계로 전환할 조건
낮음일회성 탐색, 되돌릴 수 있는 판단, 단일 작성자입력과 단위 표시, 간단한 상식 검토, 날짜가 포함된 파일명파일이 반복 사용되거나 공유되거나 의사결정 기록이 됨
중간반복 설계 업무, 공동 사용 파일, 중간 수준의 기술·상업 영향요구사항 메모, 입력·계산·출력 분리, 기준·경계 시험, 독립 검토, 버전 이력매크로, 외부 링크, 다수 변형, 후속 자동화 사용이 핵심이 됨
높음안전, 규제, 계약 또는 고가치 의사결정공식 V&V 계획, 추적 가능한 요구사항, 독립 검토자, 형상·릴리스 증거검증된 전용 도구나 테스트된 소프트웨어 워크플로 사용. 스프레드시트가 주 구현체로 부적합할 수 있음
이 표는 빠른 분류를 위한 실무 모델이지 인증 기준이 아니다. 조직의 품질 시스템과 적용 법규가 항상 우선한다. NPL은 최고 수준의 안전 무결성이 필요한 용도에는 스프레드시트가 적합하지 않다고 명시한다. 결과의 영향이 큰 업무라면 도구 선정과 보증 전략 자체를 근거와 함께 결정해야 한다.
엔지니어링 계산을 위한 6단계 통제 루프
1. 사용 목적과 합격 기준을 먼저 정의한다
워크북 첫 화면이나 함께 보관하는 README에 한 문단으로 목적을 적는다. 이 모델이 지원하는 의사결정, 허용 입력 범위, 예상 사용자, 제외 대상, 적용 기준, 합격 조건을 명시한다. “보 검토”는 충분하지 않다. “중앙 집중하중을 받는 단순지지 강재 보의 예비 사용성 검토, 탄성·미소변형 조건만 적용, 강도·안정·접합 설계는 포함하지 않음” 정도는 되어야 검토할 수 있다.
이 문장은 유효했던 계산이 전제조건을 벗어나 재사용되는 모델 드리프트를 막는다. 또한 확인(validation)의 기준점을 만든다. 사용 목적이 없으면 검토자는 수식이 실행된다는 사실은 확인할 수 있어도, 그 수식이 해당 문제에 적합한지는 판단할 수 없다.
2. 주요 입력을 모두 추적 가능하게 만든다
각 입력에는 이름, 값, 단위, 출처, 허용 범위가 필요하며, 필요한 경우 기준일이나 리비전도 포함한다. 해당 값을 가져온 식, 설계기준 조항, 도면, 시험 기록, 해석 결과 파일을 인용한다. 영국 구조공학회는 수식과 기준 조항을 인용하고, 입력·계산·출력을 분리하고, 수식 안의 하드코딩 상수를 피하며, 손계산서처럼 위에서 아래로 읽히는 계산 서사를 구성하라고 권고한다.
단위는 별도로 관리해야 한다. 셀 색이나 열 위치가 단위를 암시한다고 가정하지 않는다. 값 옆에 단위를 직접 표시하고, 명확한 경계에서 한 번만 변환한다. 무차원 값이면 무차원이라고 적는다. 사람이 옮겨 적은 값이라면 검토자가 원본과 비교할 수 있도록 출처와 위치를 남긴다. 이 조치만으로도 kN과 N, mm와 m가 섞여 생기는 대형 오류를 상당 부분 예방할 수 있다.
3. 입력, 변환, 결과, 검토식을 분리한다
검토자가 한 방향으로 파일을 읽을 수 있어야 한다. 사용자 입력은 한곳에 모으고, 중간 계산은 숨기지 않으며, 판단에 필요한 결과는 간결한 요약에 모으고, 독립 검토식은 도전하려는 결과 옆에 둔다. 하나의 수식 안에서 입력 상수, 조회 함수, 단위 변환, 합격 판정을 모두 처리하지 않는다. 계산을 이름이 있는 단계로 나누면 오류 위치를 찾기 쉬워지고, 나중에 코드로 옮길 때도 비용이 줄어든다.
수식 셀은 실수로 바뀌지 않도록 보호하되, 보호 기능을 불투명성의 핑계로 사용하면 안 된다. 숨김 시트, 숨김 이름, 비밀번호로 가린 로직은 검토를 어렵게 한다. NIST의 소프트웨어 V&V 점검표는 수식·계산 셀 보호 여부와 백업 여부를 직접 확인한다. 두 항목 모두 승인 릴리스 절차에 포함해야 한다.
4. 정답 하나가 아니라 동작을 시험한다
손계산 결과 하나와 일치시키는 것은 필요하지만 충분하지 않다. 좋은 검증은 여러 시험 유형을 조합한다. NPL은 기준 데이터, 정상 범위, 경계값과 범위 밖 입력, 참·거짓 의사결정 분기, 그래프가 원본 데이터를 정확히 표현하는지에 대한 시험을 권고한다.
시험 유형확인할 질문예시
기준 사례신뢰할 수 있는 결과를 재현하는가?손계산, 교재 예제 또는 독립 구현 모델과 비교
경계값허용 범위의 끝에서 어떻게 동작하는가?최소 두께, 최대 하중, 빈 데이터, 한계값과 정확히 같은 값
잘못된 입력불가능하거나 지원하지 않는 값을 거부하는가?음의 탄성계수, 0인 분모, 혼합 단위, 존재하지 않는 조회 키
분기 커버리지모든 판정의 양쪽 경로를 실행했는가?합격과 불합격, 압축과 인장, 보간 범위 안과 밖
불변식물리·수학 관계가 유지되는가?선형계에서 하중을 2배로 하면 응답도 2배, 평형 잔차는 0에 가까움
표현 검토화면과 그래프가 실제 데이터를 반영하는가?모든 계열이 차트 범위에 포함되고, 축에 단위가 있으며, 반올림이 판정을 뒤집지 않음
자동 감사 도구는 특이한 수식과 불일치를 찾는 데 도움이 되지만, Powell의 감사 연구에서는 거짓 양성과 거짓 음성이 모두 보고됐다. 도구는 엔지니어링 의도를 이해하지 못한다. 승인 엔진이 아니라 수식 검토 위치를 찾는 탐색 도구로 사용해야 한다.
5. 작성자와 분리된 독립 검토를 수행한다
검토자가 작성자의 화면 공유를 보며 클릭 순서를 따라가는 것으로 끝내면 안 된다. 사용 목적, 출처, 시험 사례, 승인 후보 파일의 깨끗한 사본을 제공한다. 검토자는 적어도 하나의 지배 결과를 독립적으로 재계산하고, 복잡하거나 대량 복사된 수식을 살피고, 입력 범위를 의심하고, 출력 자릿수가 입력 데이터보다 더 높은 확실성을 가장하지 않는지 확인해야 한다.
NASA의 모델링·시뮬레이션 핸드북은 코드 검증과 계산 또는 해 검증을 구분한다. 전자는 구현이 의도대로 동작하는지를, 후자는 수치 결과가 충분히 수렴하고 해상도가 확보됐는지를 묻는다. 그리고 구현 오류를 다룬 뒤에야 현실이나 적절한 실험 증거와 모델을 비교하는 확인(validation)이 의미를 갖는다. “수식이 오류 없이 실행됐다”와 “현실을 충분히 잘 대표한다”는 서로 다른 주장이다.
6. 통제된 기준 버전으로 릴리스한다
final_v7_수정_진짜최종.xlsx는 형상 관리가 아니다. 승인 파일에는 고유 버전, 소유자, 검토 상태, 릴리스 날짜, 변경 요약과 수정 불가능한 기준 사본이 있어야 한다. 재현에 필요한 Excel 버전, 추가 기능, 매크로, 외부 데이터 의존성도 기록한다. 입력 데이터는 릴리스와 함께 보관하거나 통제된 식별자로 참조한다. 작업 중인 편집본과 승인된 기준본을 분리한다.
변경이 생기면 영향을 받는 요구사항을 식별하고 관련 시험을 다시 수행한다. NASA는 릴리스를 통제된 기준선을 설정하는 과정으로 설명하고, NPL도 버전 관리, 형상 관리, 문서화, 변경 후 재시험을 요구한다. 실무에서 중요한 질문은 “마지막으로 저장한 사람이 누구인가?”가 아니라 “어떤 입력을 사용한 어느 검토 버전이 이 의사결정을 만들었는가?”다.
7. 옮겨야 할 시점을 안다
복사된 시트가 계속 늘어나거나, 파일 결과가 자동 의사결정에 바로 연결되거나, 여러 사람이 로직을 수정하거나, 데이터가 너무 커서 육안 검토가 불가능하거나, 매크로와 외부 링크가 핵심이 되거나, 같은 계산을 여러 프로젝트에서 반복 실행해야 한다면 테스트 가능한 코드나 워크플로 환경으로 옮길 시점이다.
마이그레이션할 때는 모델의 계약을 보존해야 한다. 이름 있는 입력, 단위, 수식 출처, 시험 사례, 기대 결과, 변경 이력을 함께 옮긴다. 수식만 다시 작성하면 모호함도 그대로 이동한다. 시각적 엔지니어링 워크플로는 의존성과 출력을 보기 쉽게 만들 수 있고, 버전 관리되는 Python은 계산 로직을 시험하고 재사용하기 쉽게 만든다. 하지만 어느 쪽도 자동으로 옳아지지는 않는다. 추적성, 검증 증거와 통제된 릴리스를 보존할 때에만 장점이 생긴다.
예제로 보는 보 처짐 계산서 검증
중앙 집중하중을 받는 단순지지 보의 최대 탄성 처짐을 계산하는 예시 스프레드시트를 생각해 보자.
δmax = P L³ / (48 E I) P = 10 kN L = 4.0 m E = 200 GPa I = 8.0 × 10⁻⁶ m⁴ 기대 결과 δmax = 0.00833 m = 8.33 mm
일관된 SI 단위를 사용해 기준 결과를 독립적으로 계산할 수 있다. 그러나 한 번 일치한 것으로는 부족하다. 지수 입력 오류, 단위 변환 오류, 깨진 셀 참조를 드러낼 동작 시험을 추가한다.
시험기대 동작찾을 수 있는 문제
P = 0δ = 0무하중 조건과 불필요한 상수항 확인
P를 2배처짐도 2배하중에 대한 선형 관계 확인
L을 2배처짐은 8배길이의 세제곱 지수 확인
I ≤ 0 또는 E ≤ 0입력을 거부무의미하거나 특이한 계산 방지
L/360과 비교한계 11.11 mm, 8.33 mm는 이 예시 판정에서 합격계산된 응답과 합격 기준을 분리
이 예시는 검증 방법을 보여 주기 위한 것이며 설계 승인이 아니다. 실제 보 검토에서는 적용 설계기준, 하중 조합, 단면 성질, 지지 조건, 재료 거동, 강도, 좌굴, 진동, 시공 단계와 프로젝트별 사용성 기준을 별도로 확정해야 한다. 여기서 가져갈 것은 숫자가 아니라 패턴이다. 독립 기준값, 예측 가능한 물리 관계, 잘못된 입력 거부, 명시적인 판정 규칙을 한 세트로 만든다.
오늘 바로 할 수 있는 30분 감사
5분—범위: 사용 목적, 소유자, 적용 기준과 제외 대상을 적는다.
5분—입력: 수식 안에 직접 입력된 숫자를 모두 찾고, 이름과 단위가 있는 입력으로 꺼내거나 근거를 남긴다.
5분—구조: 외부 링크, 숨김 시트, 이름 정의, 매크로, 대량 복사 수식, 보호되지 않은 계산 셀을 찾는다.
5분—기준값: 지배 결과 하나를 독립적으로 재계산하고 반올림 전 값으로 비교한다.
5분—동작: 0 입력, 경계값, 잘못된 입력, 합격·불합격 양쪽 분기, 물리 불변식 하나를 시험한다.
5분—릴리스: 버전을 부여하고, 검토자와 시험 증거를 기록하고, 수정 불가능한 기준본과 의존성을 보관한다.
파일이 너무 복잡해 설명할 수 없어서 어느 단계도 끝내지 못한다면 그 자체가 중요한 증거다. 현재 파일을 동결하고, 대표 입력과 기대 출력을 확보한 다음, 숨은 복잡성을 계속 추가하는 대신 계획적으로 마이그레이션한다.
속도는 유지하고 엔지니어링 통제를 더한다
스프레드시트는 아이디어와 계산 사이의 거리를 줄이기 때문에 앞으로도 엔지니어링 업무에 남을 것이다. 없애야 할 것은 그 속도가 아니다. 탐색용 파일이 검토되지 않은 운영 시스템으로 변하는 과정을 막아야 한다. 결과의 영향을 분류하고, 사용 목적을 적고, 입력과 수식의 출처를 추적하고, 동작을 시험하고, 독립 검토를 받고, 통제된 버전을 릴리스한다. 이런 통제를 유지하는 비용이 계산 자체보다 커지면 더 적합한 도구로 옮긴다.
완성된 산출물은 작성자의 기억 없이 다섯 질문에 답할 수 있어야 한다. 이 모델은 어떤 의사결정을 지원하는가? 주요 값과 수식은 어디에서 왔는가? 어떤 시험이 구현을 반박하려고 시도했는가? 누가 결과를 검토했는가? 정확히 어느 버전이 사용됐는가? 이 질문에 답할 수 있다면 그 파일은 단순한 수식 표가 아니라 엔지니어링 프로세스의 한 부분이다.
출처와 추가 읽을거리
Powell, Baker & Lawson — An Auditing Protocol for Spreadsheet Models
Powell 외 — Impact of Errors in Operational Spreadsheets
NPL Best Practice Guide No. 7 — Testing Spreadsheet Applications
NIST — Software Verification and Validation Form
영국 구조공학회 — Calculation models: spreadsheets
NASA-HDBK-7009A — Models and Simulations
NASA Systems Engineering Handbook — Product Verification and Validation