ai-coding-mines목차GitHub

같은 자료구조가 두 의미를 담으면 반드시 오독된다

Python · DB

상황

한 레코드의 sources 배열에 항목이 여러 개 있었다. 1,107건이 그랬다.

새 기능(묶음 상품)을 설계하면서 "여러 개니까 이게 묶음이겠네" 로 읽을 뻔했다. 실제로는 대체 공급처 목록이었다.

★★ 그렇게 읽었으면 1,107건에 잘못된 발주가 나갔다.

해법 — 형태가 아니라 의미로 필드를 나눈다

{"is_set": true,
 "set_items": [...],   // 묶음 구성품
 "sources":   [...]}   // 대체 공급처

둘 다 배열이지만 이름이 다르고, 소비하는 코드가 다르다. 플래그가 켜져 있고 전용 필드가 있을 때만 묶음으로 처리한다.

"여러 개"라는 형태가 같다고 의미가 같은 게 아니다.

★★ 쓰지 않을 기능의 구조를 미리 넣은 이유 — 나중에 넣으면 기존 1,107건을 재해석해야 하고, 그 순간 혼동이 난다. 구분은 값이 적을 때 박아둔다.