[DataUs] Open Data Quality - 공공데이터 품질 개선 도구 to GitHub

Open Data Quality[ODQ] 공공데이터 품질 개선 도구

2022년 NHN Cloud 무료 교육일정 : https://doc.skill.or.kr/2022-NHN-Cloud-Education

2022년 NHN Cloud 행사/프로모션 정보 공유 : https://doc.skill.or.kr/2022-NHN-Cloud-Event-Promotion

1. 먼저 알아두기

1.1 공공데이터란 무엇인가?

데이터베이스, 전자화된 파일 등 공공기관이 법령 등에서 정하는 목적을 위하여 생성 또는 취득하여 관리하고 있는 광(光) 또는 전자적 방식으로 처리된 자료 또는 정보로서 다음과 같은 것을 지칭한다. 첫째, 「전자정부법」에 따른 행정정보, 둘째, 「국가정보화 기본법」에 따른 정보 중 공공기관이 생산한 정보, 셋째, 「공공기록물 관리에 관한 법률」에 따른 전자기록물 중 대통령령으로 정하는 전자기록물, 그 밖에 대통령령으로 정하는 자료 또는 정보가 있다. 따라서, 공공데이터는 개별 공공기관이 일상적 업무수행의 결과물로 생성 또는 수집‧취득한 다양한 형태(텍스트, 수치, 이미지, 동영상, 오디오 등)의 모든 자료 또는 정보를 대상으로 하며, "기계 판독이 가능한 형태"로 "제공"이되어야 한다. 여기서 "기계 판독이 가능한 형태"란 소프트웨어로 데이터의 개별 내용 또는 내부 구조를 확인하거나 수정, 변환, 추출 등 가공할 수 있는 상태를 말하며, "제공" 이란 공공기관이 이용자로 하여금 기계 판독이 가능한 형태의 공공데이터에 접근할 수 있게 하거나 이를 다양한 방식으로 전달하는 것을 말한다.[1]

정부는 보유한 공공 정보를 적극적으로 개방하여 국민과 공유함으로써 소통과 협력을 확대하기 위해 공공데이터 정책을 추진하게 되었고, 2013년 7월 공공데이터의 제공 및 이용활성화에 관한 법률(약칭 : 공공데이터법)을 제정하고 10월부터 시행 되었다.[2]

공공데이터 제공 및 이용 활성화에 관한 정책은 '행정안전부’가 총괄하며, 이 법률에 근거하여 2013년 11월, 정부나 공공기관이 보유한 공공데이터를 민간에서 쉽게 활용할 수 있도록 지원하기 위하여 한국정보화진흥원에 공공데이터활용지원센터’를 설치 하였다.[3] 각 공공기관은 공공데이터제공책임관 및 실무자를 지정하고 관련 업무를 지원한다.[4] 또한 정부는 공공데이터 관련 정책을 심의, 조정 및 그 추진사항을 점검하기 위하여 국무총리실 산하에 공공데이터전략위원회[5]를 설립하였고, 공공기관의 공공데이터 제공거부 또는 중단문제 발생시 해결을 위한 공공데이터제공분쟁조정위원회[6]를 설립하여 공공데이터 활성화 정책을 추진하고 있다.(참고 : wiki)

1.2 공공데이터 개방

공공데이터 개방이란 정부, 지방자치단체 및 공공기관이 보유·관리하는 공공데이터를 이용자가 자유롭게 활용할 수 있도록 다양한 형태로 개방·제공하는 것이다. 대한민국 정부, 지방자치단체 및 공공기관은 공공데이터를 이용자가 자유롭게 활용할 수 있도록 다양한 형태로 개방·제공하고 있다. 단, 개인정보보호, 제3자의 권리(저작권 등)가 포함된 정보, 국가 안보와 질서에 관련한 정보 등 제외된다.

공공 데이터는 누구나 자유롭게 이용 할 수 있으며 공공데이터포털을 통해 국민이 쉽고 편리하게 공공데이터를 이용할 수 있도록 파일데이터, 오픈API, 시각화 등 다양한 방식으로 제공하고 있으며, 누구라도 쉽고 편리한 검색을 통해 원하는 공공데이터를 빠르고 정확하게 찾을 수 있다. (참고 : wiki)

1.3 공공데이터 활용

정부는 공공데이터 이용에 대한 국민의 인식을 높이고 이용 활성화를 촉진하기 위하여, 공공데이터 활용 기업의 창업에서부터 성장까지 전과정을 지원한다. 공공데이터 활용 창업 공간인‘ 오픈스퀘어-D’와‘ 공공데이터 활용 창업경진대회’가 그 대표적인 예이다. 오픈스퀘어-D는 공공데이터에 대한 창의적인 아이디어를 가진 사람들이 경험과 기술을 교류하고, 사업화.창업으로 성장할 수 있도록 종합적으로 지원하는 열린공간이다. 오픈스퀘어-D는 창업자들을 위한 입주공간, 아이디어 교류 및 발전을 위한 협업공간, 서비스 개발에 필요한 테스트 및 데이터 분석을 위한 테스트 공간으로 구성되어 있다. 창업단계별 교육, 맞춤형 컨설팅, 투자유치 및 네트워킹 등 다양한 프로그램이 제공된다.‘ 공공데이터 활용 창업경진대회’는 공공데이터를 활용한 아이디어 또는 웹(앱) 제품 및 서비스 개발 아이템을 발굴하는 대회이다. 민간의 창의적인 아이디어를 공공데이터와 융합하여 새로운 비즈니스 모델을 발굴해 공공데이터 기반의 창업촉진 및 창업기업 육성을 목적으로 매년 1회 개최된다. 국민 누구나 참여가 가능하며, 수상자에게는 시상금뿐만 아니라 제품 및 서비스 홍보, 사무공간 지원, 투자유치, 창업컨설팅 등 다양한 혜택이 제공된다. (참고 : wiki)

1.4 Open Data Quality(ODQ)란 무엇인가?

OQD는 UTF8-BOM으로 인코딩된 공공데이터 csv파일의 품질 개선 도구입니다.

데스크탑 크로스 플랫폼 프레임워크인 Electron으로 구성되었으며 HTML, CSS, JavaScript로 작성된 SPA입니다. (참고 : GitHub)

1.5 국내외 공공데이터

2. Open Data Quality(ODQ) 사용법

2.1 Open Data Quality(ODQ) 개요

2.2 Open Data Quality(ODQ) 룰셋 목록

명칭
설명
정비 로직

문자열

숫자를 제외한 모든 값 허용

자동 정비 불가

사용자 지정 문자열

사용자가 지정한 형식의 문자열만 허용

-

정수

양의 정수,0,음의정수 값만 허용

숫자를 제외한 모든 문자를 제거

사용자 지정 숫자

소수점 자릿수, 숫자 길이, 양수 및 음수여부, 0여부

-

여부 (Y,N)

Y, N 값만 허용

  1. 대소문자 구분 없이 아래의 값을 허용 ( 'Y','N','O','X','NULL','false','1','0' )

  2. Truthy 한 값들은 Y, Falsy한 값들은 N으로 정비

여부값지정

사용자가 지정한 문자열로만 이루어져 있는지 확인

-

날짜

날짜 양식 설정하여 확인

  1. 아래의 문자열을 하이픈(-)으로 치환 ( '.' , '/')

  2. 문자열 길이에 맞춰 적잘한 위치에 맞게 하이픈(-) 삽입 20220101 -> 2022-01-01

코드값지정

입력한 텍스트 목록에 포함되는 값인지 확인

자동 정비 불가

전화번호

전화번호 - 정규식

  1. 8자리 숫자 -> XXXX-YYYY

  2. 11자리 숫자 -> 0NZ-XXXX-YYYY

  3. 13자리 숫자 -> 00N-PPP-QQQQQQQ

우편번호

우편번호 - 정규식

  1. 6자리 숫자는 하이픈을 붙임 (-)

  2. 4자리 숫자는, 숫자 앞에 0을 추가 3000 -> 03000

사업자번호

사업자번호 - 정규식

열자리 숫자로 이루어져 있는 값은 하이픈(-)을 삽입 101010001 -> 101-01-0001

패턴지정번호

사용자가 지정한 형식의 숫자 및 하이픈으로 구성되 있는지 확인

숫자로만 이루어진 값은 하이픈(-)을 삽입

2.3 Open Data Quality(ODQ) 사용 방법

아래와 같은 방법으로 사용 하시면 됩니다. 자세한 사항은 참고 파일을 다운로드 하시기 바랍니다. (참고 : 사용자 메뉴얼)

3. Open Data Quality(ODQ) 개발 환경

3.1 Open Data Quality(ODQ) 시스템 구성

패키지 명
버전
비고

Nginx

1.21.6

3.2 Open Data Quality(ODQ) 설치 방법

3.2.1 GitHub 소스 주소

GitHub 소스 주소 : https://github.com/dataus-tech/ODQ

3.2.2 Git Source Clone

Git Source Clone
# git clone https://github.com/dataus-tech/ODQ.git /usr/share/nginx/html
# ls -alh /usr/share/nginx/html
total 124K
drwxr-xr-x 9 root root 4.0K Mar 15 01:55 .
drwxr-xr-x 1 root root 4.0K Mar 15 02:21 ..
-rw-r--r-- 1 root root  386 Mar 15 01:55 .eslintrc.js
drwxr-xr-x 8 root root 4.0K Mar 15 01:55 .git
-rw-r--r-- 1 root root  138 Mar 15 01:55 .gitignore
-rw-r--r-- 1 root root   29 Mar 15 01:55 .prettierignore
-rw-r--r-- 1 root root  268 Mar 15 01:55 .prettierrc.json
-rw-r--r-- 1 root root 1.2K Mar 15 01:55 README.md
-rw-r--r-- 1 root root  127 Mar 15 01:55 babel.config.json
drwxr-xr-x 2 root root 4.0K Mar 15 01:55 dist
drwxr-xr-x 3 root root 4.0K Mar 15 01:55 electron
-rw-r--r-- 1 root root  41K Mar 15 01:55 gdq-github.log
-rw-r--r-- 1 root root   78 Mar 15 01:55 index.html
-rw-r--r-- 1 root root  365 Mar 15 01:55 jest.config.js
-rw-r--r-- 1 root root 1.9K Mar 15 01:55 package.json
drwxr-xr-x 2 root root 4.0K Mar 15 01:55 public
drwxr-xr-x 9 root root 4.0K Mar 15 01:55 src
drwxr-xr-x 2 root root 4.0K Mar 15 01:55 testFiles
drwxr-xr-x 3 root root 4.0K Mar 15 01:55 tests
-rw-r--r-- 1 root root 2.7K Mar 15 01:55 webpack.config.js

3.2.3 Nginx Service Start

Nginx Service
# nginx -g 'daemon on;'
2022/03/15 02:25:53 [notice] 618#618: using the "epoll" event method
2022/03/15 02:25:53 [notice] 618#618: nginx/1.21.6
2022/03/15 02:25:53 [notice] 618#618: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
2022/03/15 02:25:53 [notice] 618#618: OS: Linux 5.10.16.3-microsoft-standard-WSL2
2022/03/15 02:25:53 [notice] 618#618: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2022/03/15 02:25:53 [notice] 619#619: start worker processes
root@c896fdfd65f0:/usr/share/nginx# 2022/03/15 02:25:53 [notice] 619#619: start worker process 620
2022/03/15 02:25:53 [notice] 619#619: start worker process 621
2022/03/15 02:25:53 [notice] 619#619: start worker process 622
2022/03/15 02:25:53 [notice] 619#619: start worker process 623

3.2.4 WEB Service 접속 화면

http://localhost 접속 화면

3.3 Open Data Quality(ODQ) 사용 방법

3.3.1 공공데이터 접속 후 CSV 파일 다운로드

공공데이터 접속(https://data.go.kr) 에서 필요한 공공데이터를 검색 후 CSV 파일을 다운로드 받아서 ODQ 프로그램을 통해 CSV 파일의 데이터 품질 검증 및 개선을 제공 합니다.

"서울교통공사_서울 도시철도 열차운행시각표" 검색하여 CSV 파일 (다운로드)

공공데이터 사이트 : 바로가기

3. Open Data Quality(ODQ) 를 docker로 실행 하기

3.1 docker 로 실행

# docker run -d -p 80:80 bchwang/tomcat_mariadb:nginx-odq1.0
a47483bdd648b67d717e2d848153f77807ec1dd675c2dc17711d8ae390c54fd3
# docker ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS         PORTS                NAMES
a47483bdd648   bchwang/tomcat_mariadb:nginx-odq   "/docker-entrypoint.…"   11 seconds ago   Up 7 seconds   0.0.0.0:80->80/tcp   nifty_almeida

3.2 Web Service 화면

000. 그 외의 사항들

000.1 공공데이터 CSV 파일을 다운로드 받았는데 ODQ 로 열리지가 않아요.

OQD는 UTF8-BOM으로 인코딩된 공공데이터 csv파일을 진단 하는 도구라 다른 인코딩으로 저장 되었을 때는 파일 정상적으로 보이지 않습니다. 에디터 프로그램을 사용하여 인코딩을 변경(UTF8 or UTF8-BOM)하여 사용 하시기 바랍니다.

000.2 용량 제한이 있나요 ?

용량에는 제한이 없지만 PC 상태에 따라 50~100MB 까지 진단, 점검, 정비가 가능 합니다.

000.3 그 이외의 문의 사항은????

각종 이슈 및 버그는 여기로 문의 주시기 바랍니다.

2022년 NHN Cloud 무료 교육일정 : https://doc.skill.or.kr/2022-NHN-Cloud-Education

2022년 NHN Cloud 행사/프로모션 정보 공유 : https://doc.skill.or.kr/2022-NHN-Cloud-Event-Promotion

Last updated