본문 바로가기
웹 개발

도로명 주소 DB 자체 구축

by 똑똑한 영장류 2015. 7. 15.

도로명 주소 DB 자체 구축


또 하나의 뻘짓이 될런지 모르겠지만, 자체 구축을 시도해 본다.



웹 사용자에게 주소입력을 받을 때, 적적한 입력 방법을 제공해서, 정부가 정한 주소표시 방법에 맞는 주소를 획득, 저장하기 위해 필요한 작업이다.


http://www.juso.go.kr/openIndexPage.do

위 링크로 가보면, 주소 검색을 할때, 도로명으로 검색하던지, 지번으로 검색하던지, 건물명 등으로 검색을 할 수 있도록 제공을 하고 있다.

이런 인터페이스를 사용자에게 제공하고자 하는거다.



행정자치부가 제공하고 있는 도로명주소 안내 시스템 사이트에서 도로명 주소 DB를 제공하고 있다.


http://www.juso.go.kr/support/AddressBuild.do


사서함 DB를 전체주소(최종안)형식으로 제공하는 '사서함 DB' 다운로드 버튼도 보이고, 전체 주소(최종안)을 월별로 나누어서 다운로드 할 수 있도록 제공하고 있네.


01 전체주소(최종안)

02 도로명코드

03 매칭데이터(기존안,개선안)

04 도로명주소 일변동자료


크게 4개로 구분되어있네.


01은 전체 데이터가 다 들어있는거 같고,

02는 도로명코드로 주소를 검색하기위한 방법설명과 데이터인거 같고,

03은 매칭데이터, 즉 과거 지번주소와 도로명주소의 매칭데이터인거 같고, 기존안은 8월1일에 폐지된다고 하는데...그때부터 데이터를 제공안한다는 듯

04는 하루단위로 변동된 도로명주소 자료인듯하다. 01번 월단위 전체 데이터로 구축 후에 변동추가된 내용은 여기서 다운받아 적용을 해줘야하는듯하네.


우선은 전체데이터로 구축하면 될거 같아...


01 전체주소(최종안) 오른쪽에 '구축가이드 다운로드'를 클릭해서 [가이드]주소구축(전체주소)활용방법.pdf 파일을 다운받아 구축 방법에 대한 설명을 읽어본다.


'2015년 6월분' 이라고 적힌 부분 클릭해서 자료 다운로드한다.


201506RDNMADR.zip 155MB 크기의 파일이네.


압축풀어보니 아래와 같네.



각 시도별 구분되어진 건물정보, 관련지번이 있고, 전체주소 변동분, 자료건수 안내, 레이아웃 pdf 파일이 있네. 하~~ 머야?..


관련지번 파일을 열어서 보니...파일크기가 작은 세종시꺼..

3611011000|세종특별자치시||어진동||0|111|30|361102000002|0|422|0|18600|

3611011400|세종특별자치시||도담동||0|173|4|361102000002|0|511|0|19506|

3611011400|세종특별자치시||도담동||0|172|2|361102000002|0|511|0|19507|


건물정보 파일은

3611010100|세종특별자치시||반곡동||0|394|0|361102000002|한누리대로|0|1843|10|||3611010100103940000000001|03|3611051000|한솔동|339007|011||||||0|30145|0||

3611010100|세종특별자치시||반곡동||0|394|0|361102000002|한누리대로|0|1843|10|||3611010100103940000000002|03|3611051000|한솔동|339007|011||||||0|30145|0||

3611010100|세종특별자치시||반곡동||0|771|110|361102000002|한누리대로|0|1924|0|||3611010100107710110000001|03|3611051000|한솔동|339007|011|||||한국조세재정연구원|0|30147|0||



| 로 구분되어진 포맷을 가지고 있네.

각 필드가 무슨 의미인지....

처음에 다운받은 구축방법 [가이드]주소구축(전체주소)활용방법.pdf 파일의 마지막 부분, 붙임1에 이에 대한 설명이 있네.


읽어보고 DB에 넣거나 검색 루틴 작성할 때, 참고하면 되겠다.




전체주소(최종안) 데이터로 구축을 해보자.

[가이드]주소구축(전체주소)활용방법.pdf 파일의 마지막 쯤 붙임에 있는 포맷을 참고해서 DB에 테이블 만들고 전부 INSERT 해야지.



붙임1[1/3]은 건물정보_...txt 파일의 포맷에 대한 설명이고,

붙임1[2/3]는 관련지번_...txt 파일의 포맷에 대한 설명이다.

붙임1[3/3]은 도로명코드에 대한 설명인데, 이건 02 도로명코드 부분에서 다운받을 수 있는 파일에 대한 설명이다. 이 파일도 2015년 6월분으로 다운을 받아야겠다.


건물정보, 관련지번, 도로명 코드 모두 DB에 일단 넣고 보자.


01 전체주소(최종안) 2015년6월분을 다운받아서 압축을 해제하면 나오는 파일을 DB에 넣는다. DB 테이블은 붙임1[1/3]을 참고해서 만든다.

각 지역별로 따로 테이블을 만드는게 좋을거 같다. 건물정보, 관련지번정보도 테이블로 구분하고...

02 도로명코드 2015년6월분 다운받아서 나오는 '도로명코드_전체분.txt'도 DB에 넣는다. (이건 파일 열어보니 영어로 된 주소가 보여서 나중에 이용하려고 미리 넣어두는거다. 전체주소 구축 가이드에는 사용되어지지 않는다)


자...6월마지막날 기준 전체 데이터를 모두 DB에 넣는거다.



우분투 PC에 넣는데 엄청난 시간이 걸렸다. 세종시꺼만 넣는데도 그렇게나 걸리다니...

(속도 향상 방법을 찾아서 적용했더니 겁나 빨라졌다. http://zzaps.tistory.com/277 )




19.8기가~~~

DB에 잘 들어갔는지 count()해서 전체주소 자료 건수와 비교를 해봐야된다.



검색방법


가이드에서 권장하는 검색 방법은....


1. 도로명 검색

시도, 시군구, 도로명을 입력하여 건물 번호 검색

건물번호와 건물명은 선택적 입력하여 검색 가능

주소 검색 후 상세주소 입력


2. 지번 검색

시도, 시군구, 읍면동을 입력하여 지번을 검색

지번과 건물명은 선택적 입력하여 검색 가능

주소 검색 후 상세주소 입력



시도, 시군구 입력은 같고, 그 다음, 도로명을 입력해서 건물번호를 검색하느냐? 읍면동을 입력해서 지번을 검색하느냐??

검색된 결과에 상세 주소를 사용자가 입력해서 전체 도로명 주소가 만들어지는거다.


주소검색, 입력 페이지를 만들어야겠다.


DB에서 어떻게 끄집어내야하나....






















'웹 개발' 카테고리의 다른 글

favicon에 대해서  (0) 2016.10.18
mysql INSERT 속도 향상  (0) 2015.07.16
HTML 에서 특수문자 표현하는 방법  (0) 2014.10.20
[node.js] ubuntu 에 mongoDB 설치  (0) 2014.08.18
mediaWIKI 설치  (0) 2013.04.03

댓글