TECH NOTES
기술노트
현장에서 검증된 개발 지식을 기록합니다.
14131211109876543
Backend
SQL 인젝션, 아직도 1위 취약점 — 원리와 막는 법
문자열로 쿼리를 조립하면 입력값이 SQL 문법으로 해석돼 뚫린다. 파라미터 바인딩(prepared statement) 하나면 대부분 막힌다. 원리와 실전 방어.
Database
소프트 삭제 vs 하드 삭제, 무엇을 선택할까
deleted_at 컬럼으로 숨기는 소프트 삭제는 복구·감사에 좋지만 쿼리·유니크 제약·용량 부담이 따른다. 기준 정리.
Database
DB 커넥션 풀 사이즈, 크게 잡을수록 좋은 게 아니다
풀을 무작정 키우면 DB가 컨텍스트 스위칭으로 더 느려진다. 코어 수 기반 공식과 서버리스 환경의 함정.
Backend
API 페이지네이션, offset과 cursor 중 무엇을
offset/limit은 구현이 쉽지만 뒤로 갈수록 느리고 데이터가 밀린다. 무한 스크롤·대용량엔 cursor 기반이 정답.
Tools
Notion AI Database — 자연어 query 6개월, BI 도구 일부 대체
Notion AI Database로 비개발자 50명 자연어 query 운영. Tableau 일부 대체, 한계와 함정 정리.
Database
PostgreSQL 18 핵심 기능 — uuidv7·비동기 I/O·Skip Scan·OAuth 한 번에 정리
PostgreSQL 18의 비동기 I/O로 3배 빠른 스캔, uuidv7, OAuth, virtual generated columns, RETURNING 강화 등 실전 영향도 분석.
Database
Database Zero-downtime 마이그레이션 — Schema Evolution 실전 패턴
운영 중 DB를 멈추지 않고 스키마를 바꾸는 검증된 7단계 패턴 — column rename, type change, NOT NULL 추가, FK 변경 모두 다룸.
Database
PostgreSQL 파티셔닝 실전 — 10억 행 테이블을 10배 빠르게 만드는 전략
PostgreSQL 선언적 파티셔닝으로 10억 행 테이블 쿼리를 10배 빠르게 만드는 실전 전략. RANGE·LIST·HASH 선택, 파티션 프루닝, 유지보수 자동화까지.
Database
PostgreSQL 17 실전 최적화 가이드 — JSON 쿼리 성능 3배, 논리 복제 개선
PostgreSQL 17의 JSON_TABLE, 논리 복제 슬롯 동기화, 병렬 쿼리 확장 등 실전 최적화 가이드
Database
PostgreSQL 18 비동기 I/O 완전 가이드 — io_uring으로 3배 빨라진 읽기 성능
PostgreSQL 18의 가장 큰 변화, 비동기 I/O(AIO) 서브시스템을 깊이 분석합니다. io_uring 연계, 와이어 프로토콜 3.2, 실전 벤치마크까지.
Database
Postgres.js — Node.js 최고의 PostgreSQL 클라이언트
Postgres.js의 템플릿 리터럴 쿼리, 커넥션 풀링, pg 패키지 대비 장점.
Database
SQLite의 부활 — 웹 앱에서 SQLite를 쓰는 이유
SQLite가 다시 주목받는 이유와 Litestream, Turso 등 현대적 활용 방법.