프로젝트

공간 관련 데이터 타입 매핑 (PostgreSQL geography)

dev_kdk 2026. 2. 18. 21:24

 

PostgreSQL geography 타입

 

위의 데이터를 자바 백엔드에 매핑 시켜줘야하는데 어떤 방식으로 하는가

 

postgresql 의 geography 데이터 타입을 매핑 시키기 위해서는 자바의 라이브러리를 쓴다. 

자바 표준 API는 공간데이터를 다룰수있는 클래스가 없어서 반드시 JTS 나 Geolatte 같은 외부 라이브러리를 통해 매핑을 해줘야한다. 

 

geography 데이터는 내부적으로 바이너리(EWKB)형식으로 되어있다. 

PostGIS에서 공간데이터를 저장하고 전송할 때 사용하는 바이너리(이진) 형식이다. 

PostGIS에서 WKB를 확장해서 SRID(공간 참조 시스템 ID, 예 : 4326) 정보를 추가 포함해서 EWKB 로 만든다. 

 

JTS 는 업계표준 범용 Geomety 라이브러리 (2001년 ~ )

Geolatte는 Hibernate Spatial 내부 구현용 (2011년 ~ )

 

일반 조회시 Hibernate가 DB(Binary) -> Geolatte -> JTS 순서로 알아서 변환해서 우리 엔티티에 넣어줌

네이티브 쿼리 사용시 Hibernate의 변환 파이프 라인을 거치지 않기때문에 직접 Geolatte 형변환을 진행해줘야한다 .

네이티브 쿼리를 실행하면 Hibernate는 결과를 DB 드라이버가 준 그대로 반환한다. 내부엔진인 Geolatte 객체로 데이터를 넘겨줌

 

 

위의 변경한 이유는 네이티브 쿼리를 써서 ClassException이 터졌기 때문