본문 바로가기

분류 전체보기

HTTP 상태코드 200, 301, 302, 400, 401, 403, 404, 500 차이 정리 웹이나 API를 다루다 보면 200, 403, 404, 500 같은 숫자를 자주 만나게 된다.처음에는200 = 정상404 = 페이지 없음500 = 서버 오류 정도만 알고 있었는데, 실제로 API나 서버 문제를 확인하다 보니 상태코드만 봐도 어느 쪽부터 확인해야 하는지 어느 정도 감을 잡을 수 있었다.특히 401과 403, 301과 302처럼 비슷해 보이는 코드들은 막상 만나면 헷갈린다.이번에는 웹이나 API를 확인할 때 자주 보게 되는 HTTP 상태코드 위주로 정리해봤다.HTTP 상태코드는 무엇일까?클라이언트가 서버에 요청을 보내면 서버는 요청을 처리한 뒤 응답을 보낸다.클라이언트 │ │ HTTP Request ▼┌─────────┐│ Server │└─────────┘ │ .. 더보기
PostgreSQL DELETE, TRUNCATE, DROP은 뭐가 다를까? PostgreSQL에서 데이터를 삭제하다 보면 DELETE, TRUNCATE, DROP을 만나게 된다.셋 다 무언가를 지우는 명령어라 처음에는 비슷하게 느껴질 수 있다. DELETE FROM sample;TRUNCATE TABLE sample;DROP TABLE sample; 위 세 명령어를 실행하면 모두 테이블에 있던 데이터가 사라진다.그런데 결과는 완전히 다르다.가장 간단하게 정리하면:DELETE→ 데이터를 지운다.TRUNCATE→ 테이블의 데이터를 한꺼번에 비운다.DROP→ 테이블 자체를 없앤다. 이번에는 각각 어떤 차이가 있는지 직접 비교해봤다.테스트용 테이블 만들기먼저 간단한 테이블을 하나 만들어보자. CREATE TABLE sample_user ( id SERIAL PRIMARY KEY,.. 더보기
curl로 API 테스트하는 방법, 자주 쓰는 옵션만 정리해봤다 API 연동 작업을 하다 보면 브라우저에서는 요청이 안 되는데 서버에서는 되는지 확인해야 하거나, 반대로 서버에서 실제로 어떤 응답을 받고 있는지 확인해야 할 때가 있다. 이럴 때 자주 사용하는 명령어가 curl이다. 처음에는 단순히 URL을 호출하는 명령어 정도로 생각했는데, 사용하다 보니 응답 헤더를 확인하거나 HTTP/HTTPS 통신 상태를 비교하고, 요청·응답 내용을 자세하게 확인할 때도 꽤 유용했다. 특히 API 문제가 생겼을 때는 브라우저에서만 확인하는 것보다 서버에서 직접 curl을 실행해보면 문제가 API 자체인지, 브라우저인지, 서버의 네트워크 환경인지 범위를 좁히는 데 도움이 된다. 이번에는 API 테스트할 때 자주 사용하는 curl 명령어를 정리해봤다.curl이 뭘까?curl은 URL.. 더보기
WFS에서 BBOX와 FILTER는 왜 사용할까? 필요한 데이터만 조회하기 이전에 WMS와 WFS의 차이를 정리하면서 WFS는 지도 이미지를 받아오는 것이 아니라 공간 객체(Feature) 자체를 데이터로 가져오는 방식이라고 정리했다.WFS를 처음 사용할 때는 GetFeature 요청만 보내면 데이터를 가져올 수 있으니 크게 어려울 게 없어 보였다.예를 들어 이런 식이다.SERVICE=WFSVERSION=1.1.0REQUEST=GetFeatureTYPENAME=sample_layer 그런데 데이터가 많은 레이어에서 아무 조건 없이 GetFeature를 호출하면 문제가 생길 수 있다.필요한 건 현재 지도에 보이는 일부 데이터인데 전체 Feature를 전부 받아오고 있을 수도 있기 때문이다.이럴 때 사용할 수 있는 대표적인 방법이 BBOX와 FILTER다.아무 조건 없이 WFS를 .. 더보기
WMS와 WFS는 뭐가 다를까? GIS 처음 할 때 헷갈렸던 차이 정리 GIS나 웹지도를 다루다 보면 WMS, WFS라는 용어를 자주 보게 된다.둘 다 지도 서버에서 공간정보를 가져오는 방식이고 이름도 비슷하다 보니 처음에는 차이가 잘 와닿지 않았다.WMS = Web Map ServiceWFS = Web Feature Service 둘 다 지도 데이터를 제공하는 건 맞는데, 무엇을 받아오는지에서 큰 차이가 있다.간단하게 생각하면,WMS는 서버가 만들어준 지도를 받아서 보여주는 방식WFS는 지도에 들어가는 공간 객체(Feature)를 데이터로 받아오는 방식 이라고 이해하면 편하다.WMS는 지도를 받아온다WMS는 Web Map Service의 약자다.클라이언트에서 지도 서버에 특정 영역의 지도를 요청하면 서버가 해당 영역을 렌더링해서 결과를 반환한다.대표적인 요청이 GetMap.. 더보기
PostgreSQL에서 누가 어떤 SQL을 실행했는지 확인할 수 있을까? 이전에 PostgreSQL에서 현재 접속 중인 사용자를 확인하는 방법을 정리한 적이 있다.pg_stat_activity를 조회하면 어떤 사용자가 어느 IP에서 접속하고 있는지 확인할 수 있었다. SELECT datname, usename, client_addr, application_name, stateFROM pg_stat_activity; 그런데 접속자를 확인하고 나니 또 하나 궁금해졌다.누가 접속했는지는 알겠는데, 그 사용자가 어떤 SQL을 실행했는지도 확인할 수 있을까?결론부터 말하면 현재 실행 중인 SQL은 비교적 쉽게 확인할 수 있다.문제는 이미 실행이 끝난 SQL을 확인하고 싶을 때다.현재 실행 중인 SQL 확인하기pg_stat_activity에는 접속 정보뿐만 아.. 더보기
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.. 더보기