본문 바로가기

전체 글

HTTP에서는 끊기는데 HTTPS에서는 정상이다... 같은 API인데 왜 다를까? 기존에 정상적으로 사용하던 지도 API가 갑자기 제대로 호출되지 않는다는 문의가 들어왔다.지도뿐만 아니라 공간정보를 조회하는 WFS API도 정상적으로 동작하지 않는다고 했다.처음에는 API 서버에 장애가 생긴 줄 알았다.그런데 직접 호출해보니 조금 이상했다.아예 접속이 안 되는 것도 아니었고, 서버에서는 200 OK 응답도 내려왔다.데이터도 실제로 내려오기 시작했다.문제는 잘 받아오다가 중간에 갑자기 연결이 끊긴다는 것이었다.요청 ↓HTTP 200 OK ↓데이터 수신 시작 ↓데이터 일부 수신 ↓연결 종료 처음에는 데이터가 너무 커서 그런가 싶었다.WFS는 이전에도 대용량 데이터를 한 번에 조회하면서 브라우저 메모리를 엄청나게 사용했던 경험이 있었기 때문이다.그런데 이번에는 조금 다른 문제였다.브라우저 .. 더보기
QGIS 다운로드부터 설치, 실행까지 처음부터 해보기 GIS 업무를 하다 보면 SHP, GeoJSON, GPKG 같은 공간정보 파일을 확인해야 할 일이 생긴다.이런 파일을 가장 간단하게 열어볼 수 있는 프로그램 중 하나가 QGIS다.QGIS는 무료로 사용할 수 있는 오픈소스 GIS 프로그램인데, 처음 설치하려고 홈페이지에 들어가면 버전도 여러 개고 LTR, OSGeo4W, Standalone 같은 용어가 나와서 뭘 받아야 하는지 조금 헷갈린다.이번에는 Windows에서 QGIS를 처음 설치하고 실행하는 과정까지만 간단하게 정리해보려고 한다.1. QGIS 다운로드QGIS는 공식 홈페이지에서 받을 수 있다. QGIS 공식 다운로드 페이지 Download · QGIS qgis.org 현재 Windows 다운로드 화면을 보면 크게 Latest Version과 L.. 더보기
티스토리 GA4 연결했는데 방문자가 계속 0명으로 나온 이유 티스토리 블로그를 만들고 Google Analytics도 연결해뒀다.티스토리 플러그인에서 Google Analytics를 선택하고 GA4 측정 ID까지 입력했으니 당연히 잘 되고 있는 줄 알았다.그런데 며칠이 지나도 GA4에 들어가 보면 계속 이 상태였다.활성 사용자 0신규 사용자 0이벤트 0평균 참여 시간 0초 처음에는 그냥 방문자가 없어서 그런가 싶었다.아직 만든 지 얼마 안 된 블로그이기도 하고, Google 검색 색인도 제대로 잡히지 않은 상태라 충분히 그럴 수 있다고 생각했다.그런데 티스토리 통계를 확인해보니 다음 검색을 통한 유입도 조금씩 발생하고 있었다.그렇다면 적어도 GA4에 뭔가는 찍혀야 하는데 계속 0이었다.그래서 설정을 하나씩 확인해봤다.측정 ID부터 다시 확인했다가장 먼저 확인한 건.. 더보기
PostgreSQL에서 누가 접속했는지 확인할 수 있을까? PostgreSQL을 사용하다가 문득 궁금한 게 생겼다.지금 DB에 누가 접속해 있는지는 알 수 있을 것 같은데,예전에 누가 접속했는지도 확인할 수 있을까? DBeaver나 pgAdmin 같은 툴로 DB에 접속하면 당연히 PostgreSQL 서버와 연결이 만들어진다.그렇다면 서버 어딘가에는 접속한 계정이나 IP 같은 정보가 남아 있지 않을까 싶어서 확인해봤다.결론부터 말하면 현재 접속 정보와 과거 접속 이력은 따로 생각해야 했다.현재 누가 접속해 있는지는 확인할 수 있다PostgreSQL에는 pg_stat_activity라는 시스템 뷰가 있다.현재 DB에 연결되어 있는 세션을 확인할 때 사용할 수 있다. SELECT datname, usename, client_addr, applic.. 더보기
지도 줌을 했는데 축척 막대가 또 500m다... 이게 맞는 걸까? 지도 화면을 확인하다가 조금 이상한 부분을 발견했다.지도를 한 단계 확대했는데 화면에 표시되는 축척 막대의 값이 이전 레벨과 똑같이 500m로 표시되고 있었다.처음에는 당연히 잘못된 줄 알았다.Zoom Level 10 → 500mZoom Level 11 → 500m 줌 레벨이 바뀌었으면 지도 축척도 달라졌을 텐데, 왜 축척 막대의 숫자는 그대로일까?혹시 지도 설정에 문제가 있는 건 아닌지 확인해보기 시작했다.처음에는 줌 레벨마다 값이 달라야 한다고 생각했다내가 처음 생각했던 건 단순했다.지도를 확대하면 같은 화면 크기가 나타내는 실제 거리가 줄어든다.그러니까 축척 막대도 자연스럽게1km → 500m → 200m → 100m 같이 줌 레벨마다 하나씩 바뀌어야 한다고 생각했다.그런데 찾아보니 축척 막대는 그.. 더보기
HTTPS로 바꿨는데 HTTP도 접속돼야 한다... 둘 다 사용할 수 있을까? 최근 기존 서비스의 HTTP 요청을 HTTPS로 전환하는 작업을 하고 있었다.외부 API도 HTTPS로 바꾸고 인증서나 TLS 설정도 확인하다 보니, 이번에는 서비스 자체의 HTTP/HTTPS 설정도 보게 됐다.그런데 설정을 보다 보니 한 가지 궁금한 게 생겼다. HTTPS로 전환한다고 해서 HTTP를 무조건 막아야 하나?HTTP와 HTTPS를 둘 다 사용할 수도 있지 않을까? 기존 서비스에 영향을 주지 않으면서 HTTPS도 사용할 수 있어야 하는 경우라면 이 부분을 먼저 확인해야 할 것 같았다.HTTP와 HTTPS를 둘 다 열어두는 건 가능하다처음에는 HTTPS를 적용하면 기존 HTTP 접속을 HTTPS로 무조건 넘겨야 하는 줄 알았다.그런데 HTTP와 HTTPS를 동시에 서비스하는 것 자체는 가능.. 더보기
좌표계만 바꾸면 되는 줄 알았다... ST_SetSRID와 ST_Transform은 완전히 달랐다 PostgreSQL에서 공간 데이터를 다루다 보면 이런 쿼리를 자주 보게 된다. ST_SetSRID(geom, 5179) 그리고 이런 것도 있다. ST_Transform(geom, 5179) 둘 다 뒤에 EPSG 코드가 들어가다 보니 처음 봤을 때는 비슷한 기능이라고 생각했다.특히 좌표계를 바꿔야 하는 상황에서 이름만 보면 SetSRID도 좌표계를 설정하는 함수니까 이걸 사용하면 되는 것처럼 보였다.그런데 둘은 하는 일이 완전히 달랐다.ST_SetSRID는 좌표값을 바꾸지 않는다먼저 ST_SetSRID부터 보면 이름 그대로 geometry에 SRID를 설정하는 함수다.예를 들어 좌표가 이렇게 있다고 해보자.126.97, 37.56 여기에 ST_SetSRID(geom, 4326) 을 실행한다고 해서 좌표가.. 더보기
Java 7에서 HTTPS 호출이 안 된다... TLS 1.2만의 문제가 아니었다 기존에 외부 통계 API를 호출해서 데이터를 받아오는 기능이 있었다.오랫동안 별문제 없이 사용하던 기능이었는데, 어느 날부터 개발 서버에서 API 호출이 정상적으로 되지 않았다.확인해보니 기존에는 HTTP로도 요청할 수 있었지만 이제 HTTPS를 사용해야 하는 상황이었다.처음에는 단순하게 생각했다.URL이 http에서 https로 바뀌어서 그런가? 그런데 URL만 HTTPS로 변경한다고 끝나는 문제가 아니었다.개발 서버는 Java 7을 사용하고 있었다문제가 발생한 개발 서버의 Java 버전을 확인해보니 Java 1.7.0_80이었다.여기서 가장 먼저 의심했던 게 TLS였다.HTTPS 통신을 하려면 클라이언트와 서버가 서로 사용할 수 있는 TLS 버전이 맞아야 하는데, Java 7은 꽤 오래된 버전이다.그.. 더보기