SQL Formatter
SQL 쿼리 정렬/미화
옵션
SQL Formatter 소개
SQL 포맷터는 SQL 쿼리를 정렬(beautify), 압축(minify), 구문 강조(syntax highlight)할 수 있는 무료 온라인 도구입니다. SQL 방언을 선택하면(MySQL, PostgreSQL, Oracle, SQL Server, SQLite) 방언별 키워드 인식과 함께 일관된 스타일이 적용됩니다: 키워드는 파란색, 문자열은 녹색, 숫자는 주황색, 주석은 회색으로 색상 코딩됩니다. 주요 절(SELECT, FROM, WHERE, JOIN, ORDER BY, GROUP BY)은 새 줄에서 시작하고, 종속 절(AND, OR, ON, JOIN 조건)은 시각적 계층을 위해 들여쓰기됩니다.
키워드 대/소문자 토글로 전통적인 SQL 스타일(SELECT, FROM, WHERE)이나 모던 코딩 스타일(select, from, where) 중 선택할 수 있습니다. 압축 기능은 모든 공백을 제거하여 단일 줄 쿼리로 만듭니다. 출력 패널의 줄 번호는 대규모 쿼리의 코드 리뷰나 디버깅 시 특정 부분을 참조하기 쉽게 해줍니다.
각 방언은 고유한 키워드 세트를 추가합니다: MySQL은 AUTO_INCREMENT, ENGINE, SHOW를 인식하고, PostgreSQL은 RETURNING, ILIKE, SERIAL을 처리하며, Oracle은 ROWNUM, NVL, CONNECT BY를 지원하고, SQL Server는 TOP, NOLOCK, MERGE를 강조하며, SQLite는 AUTOINCREMENT, PRAGMA, GLOB을 감지합니다. 모든 처리는 브라우저 내에서만 실행되어 민감한 테이블명이나 비즈니스 로직이 포함된 운영 쿼리도 안전하게 사용할 수 있습니다.
주요 기능
- SQL 방언 선택: MySQL, PostgreSQL, Oracle, SQL Server, SQLite — 각 방언별 키워드 인식
- 구문 강조: 키워드(파란색), 문자열(녹색), 숫자(주황색), 주석(회색) — 정규식 기반 토크나이저
- 키워드 대/소문자 토글: 대문자(SELECT) 또는 소문자(select)로 팀 코딩 스타일에 맞춤
- 원클릭 압축(minify)으로 SQL을 한 줄로 압축하여 로그 검색이나 설정 저장에 활용
- 출력 패널의 줄 번호로 코드 리뷰 및 디버깅 시 쉬운 참조
- 주요 절에 스마트 줄바꿈 삽입 및 종속 절 들여쓰기로 명확한 계층 표시
- 샘플 SQL 불러오기로 빠른 포맷팅 테스트
- 정렬 또는 압축 결과를 원클릭으로 클립보드에 복사
- 100% 클라이언트 사이드 처리 — SQL이 브라우저 밖으로 전송되지 않음
- 다크 모드 지원 및 모든 컨트롤과 하이라이트 출력의 접근성 보장
자주 묻는 질문
방언 선택이 포맷팅에 어떤 영향을 주나요?
각 방언(MySQL, PostgreSQL, Oracle, SQL Server, SQLite)은 포맷터와 구문 강조기에 고유한 키워드 세트를 추가합니다. 예를 들어 MySQL을 선택하면 AUTO_INCREMENT, ENGINE, SHOW, DESCRIBE가 인식 키워드 목록에 추가됩니다. PostgreSQL을 선택하면 RETURNING, ILIKE, SERIAL, LATERAL이 추가됩니다. 이 방언별 키워드는 포맷팅 시 대문자(또는 소문자)로 변환되고 출력에서 파란색으로 강조됩니다. 기본 SQL 포맷팅 규칙(줄바꿈, 들여쓰기)은 모든 방언에서 동일합니다.
구문 강조는 어떻게 작동하나요?
하이라이터는 정규식 기반 토크나이저를 사용하여 SQL을 문자 단위로 처리하며 네 가지 토큰 유형을 식별합니다: 문자열(작은따옴표 텍스트, 녹색), 주석(-- 단일 줄 및 /* */ 다중 줄, 회색), 숫자(주황색), 텍스트(나머지). 텍스트 토큰 내의 키워드는 전체 키워드 목록(기본 + 방언별)과 매칭되어 파란색으로 강조됩니다. 문자열과 주석이 먼저 토큰화되므로 따옴표 안이나 주석 안의 키워드가 잘못 강조되지 않습니다.
대문자와 소문자 키워드 모드의 차이는 무엇인가요?
키워드 대문자화 토글은 SELECT, FROM, WHERE, JOIN 같은 SQL 키워드를 대문자로 표시할지 소문자로 표시할지 제어합니다. 대문자는 대부분의 문서와 데이터베이스 도구에서 사용하는 전통적인 SQL 규약이고, 소문자는 SQL이 애플리케이션 코드에 포함되는 모던 코드베이스에서 점점 더 많이 사용됩니다. 이 토글은 정렬(Format) 동작에만 영향을 줍니다. 압축(Minify)은 입력의 원래 대소문자를 유지합니다.
JOIN 절은 어떻게 처리하나요?
INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, CROSS JOIN 및 OUTER 변형을 주요 절로 인식하여 새 줄에서 시작합니다. ON 조건은 해당 JOIN 아래에 들여쓰기되어 종속 관계를 보여줍니다. 여러 테이블이 조인된 복잡한 쿼리도 시각적으로 쉽게 따라갈 수 있습니다.
정렬(Format)과 압축(Minify)의 차이점은 무엇인가요?
정렬은 줄바꿈, 들여쓰기, 키워드 대/소문자화, 구문 강조를 추가하여 SQL을 사람이 읽기 쉽게 만듭니다. 압축은 모든 공백을 단일 공백으로 줄여 한 줄 쿼리로 만듭니다. 압축된 SQL은 로그 파일 검색, URL 파라미터 삽입, 줄바꿈을 지원하지 않는 설정에 저장할 때 유용합니다. 두 동작 모두 구문 강조된 출력을 생성합니다.
SQL 구문을 검증하나요?
아닙니다. 이 도구는 포맷팅 및 하이라이팅 도구로, 구문 분석기나 검증기가 아닙니다. SQL을 추상 구문 트리로 파싱하지 않고 텍스트 변환 규칙(키워드 감지, 줄바꿈, 들여쓰기, 색상 코딩)을 적용합니다. 문법적으로 잘못된 SQL도 오류 없이 포맷팅 및 하이라이팅하며, 이를 통해 구조적 문제를 시각적으로 식별할 수 있습니다.
줄 번호를 끌 수 있나요?
네. 옵션 패널의 "줄 번호 표시" 체크박스를 해제하면 출력에서 줄 번호 열이 사라져 더 깔끔하게 포맷된 SQL을 볼 수 있습니다. 이 설정은 포맷팅 및 하이라이팅과 독립적이며, 다시 포맷팅하지 않고도 언제든지 켜거나 끌 수 있습니다.
SQL 데이터가 안전한가요?
네. 모든 포맷팅, 압축, 구문 강조는 JavaScript로 브라우저 내에서만 처리됩니다. SQL 쿼리가 서버에 전송되거나 저장, 기록되는 일이 없습니다. 운영 쿼리, 민감한 테이블/컬럼명이 포함된 쿼리, 비즈니스 로직이 담긴 쿼리도 안전하게 사용할 수 있습니다.