DB 적재 주소데이터 다운로드
테이블을 생성하기 전에 사용될 주소 데이터를 다운로드 받습니다.
주소기반산업지원서비스에서 제공하는 건물DB, 위치정보요약DB의 전체 월 데이터입니다.

건물정보 테이블
테이블 생성 시 컬럼 데이터 타입은 문자열 길이가 1인 경우에 CHAR(1), 2이상인 경우는 VARCHAR로 정의하였습니다. 또한, 생성일시와 같은 시간은 UTC를 저장하는 TIMESTAMPTZ를 정의하였습니다.
----------------------------------------------------------------
-- 건물정보테이블
----------------------------------------------------------------
-- DROP TABLE juso.juso_master;
CREATE TABLE juso.juso_master (
-- 주소 체계 정보
legal_emd_code VARCHAR(10), -- 1. 법정동코드
sido_name VARCHAR(40), -- 2. 시도명
sigungu_name VARCHAR(40), -- 3. 시군구명
legal_emd_name VARCHAR(40), -- 4. 법정읍면동명
legal_ri_name VARCHAR(40), -- 5. 법정리명
is_mountain CHAR(1), -- 6. 산여부 (0:대지, 1:산)
jibun_main_no INTEGER, -- 7. 지번본번(번지)
jibun_sub_no INTEGER, -- 8. 지번부번(호)
road_name_code VARCHAR(12), -- 9. 도로명코드 (시군구5+도로명7)
road_name VARCHAR(80), -- 10. 도로명
is_basement CHAR(1), -- 11. 지하여부 (0:지상, 1:지하 등)
building_main_no INTEGER, -- 12. 건물본번
building_sub_no INTEGER, -- 13. 건물부번
building_name_bld VARCHAR(40), -- 14. 건축물대장 건물명
building_name_detail VARCHAR(100), -- 15. 상세건물명
-- PK: 건물관리번호
manage_no VARCHAR(25), -- 16. 건물관리번호 (PK)
-- 행정/우편 정보
emd_serial_no VARCHAR(2), -- 17. 읍면동일련번호
admin_emd_code VARCHAR(10), -- 18. 행정동코드
admin_emd_name VARCHAR(40), -- 19. 행정동명
zip_code VARCHAR(5), -- 20. 우편번호
zip_serial_no CHAR(3), -- 21. 우편일련번호
bulk_delivery_name VARCHAR(40), -- 22. 다량배달처명
-- 변동 정보
move_reason_code VARCHAR(2), -- 23. 이동사유코드
announcement_date VARCHAR(8), -- 24. 고시일자
prev_road_address VARCHAR(25), -- 25. 변동전도로명주소
sigungu_building_name VARCHAR(40), -- 26. 시군구용 건물명
is_apartment CHAR(1), -- 27. 공동주택여부
basic_area_no VARCHAR(5), -- 28. 기초구역번호
is_detail_address CHAR(1), -- 29. 상세주소여부 (0:미부여, 1:부여)
remarks1 VARCHAR(15), -- 30. 비고1
remarks2 VARCHAR(15), -- 31. 비고2
-- 위경도 정보
latitude DOUBLE PRECISION,
longitude DOUBLE PRECISION,
-- 위경도 변환용
geom_wgs84 GEOMETRY(Point, 4326),
-- 시스템 관리 필드
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (manage_no)
);
-- 검색 성능 최적화를 위한 인덱스 (도로명주소 검색용)
CREATE INDEX idx_juso_master_road_name_building_main_no_building_sub_no
ON juso.juso_master (road_name, building_main_no, building_sub_no);
-- 한글 검색 확장설치
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX idx_juso_master_geom_wgs84_gist
ON juso.juso_master USING GIST (geom_wgs84);
-- 인덱스 갱신 및 통계
ANALYZE juso.juso_master;
관련지번 테이블
----------------------------------------------------------------
-- 관련지번 테이블
----------------------------------------------------------------
-- DROP TABLE juso.juso_related_jibun;
CREATE TABLE juso.juso_related_jibun (
-- 지번 정보
legal_emd_code VARCHAR(10), -- 1. 법정동코드
sido_name VARCHAR(40), -- 2. 시도명
sigungu_name VARCHAR(40), -- 3. 시군구명
legal_emd_name VARCHAR(40), -- 4. 법정읍면동명
legal_ri_name VARCHAR(40), -- 5. 법정리명
is_mountain CHAR(1), -- 6. 산여부 (0:대지, 1:산)
jibun_main_no INTEGER, -- 7. 지번본번(번지)
jibun_sub_no INTEGER, -- 8. 지번부번(호)
-- PK 구성 (이미지상 PK1~PK5 복합키)
road_name_code VARCHAR(12), -- 9. 도로명코드 (PK1)
is_basement CHAR(1), -- 10. 지하여부 (PK4)
building_main_no INTEGER, -- 11. 건물본번 (PK2)
building_sub_no INTEGER, -- 12. 건물부번 (PK3)
jibun_serial_no INTEGER, -- 13. 지번일련번호 (PK5)
-- 변동 정보
move_reason_code VARCHAR(2), -- 14. 이동사유코드
-- 시스템 관리 필드
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
-- 복합 기본키 설정
PRIMARY KEY (road_name_code, building_main_no, building_sub_no, is_basement, jibun_serial_no)
);
-- 인덱스 갱신 및 통계
ANALYZE juso.juso_related_jibun;
도로명 코드
----------------------------------------------------------------
-- 도로명 코드
----------------------------------------------------------------
-- DROP TABLE juso.road_name_code;
CREATE TABLE juso.road_name_code (
-- PK 구성 (이미지상 PK1, PK2)
sigungu_code VARCHAR(5), -- 1. 시군구코드 (PK1)
road_name_no VARCHAR(7), -- 2. 도로명번호 (PK1)
road_name VARCHAR(80), -- 3. 도로명
road_name_en VARCHAR(80), -- 4. 영문도로명
emd_serial_no VARCHAR(2), -- 5. 읍면동일련번호 (PK2)
-- 도로명 정보
sido_name VARCHAR(40), -- 6. 시도명
sigungu_name VARCHAR(40), -- 7. 시군구명
emd_type CHAR(1), -- 8. 읍면동구분 (0:읍면, 1:동, 2:미부여)
emd_code CHAR(3), -- 9. 읍면동코드
emd_name VARCHAR(40), -- 10. 읍면동명
-- 상위 도로명 정보
upper_road_name_no VARCHAR(7), -- 11. 상위도로명번호
upper_road_name VARCHAR(80), -- 12. 상위도로명
-- 상태 및 이력 정보
is_used CHAR(1), -- 13. 사용여부 (0:사용, 1:미사용)
history_reason_code CHAR(1), -- 14. 변경이력사유 (0~4, 9)
history_info VARCHAR(14), -- 15. 변경이력정보
-- 영문 명칭
sido_name_en VARCHAR(40), -- 16. 영문시도명
sigungu_name_en VARCHAR(40), -- 17. 영문시군구명
emd_name_en VARCHAR(40), -- 18. 영문읍면동명
-- 일자 정보
announcement_date VARCHAR(8), -- 19. 고시일자 (YYYYMMDD)
expiration_date VARCHAR(8), -- 20. 말소일자 (YYYYMMDD)
-- 시스템 관리 필드
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
-- 복합 기본키 설정
-- 이미지 비고란에 따라 시군구코드(5)+도로명번호(7)가 실제 도로명코드(12자리) 역할을 함
PRIMARY KEY (sigungu_code, road_name_no, emd_serial_no)
);
-- 검색 성능 향상을 위한 인덱스
-- 도로명 이름으로 검색 시 필요
CREATE INDEX idx_road_name_code_road_name ON juso.road_name_code (road_name);
-- 인덱스 갱신 및 통계
ANALYZE juso.road_name_code;
위치정보요약 테이블
----------------------------------------------------------------
-- 위치정보요약 테이블
----------------------------------------------------------------
-- DROP TABLE juso.juso_location_summary;
CREATE TABLE juso.juso_location_summary (
-- 주소 및 건물 정보
sigungu_code VARCHAR(5), -- 1. 시군구코드
ent_serial_no VARCHAR(10), -- 2. 출입구일련번호
legal_emd_code VARCHAR(10), -- 3. 법정동코드 (PK5: 시군구5+읍면동3+00)
sido_name VARCHAR(40), -- 4. 시도명
sigungu_name VARCHAR(40), -- 5. 시군구명
emd_name VARCHAR(40), -- 6. 읍면동명
road_name_code VARCHAR(12), -- 7. 도로명코드 (PK1: 시군구5+도로명7)
road_name VARCHAR(80), -- 8. 도로명
is_basement CHAR(1), -- 9. 지하여부 (PK4)
building_main_no INTEGER, -- 10. 건물본번 (PK2)
building_sub_no INTEGER, -- 11. 건물부번 (PK3)
building_name VARCHAR(40), -- 12. 건물명
zip_code VARCHAR(5), -- 13. 우편번호
building_usage_type VARCHAR(100), -- 14. 건물용도분류 (복수 존재 시 콤마 구분)
is_building_group CHAR(1), -- 15. 건물군여부 (0:단독, 1:건물군)
admin_emd_name VARCHAR(40), -- 16. 관할행정동명 (참고용)
-- 좌표 정보 (GRS80 UTM-K)
ent_x NUMERIC(15, 6), -- 17. X좌표
ent_y NUMERIC(15, 6), -- 18. Y좌표
-- 변동 정보
move_reason_code VARCHAR(2), -- 19. 이동사유코드 (31, 34, 63)
-- 위경도 변환용
geom_wgs84 GEOMETRY(Point, 4326),
-- 시스템 관리 필드
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
-- 복합 기본키 설정
PRIMARY KEY (road_name_code, building_main_no, building_sub_no, is_basement, legal_emd_code)
);
-- 좌표 기반 검색(반경 검색)을 위한 인덱스
CREATE INDEX idx_juso_location_summary_ent_x_ent_y ON juso.juso_location_summary (ent_x, ent_y);
-- 인덱스 갱신 및 통계
ANALYZE juso.juso_location_summary;
PostGIS 확장기능 설치
바로 WGS84로 저장해도 되지만, 원본 좌표계(5179)로 Geometry를 만든 뒤 변환합니다.
-- 1. PostGIS 확장 기능 활성화 (최초 1회)
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
-- 2. 테이블에 공간 컬럼 추가 (존재하지 않는 경우)
-- ALTER TABLE juso.juso_location_summary
-- ADD COLUMN geom_wgs84 GEOMETRY(Point, 4326); -- 위경도 변환용
-- geom_wgs84 컬럼(GEOMETRY 타입)에 생성
CREATE INDEX idx_juso_location_summary_geom_wgs84_gist
ON juso.juso_location_summary
USING GIST (geom_wgs84);
-- 3. 인덱스 갱신 및 통계
ANALYZE juso.juso_location_summary;'운영체제(OS) > Docker' 카테고리의 다른 글
| postgresql18.3 로컬 주소DB 구축 (5) - 도로명 주소 테이블 적재 (0) | 2026.04.02 |
|---|---|
| postgresql18.3 로컬 주소DB 구축 (4) - PostGIS 확장기능 설치 (0) | 2026.03.31 |
| postgresql18.3 로컬 주소DB 구축 (2) - 계정 생성 (0) | 2026.03.27 |
| postgresql18.3 로컬 주소DB 구축 (1) - DB 생성 (0) | 2026.03.27 |
| Postgres 18.3 user 생성 (기본 postgres ID 유지) (0) | 2026.03.20 |
댓글