/ 학습 / 안내서 / 데이터 처리
L1 입문 · 3분 읽기

교육 명단 대조, 조용한 오답 막기

교육기획팀 2026.06.29 갱신 교육 대상자·이수자 명단을 대조하는 실무자
#교육관리#명단대조#검산#양방향

법정 교육·안전 교육이 끝나면 누가 안 들었는지 확인해야 합니다. 그런데 "대상자 45명 − 이수자 38명 = 7명"이라는 단순 빼기는 조용히 틀립니다 — 이름 뒤 공백, 팀명 띄어쓰기 차이, 대상자 명단에 없는 외부 이수자 때문입니다. 이 안내서는 양방향 대조로 그 조용한 오답을 막습니다.

이 안내서를 끝내면 미이수자를 양방향으로 대조해 찾고, 대상 외 이수자나 중복이 있으면 단순 산식을 쓰지 않아야 한다는 것을 알게 됩니다.

왜 단순 빼기가 위험한가

실제 사례입니다. 대상자 45명, 이수자 38명이니 미이수자는 7명이어야 합니다. 그런데 이름만으로 비교했더니 15명이 나왔습니다.

TEXT
[비교] 정규화 없이: 15명  →  정규화 후: 7명

원인은 손입력 자료의 보이지 않는 차이였습니다. 이름 뒤에 공백('김가온 ')이 붙어 있거나, 소속이 구조1팀구조 1팀처럼 달랐습니다. 에러는 나지 않았습니다 — 그래서 더 위험합니다.

양방향으로 대조한다

한 방향만 보면 놓칩니다. 세 가지를 함께 봅니다.

대조 전에 이름·소속의 공백을 제거하고, 가능하면 이름 대신 교육번호_hash 같은 고유 키로 맞춥니다. 해시로 맞추면 소속 띄어쓰기 차이는 무시됩니다.

실행과 결과

TEXT
[입력] 대상자 10명, 이수 기록 8건
[검산] 매칭 이수 7명, 미이수 3명, 대상 외 이수 1명, 중복 이수 기록 0건
[주의] 대상 외 이수자가 있어 단순 산식으로 안내하지 않습니다.
[OK] 저장: output/missing.csv
[OK] 저장: output/external_completed.csv
[OK] 저장: output/duplicate_completed.csv

검산 — 두 방향으로

결과가 맞는지 두 가지로 확인합니다.

TEXT
[검산1] 대상 45 - 이수 38 = 7명, 결과 7명 → 일치
[검산2] 대상자 명단에 없는 이수자: 0명

검산 1이 어긋나면 동명이인·외부 수강자·중복 이수자 가능성을 확인합니다. 검산 2에서 대상 외 이수자가 한 명이라도 나오면, 단순 산식이 틀렸다는 신호이므로 자동 안내를 멈춥니다.

▸ 소방 활용 포인트
법정·안전·장비 교육 이수 확인에 씁니다. 외부기관 이수자나 중복이 있으면 "대상−이수" 빼기는 틀립니다 — 대상 외 이수가 1건이라도 나오면 자동 안내를 중단하고 담당자가 원자료를 확인합니다.

사람 검토 체크리스트

TEXT
- [ ] 실명단을 외부 챗봇이나 공개 저장소에 올리지 않았습니다.
- [ ] 교육번호 같은 내부 대조 키를 쓰고, 원본 사번·교육번호는 공개하지 않았습니다.
- [ ] 동명이인 가능성이 있으면 이름만으로 자동 안내하지 않았습니다.
- [ ] 대상 외 이수자 목록이 비어 있지 않으면 자동 안내를 중단했습니다.
- [ ] 적용 전 "대상 N명, 이수 M명, 미이수 N-M명"을 미리 정해 두고 결과와 대조했습니다.
- [ ] 결과 공유 전 수신자, 포함 컬럼, 보안 등급을 확인했습니다.
⚠️ 흔한 실수
이 레시피는 이수 여부 최종 확정 도구가 아니라 대조 보조 도구입니다. 동명이인·전입·전출·외부기관 이수·교육 면제는 사람이 확인하고, 실명단은 외부 AI에 넣지 말고 로컬에서만 처리하세요.