공간정보 데이터를 다루다보면 가끔 한국 좌표가 다른 이상한 곳에 있거나 지도에 표시가 안 되는 좌표도 있다. 그건 바로 좌표계가 맞지 않아서 그러한 현상이발생하는 것이다. (GIS 일을 해본 사람은 좌표계라는 것이 익숙할 것이다.) 좌표계라는 것은 간단하게 이야기하면 평면이 아닌 입체 구면인 지구를 어떤 식으로 표현하는냐 그 방법이다. 보통 Google Maps API나 등 지도 라이브러리들에서는 WGS84(4326)을 많이 쓰지만 가끔 공공데이터를 다운 받아서 사용하다보면 Korean 1985(2097)을 사용하기도 한다. 이럴 때 지도 라이브러리에서 사용하기 위해서는 좌표계를 변환해야 한다. PostGIS의 ST_Transform 함수 postgreSql에서는 PostGIS라는 함수를 제공하고 사용할..
http://postgis.net/docs/manual-2.0/ PostGIS 2.0 Manual Abstract PostGIS is an extension to the PostgreSQL object-relational database system which allows GIS (Geographic Information Systems) objects to be stored in the database. PostGIS includes support for GiST-based R-Tree spatial indexes, and functions for a postgis.net PostgreSql DBMS에서는 geometry 컬럼 타입을 제공하며 별도 공간 데이터를 가공하고 다룰 수 있는 PostGIS 함수..
이번에 복잡한 쿼리를 많이 사용해서 mybatis로 개발을 했다. 쿼리를 이것저것 작성을 하다보니 like 문을 or로 묶어서 사용하게 됐는데, like 문 여러 개를 or로 묶다 보니 이걸 묶어서 한꺼번에 쉽게 표현할 수 있는 방법이 없을까 찾아보다가 Similar to라는 것을 알게 되었다. 참고로 이는 다른 DBMS에서 regex 조건을 사용하는 것과 같은 효과를 낸다. 예를 들어 like 문으로 아래와 같이 '가', '나', '다'로 시작하는 문자를 찾는다고 하자. 그럴 경우 like문으로 쿼리를 작성하면 아래와 같다. SELECT * FROM table WHERE name like '가%' or name like '나%' or name like '다%'; 만일 여기에 다른 조건이 붙거나 '가',..
GIS 회사에 다니다보니 기본 DB는 PostgreSql을 많이 사용한다. (PostGis 함수 사용과 geometry 컬럼 타입 사용을 위해서) 그러다보니 PostgreSql의 이런저런 설정들도 하게 되는데 서버에 설치되어 있는 PostgreSql에 모든 외부 접속 가능하게 설정해놨더니 이상한 프로세스가 생기고 CPU와 메모리를 엄청 차지하게 되었다. 다행이 해당 프로세스들은 동기가 다 죽여버렸지만 이와 같은 일이 발생되지 않도록 하기 위해서는 PostgreSql DB 보안을 위해서 모든 외부 접속을 허용하지 않고 필요한 특정 IP들만 허용하도록 IP White List를 설정하기로 했다. PostgreSql 외부 IP White List를 설정하는 방법은 매우 간단하다. pg_hba.conf 파일 수..
아마 이런 일은 드물겠지만 연구과제 프로젝트 개발 중 연구과제를 같이 진행하는 타 회사의 PostgreSql DB를 연결해서 정보를 조회해야하는 일이 생겼다. 즉, 그림을 그리면 아래와 같아졌다. 좀 그림은 이상하지만 간단하게 설명하면 타사의 DB의 데이터를 가져와서 사용해야한다는 점!! 타사 DB의 데이터는 계속 업데이트 되므로 데이터만 받아서 따로 우리 회사 내 서버 DB에 데이터를 넣을 수도 없었다. 그래서 이런 저런 방법을 찾아보다가 PostgreSql의 DBLink라는 기능을 사용하기로 했다. 1. dblink 기능 설치 PostgreSql이 설치되어 있다면 dblink를 사용할 수 있지만 사전 준비가 필요하다. 마치 PostgreSql에서 geometry 컬럼 타입을 사용하기 위해 사전 준비가..
스프링 부트의 캐싱 기능을 사용하다보니 분산 캐싱 기능도 사용해보고 싶어졌다. 분산 캐싱에 사용할 캐시 데이터 저장 공간은 여러 가지를 사용하는데, 그 중 Redis라는 것을 사용해보려고 한다. Redis란? Redis에 대해 간단하게 설명하면 Redis는 key-value와 같이 Map과 데이터를 저장하고 관리한다. 즉 캐시 데이터와 같이 key 값이 있는 데이터를 저장하기 좋은 것이다. 또한 redis 자체에서 저장된 데이터를 검색 및 제거할 수 있는 등 데이터 관리도 redis를 통해 할 수 있다. https://redis.io/download Redis *Download Stable releases liberally follow the usual major.minor.patch semantic v..
지금까지 DB라곤 Oracle, PostgreSql, SqlLite를 사용해봤다. 그러던 중 이번에 지인들과 함께 하는 과제에서 H2라는 DB를 처음 사용해보게 되었다. 난생 처음 사용해보는 H2 DB는 도대체 무엇일까? H2 DB란? 여기저기 알아본 결과 자바로 작성된 RDBMS이다. 자바로 작성되어 있어 자바가 꼭 로컬에 설치되어 있어야하며, H2는 로컬에서만 구동할 수도 있고 따로 서버 버전으로 구동할 수도 있다. 그리고 DB Driver도 H2 DB Driver도 사용하지만 Oracle, My Sql, PostgreSql 등과 호환도 가능하다. 그리고 무엇보다 설치도 쉽고 구동시키기도 가벼워서 로컬에서 개발할 때 개발용 DB로 사용하기도 좋다. H2 설치하기 https://www.h2databas..
- Total
- Today
- Yesterday
- Spring
- postgres
- 데이터베이스
- 자바
- JPA
- 이클립스
- Caching
- 어노테이션
- Java
- DB
- cache
- annotation
- Intellij
- HttpClient
- 공간데이터
- 캐시
- 캐싱
- ssh
- rabbitmq
- MAC
- mockito
- DATABASE
- springboot
- 스프링부트
- k8s
- 역직렬화
- PostgreSQL
- 메시지큐
- enum
- eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |