Java/Spring Framework

[ Spring ] 공공데이터 API

Mungwang 2023. 8. 25. 10:10

💎  공공데이터란?

📢 공공데이터(Open Data)란

-  데이터베이스, 전자화된 파일 등으로 공공기관에서 사용할 목적으로 처리된 자료 또는 정보이다. 공공기관에서의 일상적 업무수행의 결과물로 생성 또는 수집/취득한 다양한 형태(텍스트, 이미지, 동영상 등)의 모든 자료이다.

 

📢 공공데이터 개방 

-  공공기관이 이용자에게 정보를 재활용할 수 있도록 제공하고, 제공받은 정보를 상업적/비영리적으로 이용할 권한을 부여하는 것

 

📢 공공데이터 활용 

-  정부에서 운영하고 있는 공공데이터를 제공하는 웹 애플리케이션으로 누구나 자유롭게 공공데이터를 확인 하고 관련 내용을 활용하여 애플리케이션을 만들 수 있다.

 

📢 공공데이터 포털 사이트 링크  

-  https://www.data.go.kr 

 

📢 공공데이터 파일 다운로드 방식

CSV, XML, exls 형태의 파일로 데이터를 제공하는 것 사용자가 직접 파일을 다운로드 받아 사용할 수 있다.

💎  OpenAPI 방식

🔊  요청변수와 출력결과

🎈 요청변수(Request Parameter)

OpenAPI 서버에 요청 시 필요한 속성들을 나열한 것이다. 항목구분이 필수인 속성들은 반드시 key=value 형식으로 전달 해야만 한

 

🎈 출력결과(Response Element)

-  OpenAPI 서버에 요청 결과 응답메세지에 포함된 데이터의 형식을 의미한다. 기본적으로 결과 코드, 결과 메시지 등을 포함하고 있으며 실제 필요로 하는 값들이 담겨 있는 형식이므로 API 문서를 잘 파악해서 구현하고자 하는 application과 연동해야 한다

🔊  데이터 포맷 정류

🎈 XML 형식

HTML과 같은 마크업 언어(Markup Language)로 웹에서 구조화된 문서를 전송 가능하도록 설계되어 각 요소들의 독립성을 보장함으로써 문서의 호환성, 내용의 독립성, 요소 변경의 용이성 등의 특성을 제공하는 사용자 정의 태그 문서

 

🎈 JSON 형식

자바스크립트의 구문 형식으로 프로그래밍 언어나 플랫폼에 독립적이기 때문에 C, C++, C#, Java, JavaScript 등 많은 언어에서 이용가능

 

🎈 CSV 형식

각 항목이나 내용마다 쉼표(comma)로 구분되어 저장 CSV형식의 파일은 텍스트 파일로 보존되며 문서처리기나 편집기에서 열람 및 편집 가능 엑셀에서 ‘다른 이름으로 저장'시 파일 형식을 CSV 포맷으로 변환도 가능

 

🎈 XLS 형식

마이크로소프트(MS)사의 엑셀 문서 형식으로 스프레드시트를 연결하고 통합하여 다양한 도형과 차트 등 자료를 작성하는 기능 제고

💎  공공데이터 OpenAPI를 사용하기 위한 절차

 1) 공공데이터 포털(www.data.go.kr) 회원가입 후 로그인

 2) 사용하고자 하는 공공데이터 조회 및 선택

 3) OpenAPI 개발 계정 신청

-  ↑ 이 페이지에서 보여지는 인증키는 활용신청 한 공공데이터를 사용하기 위해 발급받은 나만의 인증키이다

 4) 개발하고자 하는 Application에서 공공데이터 연동 기능 구현

-  ↑ 일반 데이터를 시각화해서 볼때는 xml 파일로 보는게 보기에 편하다 / 응답데이터상세 (참고문서에 명세)

💎  공공데이터 활용 ( Web Application )

🔊 HttpUrlConnection 객체 사용 절차

1. 요청할 주소를 전달해서 java.net.URL 객체 생성하기

2. 생성된 URL 객체를가지고 HttpUrlConnection 객체 얻어내기

3. 요청 시 필요한 Header 설정하기

4. 해당 OpenAPI 서버로 요청 보낸 후 입력 스트림을 통해 응답데이터 받기

5. 다 사용한 스트림 객체 반납하기

🔊 비동기식으로 웹 애플리케이션에 적용하고자 할 때의 절차

1. Jsp에서 현재 웹 애플리케이션 서버로 ajax 요청

2. Controller에서 요청 받기 (이때 요청 시 전달값이 있다면 기록)

3. HttpURLConnection 객체 활용해서 OpenAPI서버에 요청하여 응답데이터 받기

4. 3번 과정에서의 응답데이터를 Client에게 다시 응답

5. Client측에서 돌려받은 응답데이터를 가지고 파싱 작업 후 웹 페이지에 시각화 하기