만약 회원제 사이트를 만든다면 회원가입 페이지를 만들어야하고, 주소 입력하는 양식에서 우편번호 검색을 이용해야 할것이다.

1. 우편번호 자료를 다운로드하고, 2. DB에 우편번호를 저장하기 위한 테이블을 만든 후, 3. 우편번호가 자동으로 테이블에 저장되도록 하는 방법에 대해 알아보자. 더불어 새로운 주소인 4. 도로명 주소에 대한 우편번호를 다운로드하는 방법도 알아보자.

 

 

 

1. 우편번호 다운로드

 

 

 

먼저 우편번호 데이터를 다운로드하기 위해서는 ZipFinder(http://www.zipfinder.co.kr/) 를 방문하여

[우편번호원본파일] 메뉴를 누르고 들어가면 다음과 같은 페이지가 열리는데 개발자의 요구에 맞게

Type0~Type4의 5가지 구조의 우편번호 텍스트 파일이 있다.

어떤 타입을 다운로드했는지에 따라 타입에 맞게 필드 개수와 필드 길이 등이 달라진다.

여기에서는 첫 번째 타입의 텍스트 파일을 다운로드했다.

 

 

zipfinder 우편번호 다운로드 페이지

 

 

 

다운로드한 텍스트 파일을 열어보면 빈 줄이 삽입되어 있다.

나는 이 빈 줄을 제거하기 위해 텍스트 파일을 엑셀로 가져온 다음, 다시 텍스트 파일로 저장하는 방법을 이용했다.

텍스트 파일을 엑셀로 가져오는 방법은 위의 페이지에 나와있는 대로 하면 되고, 저장할 때는 '텍스트(탭으로 분리)' 형식으로 저장하면 된다.

다음은 이런 과정을 거쳐 만든 엑셀 파일과, 텍스트 파일이다. 엑셀 파일은 필요한 사람만 다운받으면 될 듯하다.

 

 zipcode.txt              zipcode.xlsx

 

 

우편번호 텍스트 파일

 

 

 

2. 우편번호 테이블 만들기

 

위의 파일을 가지고 테이블을 만들 경우 쿼리이다.

 

CREATE TABLE ZIPCODE (
ZIPCODE VARCHAR(7),
SIDO VARCHAR(4),
GUGUN VARCHAR(17),
DONG VARCHAR(26),
RI VARCHAR(15),
BLDG VARCHAR(42),
BUNJI VARCHAR(17),
SEQ VARCHAR(5),
PRIMARY KEY (SEQ)
)

 

 

 

3. 우편번호를 테이블에 자동으로 저장하기

 

다음은 우편번호 파일을 테이블에 자동 입력하는 쿼리문이다.

 load data infile ' 경로\\텍스트파일.txt' into table 테이블이름;

 

예를 들어 c 드라이브에 zipcode.txt 파일이 있고, 테이블 이름이 zipcode라면 다음과 같이 쿼리를 작성하여 실행하면 된다.

load data infile 'c:\\zipcode.txt' into table zipcode;

 

쿼리를 실행한 후 테이블을 확인해보면 모든 데이터가 자동으로 입력되어 있는 것을 볼 수 있다.

 

 

 

4. 도로명 주소 다운로드

 

이런 방법으로 나도 작년 초에 회원 가입 양식에서 주소 입력 부분을 해결했었는데, 이제는 도로명 주소도 함께 사용되어서 우편번호 DB 구축이 좀 더 복잡해진 거 같다.

 

다음은 도로명 주소의 우편번호를 다운로드할 수 있는 곳이다.

http://www.epost.go.kr/search/zipcode/newAddressDown.jsp

 

다음 페이지가 열리면 유의사항을 클릭한 후 '도로명주소 변경분 DB(업데이트 일자 : 2013.01.25)' 부분의 압축 파일을 클릭하여 다운로드한다.

 

 

도로명 주소 다운로드 페이지

 

 

 

 

다운로드한 파일의 압축을 풀고 텍스트 파일을 확인해보면 탭이 아닌 '|' 구분자로 구분되어 있다.

 

우편번호|우편일련번호|시도|시군구|읍면|도로명코드|도로명|지하여부|건물번호본번|건물번호부번|다량배달처명|법정동코드|법정동명|지번본번|지번부번|시군구용건물명|건물관리번호|이동사유코드|연계일시

 

의 구조로 되어 있으니 위의 방법과 같이 테이블을 만들고, 데이터를 자동으로 입력하면 새로운 도로명 주소 DB도 쉽게 구축할 수 있을 듯하다.

 

 

도로명 주소 우편번호 텍스트 파일

 

 

 

 

 
 
 
 

 

 

Posted by Y&S