엑셀 자동화 변경 승인대장: 배포·중단 기준을 한 표로 관리

자동화 스크립트가 동작한다는 사실과 운영에 반영해도 된다는 판단은 다릅니다. 입력 열 하나가 바뀌거나 담당자가 비어도 코드 자체는 실행될 수 있습니다. 이 글에서는 변경 요청을 READY, HOLD, STOP으로 나누고, 승인 근거와 되돌리기 위치를 남기는 엑셀 대장을 만듭니다. 실제 시스템 변경은 수행하지 않습니다.

ChangeRegister의 가상 다섯 행을 READY 1·HOLD 2·STOP 2로 나눈 설명 도해
ChangeRegister의 가상 다섯 행을 READY 1·HOLD 2·STOP 2로 나눈 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

독자가 완성할 것

요청자·구현 담당·보안 검토·승인자의 근거와 기록 책임을 나눈 설명 도해
요청자·구현 담당·보안 검토·승인자의 근거와 기록 책임을 나눈 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

결과물은 ChangeRegister라는 엑셀 표입니다. 각 행은 자동화 변경 하나를 나타내며 요청자, 영향 범위, 테스트 결과, 비밀정보 검사, 되돌리기 파일, 승인자, 중단 조건을 기록합니다. 표의 목적은 승인자를 대신하는 것이 아니라 승인에 필요한 증거가 빠졌는지 드러내는 것입니다.

OWASP의 비밀정보 관리 지침은 접근 범위를 제한하고 교체·폐기·감사 정보를 관리할 것을 권고합니다. 변경 대장에서는 이를 SecretScan, LeastPrivilegeReview, RollbackRef 항목으로 바꿉니다. 근거는 OWASP Secrets Management Cheat Sheet이며 확인일은 2026-09-06입니다.

열과 판정 규칙

열 허용 값 의미
ChangeID CHG-YYYY-NNN 변경 식별자
RequestedBy 팀 또는 담당자 요청 책임
Target dev·stage·prod 적용 환경
InputContract v1.2 같은 버전 예상 입력 구조
TestRows 0 이상의 정수 검증에 사용한 행 수
TestResult PASS·FAIL 고정 예제 결과
SecretScan PASS·FAIL 코드와 로그의 비밀값 검사
LeastPrivilegeReview PASS·HOLD 필요한 권한만 쓰는지 검토
RollbackRef 파일 또는 커밋 식별자 되돌릴 대상
Approver 승인 담당자 운영 승인 주체
StopCondition 짧은 조건 실행 중단 기준
Gate 수식 READY·HOLD·STOP

Gate는 실패를 최우선으로 처리합니다.

=IF(OR([@TestResult]="FAIL",[@SecretScan]="FAIL"),"STOP",IF(OR([@RequestedBy]="",NOT(ISNUMBER([@TestRows])),[@TestRows]<5,[@TestResult]<>"PASS",[@SecretScan]<>"PASS",[@LeastPrivilegeReview]<>"PASS",[@RollbackRef]="",[@Approver]="",[@StopCondition]=""),"HOLD","READY"))

테스트 또는 비밀정보 검사가 FAIL이면 승인 정보가 채워져 있어도 STOP입니다. 실패가 없더라도 두 검사와 최소 권한 검토가 모두 PASS가 아니거나, 테스트 행 수가 숫자가 아니거나 5 미만이거나, 수식에 열거한 필수 증거가 비어 있으면 HOLD입니다. 이 조건을 모두 통과해야 READY이며 자동 배포 명령은 아닙니다. ChangeID의 중복, Target과 InputContract의 유효성, 공백만 입력한 값은 이 수식이 검사하지 않으므로 별도로 확인합니다. TestRows에는 데이터 유효성 검사로 0 이상의 정수만 허용하세요.

이 수식의 TestRows<5는 외부 통계가 아니라 예제에서 정한 내부 최소 입력 기준입니다. 운영 환경에서는 승인자가 정한 테스트 계약 값으로 교체합니다.

단계별 실행 절차

1. 엑셀 자동화 변경 승인대장을 만들기 위해 열 이름을 입력하고 범위를 ChangeRegister 표로 변환합니다.

2. Gate 열에 실패 우선 수식을 입력하고 모든 데이터 행에 적용합니다.

3. 아래 고정 예제 다섯 행을 붙여 넣어 READY, HOLD, STOP 상태를 생성합니다.

4. 상태별 필터를 선택해 누락된 승인 근거와 즉시 중단 대상을 비교합니다.

5. 승인 이후 변경은 기존 행을 수정하지 말고 새 ChangeID 행으로 작성합니다.

고정 입력으로 수식 시험하기

합성 예제: 아래 다섯 행은 판정 규칙을 설명하기 위해 새로 구성한 가상 입력입니다. 실제 승인 기록이나 기존 누락 셀을 복원한 값이 아닙니다. 머리글 11개와 각 행의 값 11개를 A1:K6에 넣고 L1에 Gate를 추가한 뒤 A1:L6을 ChangeRegister 표로 만드세요. L2에 위 수식을 입력합니다.

ChangeID RequestedBy Target InputContract TestRows TestResult SecretScan LeastPrivilegeReview RollbackRef Approver StopCondition
CHG-2026-001 ops-team stage v1.2 12 PASS PASS PASS release-1.4 lead-a 입력 행 수 불일치
CHG-2026-002 data-team prod v1.2 2 PASS PASS PASS release-1.3 lead-b 필수 열 누락
CHG-2026-003 ops-team stage v1.2 10 FAIL PASS PASS release-1.3 lead-a 행 수 불일치
CHG-2026-004 app-team prod v1.2 20 PASS FAIL PASS release-2.0 lead-c 비밀 문자열 탐지
CHG-2026-005 app-team dev v1.2 8 PASS PASS HOLD release-2.0 lead-c 인증 오류 발생

기대 결과는 001이 READY, 002와 005가 HOLD, 003과 004가 STOP입니다. 002는 테스트 행 수가 기준보다 작고, 005는 최소 권한 검토가 끝나지 않았습니다. 이 결과와 다르면 숫자 열이 텍스트로 저장됐는지 먼저 확인합니다.

중단 조건을 실행 가능한 문장으로 쓰기

ChangeID 001부터005까지의 테스트 행 수와 세 검사 및 Gate를 대조한 설명 도해
ChangeID 001부터005까지의 테스트 행 수와 세 검사 및 Gate를 대조한 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

“문제가 생기면 중단”은 판정할 수 없습니다. 관찰값, 비교 기준, 조치를 한 문장에 넣습니다.

처리 행 수가 입력 행 수와 다르면 새 파일 저장을 중단하고 이전 산출물을 유지한다.
필수 열 누락이 1건 이상이면 대상 환경에 쓰지 않고 오류 CSV를 만든다.
로그에서 비밀 문자열 패턴이 발견되면 실행 결과를 공유하지 않고 보안 담당자에게 전달한다.

비율 임계값은 업무별 허용 오차가 있을 때만 씁니다. 행 보존처럼 반드시 맞아야 하는 항목은 0건 기준이 더 명확합니다.

실습 자료 다운로드

엑셀 자동화 변경 승인대장: 배포·중단 기준을 한 표로 관리 실습용 엑셀 예제

첨부 파일은 예제데이터 시트의 기준일·항목·구분·수량·금액·처리상태·메모로 구성된 일반 연습용 표입니다. 본문의 ChangeRegister 표와 Gate 수식은 포함되어 있지 않습니다. 위 합성 예제와 수식을 새 시트에 입력해 실습하세요.

파일: 8199752d1752a40e-practice.xlsx · 버전 1.0.0 · 3.5 KB · 업데이트 2026-09-06

예제 파일 다운로드

승인 흐름

먼저 요청자가 변경 행을 만들고 고정 입력 파일의 위치를 기록합니다. 구현 담당자는 테스트 결과와 되돌리기 참조를 채웁니다. 보안 검토자는 SecretScan과 LeastPrivilegeReview를 확인합니다. 마지막으로 승인자가 Gate 필터에서 HOLD와 STOP이 없는지 보고 이름을 남깁니다.

승인 후 값이 바뀌면 같은 행을 덮어쓰지 않습니다. 새 ChangeID를 발급해 이전 판단과 새 판단을 구분합니다. 긴 설명은 별도 문서에 두고 대장에는 문서 식별자와 결과만 둡니다.

검증 기준

테스트·비밀 검사의 FAIL을 먼저 STOP 처리하고 나머지 근거를 확인하는 설명 도해
테스트·비밀 검사의 FAIL을 먼저 STOP 처리하고 나머지 근거를 확인하는 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

확인 대상: ChangeRegister 표의 ChangeID별 Gate 출력입니다.

확인 방법: 다섯 예제 행의 Gate를 예상 결과와 한 행씩 대조합니다. 아래 결과는 조건식을 대조한 정적 검산 기준이며 Excel에서 실행한 테스트 기록은 아닙니다. 001의 TestResult 또는 SecretScan을 빈칸으로 바꾸면 HOLD, FAIL로 바꾸면 STOP이 되는지도 사본에서 확인하세요.

합격 값: READY 1건, HOLD 2건, STOP 2건입니다.

1. 다섯 예제의 Gate가 READY 1건, HOLD 2건, STOP 2건으로 나뉩니다.

2. SecretScan을 FAIL로 바꾸면 즉시 STOP이 됩니다.

3. RollbackRef를 지우면 테스트가 PASS여도 HOLD가 됩니다.

4. 실제 API 키나 비밀번호가 표와 메모에 없습니다.

5. 각 READY 행에는 중단 조건과 승인자가 모두 있습니다.

오류와 복구

TestRows가 숫자인데도 HOLD라면 먼저 값이 5 이상인지 확인합니다. 그 조건이 맞아도 RequestedBy·RollbackRef·Approver·StopCondition의 누락이나 TestResult·SecretScan·LeastPrivilegeReview의 PASS 여부에 따라 HOLD가 남을 수 있습니다. =ISNUMBER([@TestRows])가 FALSE일 때만 숫자 저장 형식을 점검하고, TRUE인 값까지 임의로 다시 변환하지 않습니다. 셀 자체에 #N/A 같은 오류가 있으면 Gate도 계산 오류가 될 수 있으므로 원본 오류를 먼저 확인하세요. 수식이나 승인 근거를 READY 상수로 바꾸어 통과시키지 않습니다.

구조적 참조가 깨지면 범위가 표인지, 열 이름이 수식과 정확히 같은지 확인합니다. TestRows 비교가 동작하지 않으면 =ISNUMBER([@TestRows])로 숫자 여부를 검사합니다. 드롭다운에 잘못된 값이 들어오면 기준 시트를 만들고 데이터 유효성 검사 목록을 연결합니다.

운영 반영 뒤 오류가 발견되면 대장의 Gate를 억지로 READY로 바꾸지 않습니다. 새 행에 실패 증거와 실제 되돌리기 결과를 기록하고, 기존 행은 당시 승인 기록으로 보존합니다. 비밀 노출이 의심되면 파일 정리보다 비밀 폐기와 교체를 먼저 수행합니다.

한계

엑셀 대장은 배포 시스템의 권한 통제나 비밀 스캐너를 대체하지 않습니다. 테스트 결과가 거짓으로 입력될 수도 있으므로 산출물 위치와 실행 로그를 별도 보관해야 합니다. 이 표는 누락된 증거를 찾는 승인 보조 장치입니다.

공식 근거

함께 읽으면 좋은 글

정상 예제의 검사값·실패값·되돌리기 참조를 바꿔 HOLD·STOP을 확인하는 설명 도해
정상 예제의 검사값·실패값·되돌리기 참조를 바꿔 HOLD·STOP을 확인하는 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다. 세 반례는 다른 조건이 정상인 CHG-2026-001에서 한 항목씩 바꾸어 비교합니다.

작성자 소개