식품에 대한 정보를 공공API 를 이용하여 데이터를 취득하고 이를 서비스에 활용하기 위한 방안을 조사하였다.

 

프로그램에서는 구글의 오픈소스인 ZXing TypeScript 를 사용하였는데

동일한 GCV(구글 클라우드 비전)과는 성능의 차이가 있는지 많은 상품에서 바코드 인식률이 좋지 않았다.

ZXing 에서는 조회되지 않는 바코드가 안드로이드 앱으로 개발된 프로그램에서는 조회된다.

그리고 겨우 추출해낸 바코드를 공공API 에서 조회해보았다.

 

테스트 결과 현재까지 조회 가능한 공공서비스 모두 반환 결과가 올바르지 않을 수 있음을 알게 되었다.

공공API에서 바코드를 조회하기 위해 현재까지 조사한 바로는 "식품의약품안전처의 유통바코드 OpenAPI" 를 활용하거나

"대한상공회의소 유통물류진흥원"에서 조회하는 두가지 방법이 있다.

 

1. 식품의약품안전처 유통바코드 OpenAPI

  - URL : http://openapi.foodsafetykorea.go.kr/api/[사용자 인증키]/I2570/json/1/5/BRCD_NO=[상품 바코드]

 

2. 대한상공회의소 유통물류진흥원에서 상품조회

  - URL : https://gs1.koreannet.or.kr/pr/[상품 바코드]

 

위 두 서비스를 이용하여 다음과 같은 상품 3개를 조회하였는데

 

1687681315222.jpg 캡처1.PNG dc8baf0ad1a6475f1831cf38644795c8.jpg

 

- 쿠로미 바코드 : 8809530975282

- 락토핏 바코드 : 8805915647515

- 떡볶이 바코드 : 8809061671493

 

테스트 결과는

 

  1. 위 3가지 식품은 식약처에서는 모두 조회되지가 않는다.
      - 식약처에 BRCD_NO 없이 조회하면 52849개의 등록된 상품 목록이 나온다.
        바코드 8809360172172 는 두서비스 모두 조회가 된다.
      - 식품의약품안전처 API 의 상세 내용에서는 유통물류진흥원의 요청으로 데이터가 2018년도까지만 제공된다고 적혀있다.
        유통물류진흥원의 데이터는 유료화 되어 있다고 한다. (왜 그렇게 정책이 바뀌었는지 모르지만)
  2. 유통물류진흥원에서는 크로미와 락토핏 2개만 올바르게 조회된다.
      - 나머지 떡볶이는 엉뚱한 결과를 반환하는 오류가 발생한다.
     

 

위와 같이 바코드 스캐닝에서의 자바스크립트 버전의 인식률 문제와

바코드 데이터 조회에서의 API 서비스의 조회 결과 부정확 등의 두가지 기술적 한계를 가지고 서비스를 해야 하는데

어차피 서비스에서 필요로 하는 내용은 상품명을 취할때 바코드 스캔으로 손쉽게 입력하면 좋은 것 뿐이지

반드시 조회되어야만 하는건 아니므로 조회가 안되면 기존의 수동입력을 선택하도록 하는 것으로 결론지었다.

 

 

 

※ 참고 사항

유통물류진흥원의 조회 서비스는 소비자24 포털서비스에서도 동일하게 조회 가능하다.

 

 

번호 제목 글쓴이 날짜 조회 수
공지 2023 Software Development Trend 정리 황제낙엽 2024.01.19 1
147 naver(네이버) developers에서 제공하는 OAuth REST API 관련 링크 황제낙엽 2023.12.31 12
146 (bing) 소프트웨어의 일반적인 버전 관리 규칙 황제낙엽 2023.10.24 1
145 kakao(카카오) developers에서 제공하는 OAuth REST API 관련 링크 황제낙엽 2023.10.22 2
» 식품(상품) 바코드를 조회하여 제품 정보 획득하기 file 황제낙엽 2023.08.07 17
143 식약처(식품의약품안전처) 공공데이터 API 황제낙엽 2023.08.07 5
142 서비스 이용약관과 개인정보 처리방침 황제낙엽 2023.07.15 1
141 프로젝트 운영 관리 소프트웨어로 100% 자동화된 '데브옵스(DevOps)' 구축하기 (LG CNS) file 황제낙엽 2023.07.12 6
140 개발자이기 전에 노동자로써의 삶에 대한 고찰 (지극히 개인적인 사설) 황제낙엽 2023.02.28 3
139 [SDC22 키노트 요약정리] 더 쉽게, 끊김 없이 매끄럽게! ‘캄 테크’ 향해 진화하는 미래의 집 황제낙엽 2022.12.24 23
138 변수 네이밍 표기법 종류 file 황제낙엽 2022.11.30 2
137 이미지에서 텍스트를 추출하는 OCR 방법들 file 황제낙엽 2022.09.23 3
136 지수(과학적 표기법, "E") 서식 지정자 (2) 황제낙엽 2021.07.06 24
135 REST API 제대로 알고 사용하기 황제낙엽 2021.06.02 19
134 locale (로캘, 로케일) 황제낙엽 2021.03.19 11
133 [REST API] HTTP METHOD 종류 황제낙엽 2021.01.14 30
132 [Deno] TypeScript를 실행하기 위한 Command-line 런타임 황제낙엽 2021.01.14 8
131 REST, REST API, RESTful [2] 황제낙엽 2021.01.11 90968
130 i18n (internationalization) 황제낙엽 2020.09.19 18
129 Webhook이란? 황제낙엽 2020.06.09 59