Skip to content
isdnetworks
Go back

그 NULL이 정말 이상한가

처리가 열흘 넘게 멈춰 있는 건을 조사하다가 레코드를 열었다. 연결을 뜻하는 컬럼 몇 개가 비어 있어서 그것이 원인으로 보였다.

Table of contents

Open Table of contents

눈에 띈 빈 값들

값이 들어 있는 컬럼은 그냥 지나가고 비어 있는 것에 시선이 갔다. 이름도 출고와 연결되는 값 같아서 없으면 문제로 읽혔다.

그 상태에서 값을 채우는 갱신을 돌리고 싶어진다. 그 전에 이 값이 정말 이상한지를 확인하기로 했다.

정상 건도 같은 값이었다

같은 채널의 같은 거래처에서 정상 완료된 건을 조회하니 그 컬럼들이 똑같이 비어 있었다. 이상한 값이 아니라 이 채널의 정상 패턴이었다.

비어 있다는 것이 이상한지는 그 컬럼의 정상 상태를 알아야 판단되는데 그것을 모르면 눈에 띈다는 이유만으로 원인이 된다. 확인 없이 갱신을 돌렸으면 아무 관계없는 값을 넣어 운영 데이터를 오염시켰을 것이다.

진짜 차이가 있던 자리

두 건을 나란히 놓고 전 컬럼을 비교하니 수거 정보에 해당하는 네 항목이 멈춘 건에서만 비어 있었다. 눈에 띄던 컬럼이 아니라 그쪽이 갈린 자리였다.

그러면 이 건은 연결이 안 된 것이 아니라 다음 단계가 안 진행된 것이다. 조치도 값을 채우는 것이 아니라 수거 정보를 입력해 상태를 진행시키는 것이었다.

이름이 그럴듯한 컬럼

처음에 잘못 본 이유 하나가 컬럼 이름이었다. 이름이 그 값의 용도를 그럴듯하게 설명하면 비어 있는 것이 결함으로 읽힌다.

실제로 그 채널은 다른 방식으로 처리해서 그 컬럼을 쓰지 않았다. 이름이 그럴듯할수록 그 채널이 실제로 쓰는지를 먼저 확인해야 했다.

조치 전에 묻는 네 가지

운영 데이터를 고치기 전에 정상 건도 그 값인지와 무엇으로 채울 것인지와 채우면 무엇이 달라지는지와 되돌릴 수 있는지를 확인하게 됐다. 둘째가 특히 중요한데 비어 있으니 무언가 넣어야 한다는 것은 근거가 아니다.

대조군은 같은 채널과 같은 거래처와 비슷한 시기로 조건을 맞춰야 비교가 된다. 정상 건도 하나만 보면 그것이 특수한 경우일 수 있어서 여러 건을 봤다.

정리


Share this post on:

Previous Post
한 레이어만 보면 답이 안 나온다
Next Post
변환은 즉시 끝나지 않는다