#sql
7개의 글.

삭제 필터를 걸었는데 아무것도 안 걸러지고 있었다
논리 삭제 처리를 위해 작성한 쿼리 조건이 실제 데이터와 맞지 않아 수년간 무용지물이었던 경험을 통해, 코드 리뷰만으로는 알 수 없는 데이터의 실체를 확인하는 과정과 죽은 로직을 방치하지 않기 위한 현실적인 대응 방안을 공유합니다
2026-09-10 · 6 min read
#sql#레거시#데이터품질

링크 테이블을 조인해 SUM 하면 파일 하나를 여러 번 센다
파일과 링크 테이블을 조인해 합산할 때 발생하는 중복 집계 문제를 해결하는 방법과, 데이터의 정확성을 보장하기 위해 물리 파일 기준으로 그룹화하여 결정론적인 결과를 도출하는 과정 및 실측 검증의 중요성을 다룹니다
2026-09-10 · 6 min read
#postgresql#sql#집계

거짓 성공을 만드는 방어 코드 — 동적 UPDATE에서 컬럼을 조용히 건너뛸 때
동적 UPDATE문에서 특정 컬럼을 조용히 제외하는 방어 코드는 실패를 숨겨 데이터 무결성을 해칠 수 있습니다. 예외를 삼키는 대신 입구에서 검증하거나 실패를 명확히 응답하여 시스템의 정직함을 유지하는 설계 방법을 제안합니다
2026-08-26 · 8 min read
#backend#sql#error-handling#api-design

PostgreSQL 42P18 — 조건부 SQL 빌더에서 파라미터를 미리 넣으면 안 되는 이유
PostgreSQL에서 조건부 SQL 빌더 사용 시 참조되지 않는 파라미터가 포함되면 42P18 오류가 발생하므로 절과 파라미터를 함께 관리하고 실제 DB 파싱 테스트를 통해 검증해야 합니다
2026-08-04 · 6 min read
#postgresql#sql#backend#debugging
PostgreSQL 인덱스 설계 총정리 — 부분·복합·커버링·표현식부터 GIN/BRIN까지
PostgreSQL의 성능 최적화를 위해 부분·복합·커버링·표현식 인덱스 등 다양한 설계 기법을 정리하고, 데이터 특성에 맞는 GIN·BRIN 활용법과 운영 중 안전한 인덱스 관리 및 검증 전략을 상세히 설명한다
2026-06-11 · 14 min read
#postgresql#database#index#sql#performance
PostgreSQL에서 varchar(n) 대신 text를 권장하는 이유
PostgreSQL에서 varchar(n)은 성능상 이점이 없으며 오히려 불필요한 길이 제한으로 운영 장애를 유발할 수 있습니다. 동일한 저장 구조를 가진 text 타입을 기본으로 사용하고, 데이터 검증이 필요한 경우에만 CHECK 제약을 활용하는 것이 데이터베이스 설계와 유지보수 측면에서 훨씬 효율적입니다
2026-06-11 · 7 min read
#postgresql#database#sql#데이터모델링

유용한 PostgreSQL 기능 8가지
애플리케이션의 복잡한 로직을 데이터베이스 레벨에서 해결해 성능과 정합성을 높이는 PostgreSQL의 핵심 기능 8가지를 소개합니다. DISTINCT ON부터 데이터 변경 CTE까지, 실무에서 코드 양을 줄이고 동시성 문제를 효율적으로 제어할 수 있는 강력한 활용법을 확인해 보세요
2026-05-27 · 9 min read
#postgresql#database#sql#backend