본문으로 건너뛰기
wooncloud

← 모든 태그

#sql

8개의 글.

SQL 조각에 컬럼 이름만 넘기면 상관 서브쿼리가 자기 자신과 비교한다
SQL 조각에 컬럼 이름만 넘기면 상관 서브쿼리가 자기 자신과 비교한다
상관 서브쿼리에 한정자 없는 컬럼 이름을 넘기면 가장 안쪽 테이블의 컬럼으로 해석되어 조건이 항상 참이 됩니다. 문자열 조각으로 SQL 을 조립할 때 겪은 함정과 방어 방법입니다.
2026-10-24 · 5 min read
#postgresql#sql#subquery#code-review
삭제 필터를 걸었는데 아무것도 안 걸러지고 있었다
삭제 필터를 걸었는데 아무것도 안 걸러지고 있었다
논리 삭제 처리를 위해 작성한 쿼리 조건이 실제 데이터와 맞지 않아 수년간 무용지물이었던 경험을 통해, 코드 리뷰만으로는 알 수 없는 데이터의 실체를 확인하는 과정과 죽은 로직을 방치하지 않기 위한 현실적인 대응 방안을 공유합니다
2026-09-10 · 7 min read
#sql#레거시#데이터품질
링크 테이블을 조인해 SUM 하면 파일 하나를 여러 번 센다
링크 테이블을 조인해 SUM 하면 파일 하나를 여러 번 센다
링크 테이블을 조인해 SUM하면 같은 파일이 여러 번 더해져, 중복 링크는 전체의 2%뿐인데도 400GB 넘게 과다 계상됩니다. 물리 파일로 되돌려 더해야 합니다.
2026-09-10 · 7 min read
#postgresql#sql#집계
거짓 성공을 만드는 방어 코드 — 동적 UPDATE에서 컬럼을 조용히 건너뛸 때
거짓 성공을 만드는 방어 코드 — 동적 UPDATE에서 컬럼을 조용히 건너뛸 때
동적 UPDATE문에서 특정 컬럼을 조용히 제외하는 방어 코드는 실패를 숨겨 데이터 무결성을 해칠 수 있습니다. 예외를 삼키는 대신 입구에서 검증하거나 실패를 명확히 응답하여 시스템의 정직함을 유지하는 설계 방법을 제안합니다
2026-08-26 · 9 min read
#backend#sql#error-handling#api-design
PostgreSQL 42P18 — 조건부 SQL 빌더에서 파라미터를 미리 넣으면 안 되는 이유
PostgreSQL 42P18 — 조건부 SQL 빌더에서 파라미터를 미리 넣으면 안 되는 이유
PostgreSQL에서 조건부 SQL 빌더 사용 시 참조되지 않는 파라미터가 포함되면 42P18 오류가 발생하므로 절과 파라미터를 함께 관리하고 실제 DB 파싱 테스트를 통해 검증해야 합니다
2026-08-04 · 8 min read
#postgresql#sql#backend#debugging
PostgreSQL 인덱스 설계 총정리 — 부분·복합·커버링·표현식부터 GIN/BRIN까지
PostgreSQL 인덱스 설계 총정리 — 부분·복합·커버링·표현식부터 GIN/BRIN까지
PostgreSQL 인덱스는 부분·복합·커버링(INCLUDE)·표현식 인덱스로 작고 정확하게 좁힐 수 있고, jsonb·배열은 GIN, 시계열 대용량은 BRIN이 적합하며, CONCURRENTLY·EXPLAIN으로 안전하게 운영합니다.
2026-06-11 · 15 min read
#postgresql#database#index#sql#performance
PostgreSQL에서 varchar(n) 대신 text를 권장하는 이유
PostgreSQL에서 varchar(n) 대신 text를 권장하는 이유
PostgreSQL 에서 varchar(n) 과 text 는 저장 구조(varlena)가 같아 성능 차이가 없고, varchar(n) 은 임의의 길이 제한으로 운영 장애만 유발하므로 기본값은 text + CHECK 를 권장합니다.
2026-06-11 · 8 min read
#postgresql#database#sql#데이터모델링
유용한 PostgreSQL 기능 8가지
유용한 PostgreSQL 기능 8가지
PostgreSQL 의 DISTINCT ON·LATERAL·FILTER·EXCLUDE·SKIP LOCKED 등 8가지 기능을 쓰면 그룹별 조회·정합성·동시성 제어를 애플리케이션 코드 대신 DB 레벨에서 해결합니다.
2026-05-27 · 10 min read
#postgresql#database#sql#backend