PostGIS란 무엇인가?

OneTwo·2026년 1월 15일

📍 PostGIS란 무엇인가?

PostgreSQL을 공부하다 보면 PostGIS라는 단어를 한 번쯤 보게 된다.
처음에는 “GIS? 공간 데이터?” 같은 말들이 나오는데,
막상 정확히 어떤 역할을 하는지 감이 잘 안 왔다.

그래서 PostGIS가 무엇인지,
어디에 쓰이는지 간단하게 정리해보려고 한다.


PostGIS 한 줄로 정리하면

PostGIS는 PostgreSQL에서 공간 데이터를 다룰 수 있게 해주는 확장 기능이다.

PostgreSQL은 기본적으로 숫자나 문자열 같은 일반적인 데이터는 잘 다룬다.
하지만 좌표, 거리, 위치 같은 공간 정보를 처리하기에는 한계가 있다.

이때 사용하는 것이 PostGIS다.


PostGIS는 왜 필요한가?

예를 들어 이런 상황을 생각해볼 수 있다.

  • 두 지점 사이의 거리 계산
  • 특정 위치에서 반경 3km 안에 있는 데이터 조회
  • 어떤 좌표가 특정 영역 안에 포함되는지 확인

이런 작업을 일반 SQL로 처리하려면 쿼리가 굉장히 복잡해진다.
PostGIS는 이런 공간 연산을 함수 형태로 쉽게 제공해준다.


PostGIS는 지도에서 공간 데이터를 어떻게 다룰까?

지도 서비스에서 가장 기본이 되는 정보는 위치 좌표다.
보통 위도(latitude)와 경도(longitude) 형태로 표현된다.

PostGIS는 이런 좌표를 단순한 숫자가 아니라
공간 객체(Geometry)로 저장하고 처리한다.

예를 들면:

  • 하나의 위치는 Point
  • 도로는 Line
  • 특정 지역 범위는 Polygon

같은 형태로 표현된다.

이렇게 저장된 공간 데이터는
“거리”, “포함 여부”, “겹침 여부” 같은 공간 연산이 가능해진다.


지도에서 자주 사용하는 공간 연산 예시

두 위치 사이의 거리 계산

SELECT ST_Distance(
    ST_Point(127.0, 37.5),
    ST_Point(127.1, 37.6)
);

두 좌표 사이의 거리를 계산할 수 있다.
배달 서비스에서 “가장 가까운 가게 찾기” 같은 기능에 사용된다.


특정 반경 안에 있는 데이터 조회

  • 현재 위치 기준 반경 1km 이내 매장 조회
  • 특정 지역 안에 포함된 데이터 검색

이런 기능들도 PostGIS의 공간 함수로 처리할 수 있다.


PostGIS로 다룰 수 있는 데이터

PostGIS를 사용하면 다음과 같은 공간 데이터를 다룰 수 있다.

  • 위도, 경도 좌표
  • 점(Point), 선(Line), 면(Polygon)
  • 거리, 면적
  • 위치 관계(포함, 교차 등)

그래서 보통 아래와 같은 서비스에서 많이 사용된다.

  • 지도 서비스
  • 배달 앱
  • 위치 기반 추천 서비스

PostGIS는 기본 기능이 아니다

중요한 점은 PostGIS는 PostgreSQL의 기본 기능이 아니라 확장(extension)이라는 것이다.

즉,

  • PostgreSQL 설치만으로는 사용할 수 없고
  • PostGIS를 따로 설치하고 활성화해야 한다

일반적인 CRUD 위주의 서비스라면
굳이 PostGIS를 사용할 필요는 없다.


언제 사용하면 좋을까?

PostGIS는 다음과 같은 경우에 적합하다.

  • 위치 정보가 핵심인 서비스
  • 거리 계산이나 반경 검색이 필요한 경우
  • 지도 기반 기능이 필요한 경우

반대로,
단순한 게시판이나 회원 관리 서비스라면
굳이 사용할 이유는 없다.


정리해보면

PostGIS는 PostgreSQL에서
좌표, 거리, 위치 같은 공간 데이터를 효율적으로 다룰 수 있게 해주는 확장 기능이다.

지도 서비스에서 사용하는
“거리 계산”, “반경 검색”, “영역 포함 여부” 같은 기능을
DB 레벨에서 처리할 수 있다는 점이 가장 큰 특징이다.

profile
매일 성장하는 개발자

0개의 댓글