인덱스 전략과 정규화 균형 경험
졸업 프로젝트에서 커뮤니티 앱의 DB 스키마를 처음 설계했을 때, 인덱스는 생각조차 안 하고 정규화에만 집중했다가 조회 쿼리가 느려지는 문제를 겪었습니다. 그 뒤로 테이블을 설계할 때 세 가지를 함께 보게 됐습니다. 첫째, 어떤 쿼리가 가장 자주 실행되는가를 먼저 파악해 인덱스 전략을 잡고, 둘째 NULL 허용 여부와 기본값을 데이터 의미에 맞게 정의하며, 셋째 나중에 컬럼을 추가할 때 기존 레코드에 미치는 영향을 미리 계산합니다. 특히 외래 키 관계가 복잡해지면 JOIN 비용이 기대보다 클 수 있어서, 읽기가 잦은 테이블은 약간의 비정규화를 허용한 적도 있습니다. 이 경험들이 지금도 설계 첫날에 쿼리 패턴을 먼저 적어두는 버릇으로 이어졌습니다.