메인 콘텐츠로 건너뛰기

2026-05-18 · 1분 읽기

코드 리뷰에서 SQL 포맷터 사용하기

일관된 SQL diff는 노이즈를 줄이고 로직 변경을 더 빨리 드러냅니다.

SQL리뷰데이터베이스

핵심 요점

  • 포맷 전에 엔진(PostgreSQL, MySQL, SQLite)에 맞는 dialect를 맞추세요.
  • 포맷 후 JOIN과 WHERE 절을 다시 읽으세요 — 구조 변경이 로직 수정을 가려서는 안 됩니다.

리뷰어가 신경 쓰는 이유

포맷되지 않은 SQL은 리뷰어가 키워드를 머릿속으로 파싱하게 하여, 우발적 cartesian product나 빠진 predicate를 숨깁니다.

포맷된 쿼리는 CTE 경계와 집계 단계를 몇 초 만에 훑을 수 있게 합니다.

dialect를 명시적으로 선택

팀이 PostgreSQL vs MySQL을 쓸 때 보조 필드에 dialect를 설정하세요 — 대소문자와 함수 이름이 다릅니다.

포맷 후 SQL 클라이언트에 붙여넣고 plan이 예기치 않게 바뀌지 않았는지 확인하세요.

자주 묻는 질문

포맷하면 쿼리가 깨지나요?

의미는 보존되어야 합니다. 성능에 민감한 쿼리는 staging에서 EXPLAIN을 실행하세요.

저장 프로시저도 포맷할 수 있나요?

가독성을 위해 가능하지만, 먼저 비운영 DB에서 실행을 테스트하세요.