Skip to content
isdnetworks
Go back

자동으로 채워지지 않는 데이터

매핑이 없다는 오류가 육백 건 넘게 났는데 특정 코드가 안 채워져 있어서였다. 수집 명령이 있으니 돌리면 될 것 같아서 돌렸는데 하나도 늘지 않았다.

Table of contents

Open Table of contents

수집 명령을 돌려도 안 늘어난 값

수집 코드를 열어 외부에서 무엇을 받아 무엇을 저장하는지 봤다. 외부가 주는 것은 한 종류뿐이었다.

내가 필요한 종류는 목록에 아예 들어 있지 않았다. 명령을 몇 번 돌려도 없는 것이 생기지는 않는다.

저장 코드의 고정값이 신호였다

저장하는 자리를 보니 구분 컬럼에 고정 문자열을 그대로 넣고 있었다. 응답에서 읽어 오는 값이 아니라 코드에 박힌 값이었다.

그 자리에 고정값이 들어 있다는 것은 외부가 그 구분을 안 준다는 뜻이다. 저장 코드의 하드코딩은 대개 상류가 그 값을 주지 않는다는 신호다.

유일한 출처였던 시드

그런데 다른 종류의 값들이 데이터베이스에는 들어 있었다. 어디서 왔는지 찾아보니 시드 파일에 수동으로 적혀 있었다.

누군가 담당처에서 목록을 받아 손으로 넣은 것이고 그것이 유일한 출처였다. 그동안 수집 명령을 어떻게 고치면 이 값도 가져올지를 고민한 것이 왜 안 풀렸는지가 여기서 설명됐다.

자동화 경로가 없는 데이터의 실무 경로

출처가 없는 것은 자동화할 수 없으므로 실무 경로를 대신 정했다. 시드로 이미 들어온 수천 건 중에서 맞는 것을 골라 매핑을 넣으면 대부분 해결됐다.

목록에 없는 것이 필요하면 담당처에서 받아 시드에 추가한다. 둘 다 사람이 하는 일이고 자동 경로가 없다는 것 자체를 설계 문서에 못 박았다.

없다를 확인하는 방법

이 값이 어디서 오는지를 찾을 때는 그 컬럼에 값이 들어가는 코드를 전부 찾는 방식을 썼다. 수집과 시드와 마이그레이션과 관리 화면까지 넣을 수 있는 자리를 다 본다.

이 경우 시드뿐이었으므로 자동 경로가 없다는 것이 확정됐다. 없다는 결론은 있을 수 있는 자리를 전부 봤을 때만 성립하고 한두 군데만 보고 내리면 그것은 추측이다.

정리


Share this post on:

Previous Post
처리 단계의 모듈 구성
Next Post
로그의 경로를 바꾸면 없던 일이 생긴다