본문 바로가기
JAVA/Android

안드로이드 개발 - 공공데이터 사용(API)

by 개폰지밥 2019. 6. 8.
반응형

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

 

공공데이터포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Dataset)와 Open API로 제공하는 사이트입니다.

www.data.go.kr

우선 공공데이터를 제공해주는 위의 홈페이지로 들어간다.

나는 오픈 API 공공데이터를 사용할 것이기 때문에 오픈 API를 클릭해준다.

예를 들어 임대주택 관련하여 데이터를 얻고 싶어서 검색창에 임대를 검색해보았다. 즉 사용하고 싶은 데이터 관련해서 검색하면 된다.

받고싶은 공공데이터를 클릭한다.

활용 신청을 누르면 로그인을 하라는 페이지가 뜬다. 회원 가입이 안된 사람은 회원 가입부터 한 후 로그인을 한다. 로그인 한 후 다시 활용 신청을 누르고 아래와 같이 체크 해준다.

시스템유형 선택에서는 일반을 선택했는데 나는 결과값을 서버에 저장하거나 DB화 하지 않고 바로 화면에 띄어줄 것이기 때문에 일반을 선택 하였다.

활용 정보로는 안드로이드 앱 개발을 할 것이기 때문에 앱 개발로 체크 하였다. 상세 기능 정보로는 수역 시설정보 부터 항만 시설 정보까지 다 본다고 체크 하고 동의하고 신청을 눌렀다.

신청을 하면 마이페이지 > OPEN API > 개발계정에서 내역을 확인할 수 있다고 하니 그곳으로 가보도록 하겠습니다.

먼저 참고문서인 공공임대주택_단지정보_조회서비스.zip 열도록 합니다. 그 다음 반급 받은 일반 인증키 (UTF-8)를 복사 하고 수역 시설 정보 조회를 실행버튼을 누릅니다.

실행 버튼을 누르면 아래와 같이 뜨게 되는데

실행하면 요청변수가 뜨는데 ServiceKey에 아까 복사한 일반 인증키를 붙여넣습니다. 다른 brtcCode 등은 아까 참고문서인 .zip에 자세히 설명이 되어있습니다. zip 파일을 풀고 word 파일을 열어보면 아래와 같이 요청 메시지에 대한 명세가 나와있습니다. 

 

엑셀 파일을 열어보면 번호에 대한 자세한 설명들이 나와있네요.

입력되어있는 요청변수를 보면 brtcCode는 광역시도 코드로 11이면 서울 특별시를 뜻하고 signguCode는 구로 서울특별시 중구를 뜻합니다. numOfRows와 pageNo 설명에 자세히 나와있네요

이렇게 .zip 파일을 보고 요청변수를 입력 한 후 미리보기를 누르면 {"code":"30","msg":"SERVICE KEY IS NOT REGISTERED ERROR."}와 같은 에러가 뜨는데 신청 한후 인증키가 동기화 되기 까지 1시간이 좀 넘는 시간이 걸린다고 합니당 ^^ 저런 에러가 뜨면 1시간 뒤에 다시 시도해 보시고 그래도 안된다면 이메일을 보내거나 전화를 해보시면 될 것 같습니다.

 

1시간 후에 다시 미리보기를 하면

아까처럼 service key is not registered error 서비스 키가 등록되지 않은 에러가 뜨지 않고 아래와 같이 뜨게 됩니다.

아래와 같이 뜨면 정상적인 데이터로 보면 됩니다.

 

아 그리고 데이터 형식에는 xml과 json이 있는데 xml은 다른 형식으로 변환하는 것이 수월하지만 프로그래밍 언어나 데이터 베이스의 시스템을 입력하기 위한 xml의 맵핑이 매우 어렵고 복잡하다는 것입니다. 이렇게 나오게 된것이 json입니다. 

 

여기까지 하면 공공데이터를 받은 것이고 이것을 이제 안드로이드 스튜디오에 가서 params.put을 이용하여 서버에 리퀘스트 하는 코드를 짜야 비로소 공공데이터를 어플에 연동할 수 있습니다.

현재 공공데이터 어플에 연동하고 있는데 성공하면 자세히 다뤄보도록 하겠습니다~~

 

[관련 게시글]

[Android] 안드로이드 스튜디오 설치 : https://seul96.tistory.com/58
[Android] 바람개비 회전 애니메이션 : https://seul96.tistory.com/62
[Android] 화면터치 시 이미지 따라오기 : https://seul96.tistory.com/310
[Android] 그림 글 배치 : https://seul96.tistory.com/63
[Android] 글의 목록 만들기 : https://seul96.tistory.com/311
[Android] manifests, java, res / 레이아웃 유형 : https://seul96.tistory.com/64
[Android] toast 배경색 변경 방법 + 색상표 : https://seul96.tistory.com/65
[Android] 계산기 구현 : https://seul96.tistory.com/66
[Android] 위치 배열 gravity linear layout relative layout 사용 : https://seul96.tistory.com/67
[Android] 액티비티 전환 intent 예시 + 4대 컴포넌트 : https://seul96.tistory.com/68
[Android] 이벤트 처리와 액티비티간 이동 : https://seul96.tistory.com/70
[Android] 리스트뷰 : https://seul96.tistory.com/79
[Android] 커스텀 리스트뷰 : https://seul96.tistory.com/80
[Android] 안드로이드 공공데이터(API) 사용하는 방법 : https://seul96.tistory.com/85
[Android] Padding/layout_margin, visibility 속성 : https://seul96.tistory.com/312
반응형

댓글