DB/PostgreSQL
[ PostgreSQL ] PostGIS 설치하고 사용하기
Soso Dev
2025. 4. 23. 15:35
반응형
1. PostgreSQL에 PostGIS 설치 및 테스트하기
공간 데이터를 다루기 위한 대표적인 확장 모듈인 PostGIS는 PostgreSQL에서 강력한 GIS 기능을 제공해 줍니다. 이 글에서는 RHEL 기반 환경에서 PostgreSQL 13과 함께 PostGIS를 설치하고, 간단한 공간 함수 테스트까지 진행해보겠습니다.
2. PostGIS란?
PostGIS(PostgreSQL + GIS) 는 공간 데이터를 저장하고 질의할 수 있도록 해주는 PostgreSQL의 확장 모듈입니다.
대표적인 기능으로는 다음과 같습니다:
- 점(Point), 선(LineString), 폴리곤(Polygon) 등 공간 타입 지원
- 거리, 교차 여부, 포함 여부 등의 공간 연산
- GeoJSON, WKT 등 다양한 포맷 지원
3. 설치 환경
- OS: RHEL 7.9
- PostgreSQL: 13.x
- PostGIS: 3.x
4. PostGIS 설치 방법
4.1 EPEL 및 PostgreSQL 리포지터리 설정
# EPEL 설치
sudo yum install epel-release -y
# PostgreSQL 13 리포지터리 추가
sudo yum install https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
4.2 PostgreSQL 및 PostGIS 설치
# PostgreSQL과 PostGIS 설치
sudo yum install postgresql13-server postgresql13 postgresql13-contrib postgis31_13 -y
# PostgreSQL 초기화 및 실행
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
5. PostGIS 활성화
5.1 DB 생성 및 접속
# postgres 사용자로 접속
sudo su - postgres
# DB 생성 및 psql 접속
CREATE DATABASE gisdb
psql -d gisdb # 또는 \c gisdb 명령어로 database 변경 가능.
5.2 PostGIS 확장 모듈 활성화
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
-- 설치 확인
\dx
6. 기본 PostGIS 함수 테스트
6.1 포인트 생성 및 출력
SELECT ST_AsText(ST_MakePoint(127.0, 37.5));
결과:
POINT(127 37.5)
6.2 도형 포함 여부 테스트
-- 폴리곤 내에 포인트가 포함되어 있는지 확인
SELECT ST_Contains(
ST_GeomFromText('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'),
ST_GeomFromText('POINT(5 5)')
);
결과:
t
7. 활용 팁
- 공간 인덱스를 생성하면 성능을 크게 개선할 수 있습니다.
- QGIS와 같은 도구와 연동하면 시각화도 가능합니다.
- GeoJSON 형식으로 데이터를 주고받는 경우 ST_AsGeoJSON, ST_GeomFromGeoJSON 등을 활용하세요.
8. 마무리
PostGIS는 공간 정보를 정교하게 다룰 수 있는 강력한 도구입니다. 이번 예제에서는 설치와 간단한 테스트까지만 다뤘지만, 추후에는 복잡한 공간 연산, 시계열 분석, 공간 조인 등의 고급 기능도 소개드릴 예정입니다. 궁금하신 점은 댓글로 남겨주세요!
반응형