sitelink1 | https://ggondae.tistory.com/79 |
---|---|
sitelink2 | https://180bpm.tistory.com/154 |
sitelink3 | https://www.foodsafetykorea.go.kr/ |
sitelink4 | https://www.consumer.go.kr/user/ftc/cons...tabType=01 |
sitelink5 | |
extra_vars6 |
식품에 대한 정보를 공공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개를 조회하였는데
- 쿠로미 바코드 : 8809530975282
- 락토핏 바코드 : 8805915647515
- 떡볶이 바코드 : 8809061671493
테스트 결과는
- 위 3가지 식품은 식약처에서는 모두 조회되지가 않는다.
- 식약처에 BRCD_NO 없이 조회하면 52849개의 등록된 상품 목록이 나온다.
바코드 8809360172172 는 두서비스 모두 조회가 된다.
- 식품의약품안전처 API 의 상세 내용에서는 유통물류진흥원의 요청으로 데이터가 2018년도까지만 제공된다고 적혀있다.
유통물류진흥원의 데이터는 유료화 되어 있다고 한다. (왜 그렇게 정책이 바뀌었는지 모르지만) - 유통물류진흥원에서는 크로미와 락토핏 2개만 올바르게 조회된다.
- 나머지 떡볶이는 엉뚱한 결과를 반환하는 오류가 발생한다.
위와 같이 바코드 스캐닝에서의 자바스크립트 버전의 인식률 문제와
바코드 데이터 조회에서의 API 서비스의 조회 결과 부정확 등의 두가지 기술적 한계를 가지고 서비스를 해야 하는데
어차피 서비스에서 필요로 하는 내용은 상품명을 취할때 바코드 스캔으로 손쉽게 입력하면 좋은 것 뿐이지
반드시 조회되어야만 하는건 아니므로 조회가 안되면 기존의 수동입력을 선택하도록 하는 것으로 결론지었다.
※ 참고 사항
유통물류진흥원의 조회 서비스는 소비자24 포털서비스에서도 동일하게 조회 가능하다.