우편번호 찾기

저번시간에 회원가입 과정 중 아이디를 넣고, DB에 접속해서 중복되는 아이디인지 확인했다.

그 다음으로 주소를 찾는 방법에 대해 알아보자.

우편번호 DB 생성

우정사업본부 홈페이지에서 우편번호 찾기를 누른 다음, 우편번호 내려받기에 가면 우리나라 지역별 주소 DB를 받을 수 있다.

 

우정사업본부

 

www.koreapost.go.kr

이렇게 도시별로 모든 주소가 텍스트 형태로 적힌 파일을 받을 수 있다.

우리는 용량이 가장 적은 세종특별자치시로 진행할 것이다. 파일을 엑셀 또는 Numbers로 열어보자.

엑셀프로그램으로 열게되면 텍스트를 표로 바꾸는 기준에 대해서 물어본다. Delimiter부분에 | 를 넣고 업데이트를 누르면,

이렇게 보기 좋게 표로 만들어준다. eXERD를 켜서 우편번호 테이블을 생성해보자.



필드명은 우편번호, 시도, 도로명, 건물본번, 건물부번, 건물명, 동, 지번본번, 지번부번 이렇게 구성했다.

Forward Engineering을 통해 DB에 테이블을 생성하자.

엑셀에서 위 칼럼에 해당하는 항목을 제외하고 모두 지운 다음, 맨 앞과 맨 뒤에 빈 칼럼을 하나씩 만든 후, 임의의 텍스트를 똑같이 모든 열에 적용시킨다.

그런 다음 File→Export To→CSV 이렇게 export하고, 파일을 텍스트편집기로 열어보면,

모든 칼럼이 ,로 분리된 상태의 텍스트로 표가 저장된다. 이런 형식이 왜 sql문으로 바꿀때 아주 유리한 형태인지 알아보자.

cmd+F를 눌러 모든 ,문자를 ‘,’로 대체시킨다.

텍스트양이 매우 방대하기 때문에 조금 시간이 걸릴 수 있다.

그 다음 왼쪽에 있는 aaaa’,까지의 텍스트를 골라 INSERT문으로 바꾼다. 칼럼이 9개인 것을 확인하면서,

INSERT INTO zipcode_tbl(zipcode, city, street, bldg1, bldg2, bldgname, dong, num1, num2) VALUES(

제법 sql문의 형태를 갖춘 것 같다. 이제 마무리를 해주자.

저장을 해주면 약 27000개의 sql문이 생성됐다.

현재 파일 이름이 한글로 되어있고, 확장자는 csv이다. DB에 파일을 실행시키기 위해 .sql로 확장자를 변경, 이름도 영어로 바꿔준다. sejong.sql

파일을 docker로 옮기기

이제 이 파일을 DB가 살아있는 컨테이너로 복사해준다.

docker cp /Users/poby/Downloads/sejong.sql oracleDB:/opt/oracle/poby

파일이 잘 옮겨져있나 확인 후에,

@/opt/oracle/poby/sejong.sql

중간중간에 이렇게 값을 입력하라고 나오는데 그냥 엔터만 쳐주면 된다. 그리고 몇몇 값은 누락될 것이다.

DB구성이 완료됐다. 이제 데이터를 읽어오는 일만 남았다.

 

+ Recent posts