TECH NOTES
기술노트
현장에서 검증된 개발 지식을 기록합니다.
181716151413121110987
Database
트랜잭션 ACID란 — 데이터가 깨지지 않게 지키는 4가지
계좌 이체 중간에 서버가 죽으면 돈이 사라질까? 트랜잭션의 ACID(원자성·일관성·격리성·지속성)가 이런 사고를 막는 원리를 쉽게 정리.
Database
UUID vs 자동증가 — 기본키로 무엇을 쓸까
순차 정수 ID는 간단하고 빠르지만 예측 가능하고 분산에 약하다. UUID는 겹칠 걱정이 없지만 크고 인덱스에 부담. 상황별 선택 기준.
Database
인덱스의 단점 — 언제 인덱스를 만들지 말아야 하나
인덱스는 조회를 빠르게 하지만 공짜가 아니다. 쓰기 성능 저하, 저장공간, 안 타는 인덱스까지. 무작정 다는 게 답이 아닌 이유.
Database
SQL JOIN 완벽 이해 — INNER·LEFT·RIGHT 언제 무엇을
두 테이블을 합칠 때 INNER는 교집합, LEFT는 왼쪽 전부. 이 차이 하나로 결과 행 수가 달라지고 버그가 생긴다. 그림처럼 이해하는 JOIN 정리.
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 선택, 파티션 프루닝, 유지보수 자동화까지.