[데이터가 저절로 쌓이게 하기] 6주차 Day 2 — ★ 0 과 없음을 구분한다

주차 주제: 결측과 추적성 | 제조 사례: 가동률이 반토막 난 이유

오늘의 목표: 0 과 NULL 을 섞을 때 생기는 조용한 오류를 막는다.

소요 시간: 30분


1. 한 문장으로

0 은 "재 보니 0" 입니다.                   ★
없음 은 "안 쟀다" 입니다.                  ★

2. 섞이면 무엇이 틀리나

  값: 10, 20, 0, 0, 30                       ★
  0 이 진짜 0 이면   평균 12              ★
  0 이 없음이면     평균 20              ★
1.7배 차이입니다.                         ★
그리고 오류가 안 납니다.                  ★

3. ★ 제조업에서 특히 위험한 자리

① 생산 수량 0                              ★
   안 만든 날인가 · 기록이 없는 날인가     ★

② 불량 수 0                                ★
   불량이 없었나 · 검사를 안 했나          ★

③ 가동 시간 0                              ★
   안 돌았나 · 데이터가 안 왔나            ★

④ 재고 0                                   ★
   다 썼나 · 실사를 안 했나                ★

⑤ 측정값 0                                 ★
   진짜 0 인가 · 센서가 죽었나             ★
②가 가장 자주 사고를 냅니다.                ★

4. ② 불량 0 — 왜 위험한가

  불량률 = 불량 / 생산                       ★
검사를 안 한 날의 불량이 0 으로 들어가면   ★
  · 분자가 0                               ★
  · 분모는 생산량 그대로
  · 불량률이 내려갑니다                   ★
그리고
  "품질이 좋아졌다" 고 보고됩니다.          ★
실제로는 안 보고 있는 것입니다.           ★

4주차 Day 4 의 「0 건을 의심하라」와 같습니다.


5. 어떻게 가르나

① NULL 을 쓰세요                           ★
   0 을 기본값으로 넣지 마세요

② 「측정함」 표시를 따로 두세요             ★
   검사했나 · 실사했나 · 수신했나          ★

③ 분모를 조심하세요                        ★
   "검사한 건" 만 분모로

④ 집계 시 명시하세요                       ★
   "검사 실시분 기준"                     ★
②가 가장 확실합니다.                        ★
값이 0 이어도
"쟀다" 는 사실이 따로 남습니다.          ★

6. 기본값 0 이 들어가는 경로

· 테이블 정의에 DEFAULT 0                    ★
· 화면에서 빈칸을 0 으로 보냄                ★
· 연계 프로그램이 NULL 을 0 으로 바꿈        ★
· 엑셀에서 빈칸이 0 으로 읽힘                ★
· 집계 SQL 의 COALESCE(x, 0)                 ★
마지막이 흔합니다.                           ★
· "NULL 이면 계산이 안 돼서"               ★
· COALESCE 로 0 을 넣습니다
· 그리고 평균이 틀립니다                  ★
합계에는 괜찮고 평균에는 안 됩니다.       ★

7. 제조 현장의 실제

어느 업체, 설비 가동률이 갑자기 떨어졌습니다.
  전월 82% → 이번 달 47%                  ★
비상이 걸렸습니다.
확인해 보니
· 설비 데이터 수집기가 간헐적으로 끊겼습니다  ★
· 안 온 시간이 가동 시간 0 으로 들어갔습니다  ★
· 그래서 가동률이 내려갔습니다             ★
설비는 정상으로 돌고 있었습니다.          ★
고친 것
· 안 온 것은 NULL                        ★
· 「수신함」 표시를 따로                   ★
· 가동률 분모를 수신된 시간으로          ★
· 그리고 수신율을 따로 표시              ★
  가동률   81%  (수신율 68%)               ★
두 숫자가 나란히 나옵니다.                   ★
그리고 수신율 68% 가 진짜 문제였습니다.   ★

8. ★ 두 숫자를 나란히 두세요

  지표 + 그 지표를 낸 근거의 채움률         ★
  가동률 81%    (수신율 68%)                ★
  불량률 2.1%   (검사율 74%)                ★
  납기준수 94%  (완료 기록률 89%)           ★
그러면
· 숫자를 얼마나 믿을지 압니다             ★
· 채움률이 떨어지면 보입니다              ★
· 그리고 채움률을 올릴 동기가 생깁니다     ★
2주차 Day 2 의 편향을 드러내는 방법입니다.  ★

9. 0 이 맞는 경우도 있습니다

· 불량을 세었는데 0 건                    ★
· 재고를 실사했는데 0
· 전력을 쟀는데 0 (정지 중)              ★
전부 0 이 맞습니다.                       ★
그래서

  "0 을 쓰지 마라" 가 아니라               ★
  "쟀는지 안 쟀는지를 남겨라" 입니다.      ★

10. 오늘 해 볼 것 (15분)

① 0 이 많은 컬럼을 찾으세요

  컬럼        0 비율                         ★
  ________    ___%
  ________    ___%                           ★
② 그 0 이 무엇인지 보세요

  0 인 행 10건을 열어
  □ 진짜 0  □ 안 쟀음  □ 모름               ★
③ 기본값을 확인하세요

  □ 테이블에 DEFAULT 0 이 있나               ★
  □ 집계에 COALESCE(x,0) 이 있나             ★
  □ 평균 계산에 쓰이나                       ★

11. 내일 할 것

"이 숫자가 왜 이 값이지" — 계산의 출처.

값은 남겼는데 어떻게 나온 값인지가 없는 자리입니다.


이 글은 데이터가 저절로 쌓이게 하기 과정의 6주차 2일차입니다. 과정 전체 보기

진도와 검색이 되는 판: AXPulse 기술따라가기

댓글

이 블로그의 인기 게시물

자재관리는 잘 쓰는데 BOM은 엑셀입니다

협력사 AI 로봇 도입, 공급망 스마트 제조 생태계 대응 전략

개발 테스트 자동화, AI 에이전트와 MCP 도입 전략