← 기술 블로그

C002에 없는 데이터를 HACCP 포장지에서 찾다

Phase: 1 — 데이터 수집 시리즈: 공공데이터 레시피 대응 스토리: 운영 블로그 7화

이 글의 배경이 되는 이야기는 7화: 포장지에 답이 있었습니다에서 읽을 수 있습니다.

이 글을 읽으면 알 수 있는 것


문제: “유지류”가 전부인 성분표

식품안전나라 C002 API는 제품의 원재료 목록을 제공합니다. 104만 건의 제품에 대해 원재료 정보가 있으니, 양으로 보면 충분해 보입니다.

그런데 데이터를 하나씩 들여다보니 품질 편차가 컸습니다.

제품 예시C002 원재료 데이터
A 과자밀가루(밀:미국산, 호주산), 팜유(말레이시아산), 설탕, 정제소금, L-글루타민산나트륨… (20개 이상)
B 과자밀가루, 설탕, 유지류 (3개)

B 제품에 원재료가 세 가지만 들어가는 것이 아닙니다. 품목제조보고서에 그렇게만 기재한 겁니다.

이 차이가 문제가 되는 이유는 명확합니다. “유지류”라는 대분류로는 그 안에 팜유가 있는지, 코코넛유가 있는지 알 수 없습니다. 기피 성분 판별이 불가능합니다.


발견: HACCP 포장지표기정보 API

공공데이터포털을 탐색하다가 HACCP 인증 관련 API를 발견했습니다.

이 API의 응답에는 rawmtrl이라는 필드가 있었습니다. 포장지에 인쇄된 원재료 텍스트를 그대로 담고 있는 필드입니다.

C002에서 “밀가루, 설탕, 유지류”로만 나오던 제품이, HACCP API에서는 이렇게 나왔습니다:

밀가루(밀:미국산, 호주산), 설탕, 팜유(말레이시아산),
전분(옥수수:미국산), 정제소금, L-글루탐산나트륨(향미증진제),
5'-리보뉴클레오티드이나트륨(향미증진제)…

포장지에 인쇄되어 있는 그 원문이었습니다. 원산지 정보, 첨가물의 기능 분류까지 포함된 상세 데이터.

여기에 알레르기 유발물질(allergy), 영양성분(nutrient), 바코드(barcode)까지 함께 제공됩니다.


갈림길: 데이터가 겹칠 때 누구를 믿을 것인가

HACCP API에 등록된 제품 중 상당수는 C002에도 원재료 데이터가 있습니다. 같은 제품에 대해 두 가지 소스가 존재하는 상황. 어느 쪽을 우선할지 정해야 했습니다.

전략장점단점
C002만 사용104만 건 전체 커버대분류 수준 제품이 많음
HACCP만 사용포장지 원문 수준의 상세함1.4%만 커버
HACCP 우선, C002 보완있는 곳에서 최고 품질, 나머지도 커버소스별 품질 편차가 서비스에 노출됨

세 번째를 선택했습니다.

연결 기준은 prdlstReportNo(품목제조보고번호)입니다. HACCP 데이터에도 이 번호가 있어서, Product 테이블과 1:1로 연결할 수 있었습니다. 이름이나 제조사를 비교해서 추정하는 것이 아니라, 번호가 일치하는 것끼리만 연결합니다.


적재 설계: 무의미한 값 정리

API 응답에는 "알수없음", "N/A", "-" 같은 값이 섞여 있었습니다. 원래 비어 있어야 할 필드에 이런 문자열이 들어가 있으면, 나중에 “데이터가 있는 제품”을 셀 때 오류가 생깁니다.

그래서 적재 단계에서 무의미한 값을 일괄 정리했습니다.

빈 문자열, "알수없음", "null", "N/A", "n/a", "-"
→ 모두 "값 없음"으로 통일

이렇게 하면 “이 제품에 원재료 데이터가 있는가?”라는 질문에 정확히 답할 수 있습니다. 필드가 비어 있으면 진짜 없는 것이고, 값이 있으면 진짜 있는 겁니다.


결과

항목수치
HACCP API 등록 제품~14,700건
전체 제품 대비 비율~1.4%
Product 테이블 FK 연결prdlstReportNo 기반 1:1
추가 확보 정보포장지 원재료, 알레르기, 영양성분, 바코드, 제품 이미지

한계

커버리지가 1.4%입니다. HACCP 인증을 받은 제품 중에서도 포장지표기정보가 등록된 것만 해당합니다. 나머지 98.6%의 제품은 여전히 C002 데이터에 의존합니다.

HACCP 데이터도 완벽하지 않습니다. 일부 제품은 rawmtrl 필드가 비어 있거나, 원재료가 아닌 제품 설명이 들어가 있는 경우도 있었습니다.

한 줄 교훈

하나의 API가 부족할 때, 같은 정보를 다른 형태로 제공하는 또 다른 API가 존재할 수 있습니다. 공공데이터포털은 생각보다 넓습니다.


다음 글: 구분자가 5종류일 때: 원재료 텍스트 파싱 4단계 전략