Ⅰ. 서론
최근 4차 산업혁명이 이슈가 되며 빅데이터를 이용한 많은 서비스들이 개발됐다. 빅데이터는 기존의 전통적인 저장, 관리, 처리, 분석 도구들을 통해 처리하기 어려울 정도로 큰 규모의 데이터를 의미한다[1][2]. 이러한 다양한 빅데이터 중에서도 정부의 각 행정부처와 정부출연연구소로부터 생산되는 공공 빅데이터는 가장 가치 있는 데이터로 여겨진다. 최근 빅데이터 및 기계학습 분석 기법들이 중요하게 연구되며 공공 빅데이터를 이용하여 실생활에서 유용하게 활용될 서비스를 개발하려는 노력이 계속되고 있다. 연구자들은 안전행정부가 운영하는 공공데이터포털(3]이나 서울특별시가 운영하는 서울열린데이터광장(4] 등을 통하여 공공 데이터를 쉽게 접할 수 있게 됐다. 하지만 공공 빅데이터를 활용한 서비스가 보다 의미가 있으려면 사용자의 의사결정에 도움을 줄수 있는 정보를 제공해야한다. 이러한 정보를 제공하기 위해서는 단순히 공공 데이터를 시각화하여 보여주는 것에서 그칠 것이 아니라 빅데이터 분석 도구를 이용한 보다 복잡한 분석들을 수행하여야 한다.
본 논문에서는 공공 빅데이터 기반의 식품 가격 추이 분석 시스템을 제안한다. 제안하는 시스템은 다양한 출처로부터 다양한 형태로 수집되는 식품 가격 관련 데이터를 분석하여 특징에 따라 분류한다. 또한 제안하는 시스템은 빅데이터 분석 기법을 통해 식품의 가격에 영향을 미치는 요인을 분석하여 가까운 미래의 식품 가격을 연측한다. 마지막으로 제안하는 시스템은 데이터 시각화를 통해 분석된 결과를 사용자에게 제공한다.
본 논문의 구성은 다음과 같다. 2장에서는 기존에 소개되었던 식품 가격 분석 서비스들과 그들의 문제점을 소개한다. 3장에서는 제안하는 공공 빅데이터 기반의 식품 가격 추이 분석 시스템 설계를 설명한다. 4장에서는 설계된 내용을 바탕으로 공공 빅데이터 기반의 식품가격 추이 분석 시스템의 구현 내용을 설명한다. 마지막으로 5장에서 본 논문의 요약과 향후 연구내용을 제시한다.
Ⅱ. 관련 연구
공공 데이터를 활용하기 위한 노력은 2010년대 이전부터 계속 진행되었다. 초기에는 공공 데이터를 수집하고 이를 단순히 시각화하여 보여주는 생활형 서비스들이 많이 연구됐다[3]. 하지만 이러한 연구들은 공공 데이터에 대한 추이나 통계를 보여주는 것에 그치고 있어 사용자에게 보다 유용한 서비스를 제공하기에는 한계가 존재한다. 이후 공공 데이터에 빅데이터나 기계학습을 적용하여 사용자의 의사결정에 도움이 될 수 있는 유용한 정보를 제공하기 위한 일부 연구들이 진행됐다 [5]. 하지만 현재까지 식품 가격 정보와 관련하여 빅데이터 분석이나 기계학습이 적용된 연구는 존재하지 않는 것으로 파악됐다.
[그림 1]은 공공데이터포털의 메인화면을 보여준다. 공공데이터포털은 공공기관이 생성 또는 취득하여 관리하고 있는 공공데이터를 한 곳에서 제공하는 통합창구이다. 공공데이터포털에서는 국민이 쉽고 편리하게 공공데이터를 이용할 수 있도록 파일데이터, 오픈API, 시각화 등 다양한 방식으로 제공하고 있으며, 누구라도 쉽고 편리한 검색을 통해 원하는 공공데이터를 빠르고 정확하게 찾을 수 있다[3]. 또한 공공데이터포털은 공공데이터를 활용한 서비스 사례를 제공하고 있어 연구 및 서비스 개발에 참고자료로 활용할 수 있다.
그림 1. 공공데이터포털
기존 기법을 분석한 결과 식품과 관련된 서비스는 식품의 안전과 관련된 서비스가 대부분이었다. 예를들면 식품을 입력, 검색하거나 해당 식품의 사진을 찍으면 해당 식품의 구성 요소나 영양분, 인체에 미칠 영향 등을 사용자에게 제공하는 서비스 등이다. 식품 가격과 관련된 서비스로는 K농수산물 경매조회 서비스[3]와 파밍 도매시장 서비스[6]가 존재한다. 가격이 정해져있는 일반 공산품과는 달리 농수산물의 가격은 매일 변화하기 때문에 농수산물의 가격을 손쉽게 확인할 수 있는 서비스가 농수산물을 생산하고 유통하는 사람에게는 중요한 정보를 제공해주는 서비스인 것이다.
[그림 2]는 K농수산물 경매조회 서비스의 화면을 보여준다. K농수산물 경매조회 서비스는 농수산식품공사에서 유통하는 물품들의 경매결과 정보를 일별로 제공하는 서비스로 모바일 환경으로 구현됐다. 사용자는 모바일 어플리케이션을 통해 카테고리를 선택하여 원하는 농수산식품의 이름, 무게, 등급, 가격, 지역, 날짜에 따른 경매 금액을 확인할 수 있다. 본 서비스는 서울시농수산 식품공사의 데이터를 활용하여 구현됐다. 현재는 모바일 앱 스토어에서 제거되어 서비스를 하고 있지 않은 상태이다.
그림 2. K농수산물 경매조회 서비스[3]
[그림 3]은 파밍 도매시장 서비스의 화면을 보여준다 [6]. 파밍 도매시장 서비스는 전국 34개 농수산물 공영도매시장의 일별 경매가격을 실시간으로 확인할 수 있는 앱 서비스이다. 이 서비스는 실시간 경매정보, 조건을 이용한 검색, 관심시장 설정 등의 기능으로 구성됐다. 이 서비스는 농림축산식품부의 최신 경락정보(농산물 가격정보)를 제공한다. 또한 수백 개의 품목, 수천개의 품종을 키워드 검색으로 손쉽게 찾을 수 있으며 날짜, 시장, 시장안의 법인, 농수산물 등급, kg당 최저가 정렬, kg당 평균가 정렬, kg당 최고가 정렬등 다양한 방식으로 경매가격을 정렬할 수 있다. 마지막으로 관심 시장으로 등록 기능을 이용하여 관심시장의 경락정보만 검색결과에 나타나게 할 수 있다[3].
그림 3. 파밍 도매시장 서비스[5]
기존 식품 가격과 관련된 서비스들을 분석한 결과 단순히 식품 가격의 추이를 분석하고 이를 사용자에게 시각화하여 제공하는 서비스는 존재했다. 하지만 이 서비스들은 단순히 존재하는 공공 데이터를 사용자에게 잘 전달하는 것을 목표로 하고 있으며 빅데이터 분석을 통해 미래 가격을 예측한다거나 의미 있는 새로운 정보를 도출하는 기능은 가지고 있지 않다. 식품의 가격에 영향을 주는 요인들을 도출하고 분석하여 미래 식품의 가격을 예측할 수 있다면 사용자에게 보다 유용한 정보를 제공하는 서비스가 될 것이다.
III. 제안하는 식품 가격정보 분석 시스템 설계
[그림 4]는 제안하는 식품 가격 분석 시스템의 구성도를 보여준다. 제안하는 시스템은 크게 4단계로 구성된다. 데이터 수집 단계에서는 온라인에 다양한 형태로 존재하는 식품 관련 공공데이터를 수집한다. 또한 수집단계에서는 수집한 데이터들을 통합 분석할 수 있도록 전처리를 수행한다. 데이터 저장 관리 단계에서는 수집한 데이터를 처리하여 분석하기에 적합하도록 분산파일 시스템 또는 데이터베이스에 전처리된 데이터를 저장하고 관리한다. 또한 저장 관리 단계에서는 데이터가 분석에 활용될 수 있도록 다양한 형태의 데이터를 분산병렬 처리하는 기능을 지원한다. 데이터 분석 단계에서는 다양한 빅데이터 분석 기법을 활용하여 서비스에 필요한 분석 결과를 도출한다. 마지막으로 서비스 단계에서는 식품 가격 정보 분석 서비스를 웹서비스 형태로 사용자들에게 제공하기 위한 사용자 인터페이스 등을 설계하고 구현한다.
그림 4. 시스템 구성도
[그림 5]는 제안하는 시스템의 전체적인 프로세스 흐름도를 보여준다. 제안하는 시스템은 하듭(Hadoop), 스파크(Spark)과 같은 빅데이터 플랫폼을 활용했다 [7-9]. 다양한 출처로부터 실시간으로 수집되는 데이터는 파서(Parser)를 통해 제안하는 시스템에서 사용할 수 있는 데이터로 가공된다. 가공된 데이터는 사용목적에 따라 RDBMS와 NoSQL 데이터베이스에 저장된다. NoSQL 데이터베이스에 저장된 데이터는 빅데이터 분석 도구인 R, Mahout, Tensorflow 등과 연동된다. 빅데이터 분석을 통해 나온 의미 있는 결과들은 웹서비스를 통해 사용자에게 제공된다. 사용자는 그래프 또는표와 같이 직관적인 인터페이스를 통해 빅데이터 분석결과들을 확인할 수 있다.
그림 5. 제안하는 시스템의 프로세스 흐름도
[표 1]과 [표 2]는 제안하는 식품 정보 분석 시스템을 위한 데이터베이스 스키마를 나타낸다. 제안하는 식품정보 분석 시스템에서 사용되는 데이터는 공공데이터포털과 공공기관 홈페이지 등에서 직접 수집한 정보를 사용한다. 제안하는 시스템은 국내 농산물과 해외 농산물 정보를 활용하여 품목별 월별 평균 가격 분석, 국내품목 가격에 영향을 미치는 요소, 그리고 국내 농산물과 해외 농산물의 가격 연관성 등을 분석한다. [표 1]은 국내 농산물 가격 데이터베이스 스키마의 예를 보여준 다. 국내 농산물은 총 11개 컬럼으로 구성된다. 본 논문에서는 국내 농산물 컬럼을 6개의 컬럼 패밀리로 구분한다. 컬럼 패밀리는 가격, 날짜, 분류, 판매처, 등급, 거래량 등을 기준으로 구성했다.
표 1. 국내 농산물 가격 데이터베이스 스키마 (예)
표 2. 해외 농산물 가격 데이터베이스 스키마 (예)
[표 2]는 해외 농산물 가격 데이터베이스 스키마의 예를 보여준다. 해외 농산물은 총 11개의 컬럼으로 구성된다. 본 논문에서는 해외 농산물 컬럼을 5개의 컬럼패밀리로 구분한다. 국내 농산물과는 달리 해외 농산물에는 거래량 등의 정보가 존재하지 않는다. 그 대신 가격과 관련된 더 많은 정보를 포함하고 있다. 제안하는 시스템에서 특정 농산물에 대한 빅데이터 분석을 수행하기 위하여 국내 농산물과 해외 농산물은 rowkey를 통해 같은 작물이 연결되어 통합 분석된다.
IV. 제안하는 식품 가격 정보 분석 시스템 구현
[그림 6]은 제안하는 식품 가격 분석 서비스 프로토타입의 메인 화면을 보여준다. 제안하는 서비스는 아파치(Apache) 웹 서버를 이용하여 제공된다.
그림 6. 제안하는 서비스의 메인 화면 (웹 메인에 활용된 그림 : 밀레의 '이삭줍는 여인들')
[그림 7]은 제안하는 서비스에서 제공하는 다양한 식품 정보와 관련된 카테고리를 보여준다. 식품 가격에 대한 분석 결과는 국내/해외를 구분하여 제공된다. 그 이유는 국내 식품 가격과 해외 식품 가격은 가격의 추이에 영향을 주는 요소가 매우 다른 특성을 가지고 있기 때문이다. 사용자는 메뉴를 선택하여 국내 또는 해외 식품의 다양한 분석 결과를 확인할 수 있다. 제안하는 서비스에서 사용자는 메뉴에서 원하는 식품을 탐색하기 위하여 카테고리별로 정보를 조회할 수 있다.
그림 7. 식품 정보 카테고리
해당 식품 정보들은 공공데이터포털을 포함한 다양한 출처로부터 수집했다. 제안하는 시스템은 다양한 출처로부터 수집한 식품 정보를 통합 분석할 수 있도록 통합 데이터베이스를 구축했다. 해당 데이터로부터 분석된 결과를 통해 제안하는 서비스는 사용자가 선택한 특정 식품에 대한 3년간 가격 추이 그래프, 특정 3년간 가격추이 표, 해당 품목의 특정 연도 국내/외 가격 비교, 3년간 거래량 누적 그래프 등을 제공한다. 제안하는 서비스는 다양한 시각화를 통해 사용자에게 분석 결과를 제공하기 때문에 사용자는 본인에게 유용한 정보를 높은 가독성을 가진 결과로 제공받을 수 있다.
[그림 8]은 제안하는 서비스에서 제공하는 식품의 가격 추이 분석 그래프를 보여준다. 예제는 과거시점의 가죽나물에 대한 월별 가격 변화를 구글 그래프 API [10]의 막대 그래프를 이용하여 표현한 결과이다. 막대그래프를 통해 사용자는 특정 3년간 해당 식품의 가격이 월별로 어떻게 변화했는지를 확인할 수 있다.
그림 8. 가격 추이 분석 그래프 (예)
[그림 9]는 제안하는 서비스에서 제공하는 식품의 가격 추이 분석표를 보여준다. 예제는 과거시점의 가죽나물에 대한 월별 가격 변화를 테이블 구조를 이용하여 표현한 결과이다. 테이블 구조를 통해 사용자는 특정 3 년간 해당 식품의 가격이 월별로 어떻게 변화했는지를 상세한 수치로 확인할 수 있다.
그림 9. 가격 추이 분석표 (예)
[그림 10]은 제안하는 서비스에서 제공하는 국내외 가격 비교 분석 그래프를 보여준다. 예제는 과거시점의 가죽나물에 대한 국내외 가격 변화를 구글 그래프 API 의 꺾은선 그래프를 이용하여 표현했다. 꺽은선 그래프를 통해 사용자는 특정 해에 해당 식품의 가격이 월별로 어떻게 변화했는지는 한 눈에 파악할 수 있다.
그림 10. 국내외 가격 비교 분석 (예)
[그림 11]은 제안하는 서비스에서 제공하는 누적 거래량 분석 그래프를 보여준다. 예제는 과거시점의 가죽나물에 대한 누적 거래량을 구글 그래프 API의 누적 그래프를 이용하여 표현한 결과이다. 누적 그래프를 통해 사용자는 특정 3년 동안 해당 식품의 거래량이 어떻게 변화했는지를 확인 할수 있다.
그림 11.누적 거래량 분석 (예)
[그림 12]는 제안하는 서비스에서 제공하는 가격에 영향을 미치는 비율 분석 그래프를 보여준다. 예제는 가죽나물의 가격에 대하여 등급, 거래량, 규격을 연관 분석하여 가격에 영향을 미치는 비율을 구글 그래프 API의 원통 그래프를 이용하여 표현했다. 본 연구에서는 이미 수집된 등급, 거래량, 규격, 가격의 과거 데이터를 이용하여 회귀 분석을 수행한다[11-13]. 이때, 비교적 최근에 수집된 데이터를 검증을 위한 결과 데이터로, 더 이전 시점의 데이터를 분석 데이터로 활용한다. 학습을 위한 데이터는 검증에 이용한 데이터를 기준으로 최근 3년의 데이터를 활용했다. 제안하는 분석 시스템은 다중 회귀 분석을 수행하여 각 요소들이 가격에 얼마나 영향을 미치는지 규명한다. 분석 시스템은 이렇게 도출된 각 요소의 영향력을 가중치의 최초 값으로 입력하여 가격을 예측한다. 분석 시스템은 예측 가격과 실제 수집된 가격의 오차를 계산하고, 가중치를 변경하여 다시 예측을 수행하고 오차를 계산하는 과정을 반복하여 각 식품별로 가정 정확도가 높은 가격에 영향을 미치는 요인과 비율을 도출한다. 이렇게 도출된 각 식품의 가격에 영향을 미치는 비율은 해당 식품에 대한 가까운 미래의 가격을 예측할 때 각 요소들의 가중치로 반영된다.
그림 12. 가격에 영향을 미치는 비율분석 (예)
수식 1은 가죽나물의 가격에 영향을 미치는 비율 분석 결과를 바탕으로 도출한 가격 예측 수식을 보여준다. 수식 1에서 가중치는 각 식품에 대하여 등급, 거래량, 규격이 가격에 영향을 미치는 비율을 기반으로 결정된다. 예를 들어 가죽나물의 경우 각각의 가중치는 0.647, 0.118, 0.235로 결정된다. 만약 사용자가 t 시점의 가격을 예측하려고 할 경우, 이전 시점인 t-1 시점의 가격으로부터 등급, 거래량, 규격이 변화한 정도와 가중치를 이용하여 예측을 수행한다.
\(\begin{aligned} \text { price }_{(x, t)}=\text { price }_{(x, t-1)} &\left(w_1 \times \Delta\right. \text { grade }\\ +& w_2 \times \Delta \text { tradeamt } \\ &\left.+w_3 \times \Delta \text { unit }\right) \\ & w_1+w_2+w_3=1.0 \end{aligned}\) (1)
Ⅴ. 결론
본 논문에서는 공공 빅데이터 기반의 식품 가격 추이분석 시스템을 설계하고 구현했다. 제안하는 시스템은 다양한 출처로부터 다양한 형태로 수집되는 식품 가격관련 데이터를 분석하여 특징에 따라 분류한다. 또한 제안하는 시스템은 빅데이터 분석 기법을 통해 식품의 가격에 영향을 미치는 요인을 분석하여 가까운 미래의 식품 가격을 예측한다. 마지막으로 제안하는 시스템은 데이터 시각화를 통해 분석된 결과를 사용자에게 제공한다. 제안하는 시스템을 통해 사용자는 단순히 가격의 추이만을 확인하는 것이 아니라 식품에 대한 가까운 미래의 가격을 예측하고 의사결정에 활용할 수 있다. 하지만 본 연구는 식품 가격의 추이를 분석하여 예측을 수행하는 것에 한계가 존재한다. 그 이유로 제안하는 시스템의 예측 기법은 식품의 가격에 영향을 미칠 수있는 날씨, 주요이슈 등 보다 다양한 요소들을 고려하고 있지 않다. 특히 식품마다 영향을 미치는 요소들이 매우 달라 정형화된 Rule로 만들기 어려운 것이 현실이기 때문에 기계학습을 수행하여 각 식품에 대한 요소들에 대한 모델을 도출하여 예측을 수행하는 접근을 연구할 필요가 있다. 따라서 향후 연구로는 다양한 연관분석을 수행하여 예측의 정확도를 향상시킬 것이다. 또한 연관 분석 기반의 식품 가격을 예측 기법을 구현하여 본 서비스에 포함할 예정이다. 끝으로 예측된 결과에 대한 성능평가를 통해 본 시스템의 유용성을 입증할 것이다.
참고문헌
- J. Manyika, M. Chui, B. Brown, J. Bughin, R. Dobbs, C. Roxburgh, and A. H. Byers, "Big data: The Next Frontier for Innovation, Competition, and Productivity," McKinsey Global Institute, 2011.
- P. Zikopoulos and C. Eaton, "Understanding Big Data: Analytics for Enterprise Class Hadoop and Streaming Data," McGraw-Hill Osborne Media, 2011.
- http://www.data.go.kr/
- http://data.seoul.go.kr/
- J. T. Lim, K. S. Bok, and J. S. Yoo, "Design and Implementation of a Realtime Public Transport Route Guidance System using Big Data Analysis," Journal of Korea Contents Association, Vol.19, No.2, pp.460-468, 2019. https://doi.org/10.5392/JKCA.2019.19.02.460
- https://play.google.com/store/apps/details?id=kr.co.farmingnote.farmingwholesale&hl=ko&gl=US
- T. White, "Hadoop: The Definitive Guide: The Definitive Guide," 2009.
- K. Shvachko, Sunnyvale, K. Hairong, S. Radia, and R. Chansler, "The Hadoop Distributed File System," Proc. IEEE 26th Symposium on Mass Storage Systems and Technologies(MSST), pp.1-10, 2010.
- J. Dean and S. Ghemawat, "MapReduce: simplified data processing on large clusters," Journal of Communications of the ACM - 50th anniversary issue: 1958 - 2008, Vol.51, No.1, pp.107-113, 2008.
- https://developers.google.com/chart/
- Gelman, Andrew, Jennifer Hill, and Aki Vehtari, Regression and other stories, Cambridge University Press, 2020.
- Douglas C. Montgomery, Elizabeth A. Peck, and G. Geoffrey Vining. "Introduction to linear regression analysis," John Wiley & Sons, 2021.
- S. Akter, "The impact of COVID-19 related 'stay-at-home'restrictions on food prices in Europe: findings from a preliminary analysis," Food Security, Vol.12, No.4, pp.719-725, 2020. https://doi.org/10.1007/s12571-020-01082-3