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는 공간 정보를 정교하게 다룰 수 있는 강력한 도구입니다. 이번 예제에서는 설치와 간단한 테스트까지만 다뤘지만, 추후에는 복잡한 공간 연산, 시계열 분석, 공간 조인 등의 고급 기능도 소개드릴 예정입니다. 궁금하신 점은 댓글로 남겨주세요!

 

반응형