Glyph WidgetsGlyph Widgets
도구소개연락처블로그개인정보약관광고 제거Ko-fi에서 후원하기

© 2026 Glyph Widgets LLC. 모든 권리 보유.

·

100% 클라이언트 측 처리

블로그로 돌아가기

SQL Formatter: SQL 포맷 및 정리

SQL Formatter: MySQL, PostgreSQL, SQL Server, SQLite 등의 쿼리를 정리. 키워드 대소문자, 들여쓰기, 축소. 무료.

Glyph Widgets
2026년 2월 27일
읽기 18분
sql formattersql beautifiersql 온라인 포맷sql pretty printmysql formatter

SQL Formatter란?

SQL Formatter는 포맷되지 않았거나 압축되었거나 일관성 없는 스타일의 SQL 쿼리를 적절한 들여쓰기와 일관된 키워드 대소문자를 가진 깔끔하고 읽기 쉬운 코드로 변환하는 브라우저 기반 도구입니다. 개발자와 데이터 분석가는 포맷이 안 된 SQL을 지속적으로 접합니다. 애플리케이션 코드에 인라인으로 작성된 쿼리, ORM 디버그 로그의 출력, 문서에서 복사한 SQL, 또는 점진적 편집을 거치며 구조를 잃은 쿼리들이 그 예입니다.

이 도구는 해당 raw SQL을 가져와 sql-formatter 라이브러리를 사용해 방언 인식 포맷팅을 적용합니다. 이 라이브러리는 Standard SQL, MySQL, MariaDB, PostgreSQL, PL/SQL(Oracle), T-SQL(SQL Server), SQLite의 구문 규칙을 이해합니다. 대상 방언을 선택하고, 들여쓰기 너비를 설정하고, 키워드 대문자 표기를 전환하고, 결과를 축소할 수 있습니다. 모든 처리는 서버 없이, 가입 없이, 무료로 브라우저에서 로컬로 실행됩니다.

주요 기능

  • 적절한 들여쓰기로 SQL 포맷 — 하나의 붙여넣기에서 여러 문장 사이에 구성 가능한 tabWidth와 linesBetweenQueries: 2 간격을 사용하는 sql-formatter 라이브러리 활용.
  • 여러 SQL 방언 지원 — Standard SQL, MySQL, MariaDB, PostgreSQL, PL/SQL(Oracle), T-SQL(SQL Server), SQLite 중 선택. 방언 선택은 포맷터가 방언별 구문과 예약어를 처리하는 방식에 영향을 줍니다.
  • 사용자 정의 들여쓰기 설정 — 작업 표시줄에서 2칸 또는 4칸 들여쓰기 선택.
  • 키워드 대문자 토글 — 버튼이 keywordCase: 'upper'와 keywordCase: 'preserve' 사이를 전환합니다. 대문자 표기가 활성화된 경우(기본값), 모든 SQL 키워드가 대문자로 표준화됩니다(SELECT, FROM, WHERE, JOIN 등). 비활성화하면 키워드 대소문자가 그대로 유지됩니다.
  • SQL 축소 — tabWidth: 0으로 포맷하고 결과를 접어 토큰 사이의 단일 공백으로 한 줄 출력 생성.
  • 포맷된 출력 클립보드에 복사 — Clipboard API와 textarea 폴백.
  • .sql 파일로 다운로드 — text/sql MIME 타입으로 formatted.sql로 출력 저장.
  • 키보드 단축키 — Ctrl+Enter(Cmd+Enter) 포맷, Ctrl+Shift+M(Cmd+Shift+M) 축소.

SQL Formatter 사용 방법

1단계: SQL 붙여넣기

/developer/code/sql-formatter에서 도구를 엽니다. SQL 쿼리를 왼쪽 입력 패널에 붙여넣습니다. 세미콜론으로 구분된 여러 문장이 지원됩니다. 포맷터는 출력에서 각 문장 사이에 두 개의 빈 줄을 배치합니다.

2단계: 방언 및 옵션 선택

패널 아래 작업 표시줄에서:

  1. 방언 선택 드롭다운에서: Standard SQL, MySQL, MariaDB, PostgreSQL, PL/SQL(Oracle), T-SQL(SQL Server), 또는 SQLite. 가장 정확한 포맷을 위해 쿼리가 실행될 데이터베이스 엔진에 맞춰 선택하세요.
  2. 들여쓰기 선택: 2칸 또는 4칸.
  3. Uppercase 전환: Uppercase 버튼은 기본적으로 활성화되어 있습니다. 활성화 시 모든 SQL 키워드가 대문자로 정규화됩니다. 클릭하여 비활성화하면 원래 대소문자가 유지됩니다.

3단계: Format 클릭

Format을 클릭하거나 Ctrl+Enter / Cmd+Enter를 누릅니다. 포맷된 SQL이 읽기 전용 출력 패널에 나타납니다. 도구는 기록 항목에 방언을 표시합니다(예: "Formatted POSTGRESQL (2.4 KB)").

입력 예시 — 애플리케이션 디버그 출력의 인라인 쿼리:

select u.id,u.email,u.created_at,count(o.id) as order_count,sum(o.total_amount) as total_spent from users u left join orders o on u.id=o.user_id where u.active=true and u.created_at>='2024-01-01' group by u.id,u.email,u.created_at having count(o.id)>0 order by total_spent desc limit 25

PostgreSQL 방언, 2칸 들여쓰기, uppercase 활성화 출력:

SELECT
  u.id,
  u.email,
  u.created_at,
  COUNT(o.id) AS order_count,
  SUM(o.total_amount) AS total_spent
FROM
  users u
  LEFT JOIN orders o ON u.id = o.user_id
WHERE
  u.active = TRUE
  AND u.created_at >= '2024-01-01'
GROUP BY
  u.id,
  u.email,
  u.created_at
HAVING
  COUNT(o.id) > 0
ORDER BY
  total_spent DESC
LIMIT
  25

4단계: 축소 (선택사항)

Minify를 클릭하거나 Ctrl+Shift+M / Cmd+Shift+M을 눌러 한 줄 SQL 문자열을 생성합니다. 축소 중에도 대문자 표기와 방언 설정이 적용됩니다. 축소된 SQL은 환경 변수, 구성 문자열, 또는 줄 변경이 노이즈가 되는 비교 차이 파일에 쿼리를 삽입할 때 유용합니다.

동일한 쿼리의 축소 출력:

SELECT u.id, u.email, u.created_at, COUNT(o.id) AS order_count, SUM(o.total_amount) AS total_spent FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.active = TRUE AND u.created_at >= '2024-01-01' GROUP BY u.id, u.email, u.created_at HAVING COUNT(o.id) > 0 ORDER BY total_spent DESC LIMIT 25

5단계: 복사 또는 다운로드

출력을 클립보드에 놓으려면 Copy를 클릭합니다. formatted.sql을 저장하려면 Download를 클릭합니다. 두 버튼 모두 오른쪽 패널에 출력이 생길 때까지 비활성화됩니다.

실용적인 예시

ORM 디버그 쿼리 정리

Django나 Rails의 ORM 디버그 출력은 혼합 대소문자로 쿼리를 한 줄에 기록합니다. 전형적인 Django 쿼리 로그 항목:

select "products"."id", "products"."name", "products"."price", "products"."stock_count" from "products" where "products"."category_id" = 12 and "products"."active" = true order by "products"."name" asc

PostgreSQL 방언을 선택하고(Django는 이중 따옴표의 PostgreSQL 인용 방식을 사용), 대문자 표기를 활성화한 후 Format을 클릭합니다. 출력은 이중 따옴표로 묶인 식별자를 유지하면서 대문자 키워드로 적절한 들여쓰기를 보여줍니다.

저장 프로시저 검토

T-SQL 저장 프로시저가 버전 관리에 단일 포맷되지 않은 블록으로 체크인되어 있었습니다. T-SQL(SQL Server) 방언을 선택하고 Format을 클릭하면 일관된 키워드 대소문자를 가진 들여쓰기된 읽기 쉬운 버전을 얻을 수 있습니다. 포맷된 버전은 풀 리퀘스트 차이 파일에서 검토하기 더 쉽고 원본을 대체하여 다시 커밋할 수 있습니다.

설정에 쿼리 삽입

애플리케이션이 리포트 쿼리를 YAML 설정 파일에 한 줄 문자열로 저장합니다. SQL Formatter에서 적절한 포맷으로 쿼리를 작성하고 테스트한 다음, 삽입할 압축 버전을 생성하기 위해 Minify를 클릭합니다. 포맷된 버전을 축소 버전 옆 주석으로 유지하면 설정 파일을 유지 관리하기 쉽습니다.

# 포맷된 버전 (가독성을 위해):
# SELECT product_id, SUM(quantity) AS units_sold
# FROM order_items
# WHERE order_date >= :start_date
# GROUP BY product_id
# ORDER BY units_sold DESC

report_query: "SELECT product_id, SUM(quantity) AS units_sold FROM order_items WHERE order_date >= :start_date GROUP BY product_id ORDER BY units_sold DESC"

팁과 모범 사례

방언을 데이터베이스에 맞추세요. 대부분의 SQL 포맷팅은 방언에 독립적이지만, sql-formatter 라이브러리는 방언별 구문(PostgreSQL의 :: 캐스트 구문, T-SQL의 TOP, LIMIT/OFFSET 배치 차이 등)을 올바른 방언이 선택되었을 때 더 정확하게 처리합니다.

코드 리뷰 가독성을 위해 대문자를 사용하세요. SQL의 대문자 키워드 관례는 널리 알려져 있으며, 구조적 구성 요소(SELECT, FROM, WHERE, JOIN)를 식별자와 리터럴과 시각적으로 구별되게 합니다. 검토하거나 커밋할 코드를 포맷하기 전에 대문자 토글을 활성화하세요.

비교 전에 포맷하세요. 쿼리의 두 버전을 비교할 때, 먼저 동일한 설정으로 둘 다 포맷하세요. 포맷되지 않은 SQL의 차이는 단일 구조 변경이 많은 줄에 영향을 미칠 수 있기 때문에 노이즈가 많은 출력을 생성합니다.

여러 문장이 작동합니다. 세미콜론으로 구분된 여러 CREATE TABLE, INSERT, ALTER TABLE 문이 포함된 마이그레이션 파일이나 스크립트를 붙여넣을 수 있습니다. 포맷터는 시각적 구분을 위해 각 문장 사이에 두 개의 빈 줄을 생성합니다.

팀 규약을 위한 프리셋을 저장하세요. Glyph Widgets 지원자는 방언, 들여쓰기, 대문자 설정을 명명된 프리셋으로 저장할 수 있습니다. 프로젝트 전환 시 팀 규약을 한 번의 클릭으로 적용하려면 프로젝트당 하나의 프리셋을 만드세요(예: "MySQL 2칸 대문자").

자주 발생하는 문제 및 해결책

Format 클릭 후 오류 메시지 — sql-formatter 라이브러리는 인식할 수 없는 구문에서 오류를 발생시킵니다. 일반적인 원인: 선택한 방언에서 지원하지 않는 독점 확장, 절차적 코드(PL/pgSQL 함수 본문, T-SQL BEGIN/END 블록), 또는 {{ variable }}나 #{variable} 같은 애플리케이션 레이어 템플릿 구문이 혼합된 SQL. 포맷하기 전에 지원되지 않는 부분을 제거하거나 주석 처리하세요.

키워드가 대문자로 변환되지 않음 — Uppercase 버튼이 활성 상태(채워진, 기본 스타일)인지 확인하세요. 버튼이 외곽선 스타일이면 대소문자 설정이 preserve로 되어 있습니다. 대문자 모드를 활성화하려면 한 번 클릭하세요.

잘못된 방언이 예상치 못한 줄 바꿈을 유발함 — sql-formatter 라이브러리의 줄 바꿈 규칙은 방언에 따라 다릅니다. 쿼리가 이상하게 포맷되면 방언으로 Standard SQL을 시도해 보세요.

축소 출력에 일부 여러 공백이 있음 — 축소 방식은 모든 공백 시퀀스를 단일 공백으로 축소합니다. 인용된 문자열 내용은 영향을 받지 않습니다. 단일 따옴표 문자열 내의 공백은 유지됩니다.

"Please enter SQL to format" 오류 — 입력이 비어 있습니다. Format을 클릭하기 전에 왼쪽 패널에 SQL 쿼리를 붙여넣으세요.

다운로드된 파일이 매번 formatted.sql로 이름이 지정됨 — 이는 고정된 파일 이름입니다. 다운로드 후 프로젝트 명명 규칙에 맞게 파일 이름을 바꾸세요.

개인정보 보호 및 보안

SQL Formatter는 sql-formatter 라이브러리를 사용해 브라우저에서 로컬로 모든 SQL 텍스트를 처리합니다. 테이블 이름, 컬럼 이름, 데이터 값, 연결 문자열의 자격 증명 또는 기타 모든 내용을 포함한 쿼리 텍스트는 서버로 전송되지 않습니다. 페이지가 로드되면 오프라인으로 작동합니다. 따라서 독점 스키마 이름, 내부 비즈니스 로직 또는 샘플 데이터가 포함된 쿼리에 안전하게 사용할 수 있습니다.

자주 묻는 질문

SQL Formatter는 무료인가요? 네, 완전히 무료입니다. 모든 포맷팅, 축소, 방언 옵션을 요금이나 계정 없이 사용할 수 있습니다. 저장된 프리셋 및 세션 기록과 같은 Glyph Widgets 지원자 기능은 Ko-fi 지원자를 위해 제공되지만, 핵심 SQL 포맷팅은 제한이 없습니다.

오프라인에서 작동하나요? 네. 페이지가 로드되면 모든 포맷팅이 JavaScript를 사용해 브라우저에서 로컬로 실행됩니다. 인터넷 연결을 끊어도 중단 없이 쿼리를 계속 포맷할 수 있습니다.

SQL이 안전한가요? 네. SQL은 어떤 서버에도 전송되지 않습니다. 브라우저 메모리에서 완전히 처리되며 도구를 지우거나 탭을 닫으면 삭제됩니다. 내부 테이블 이름, 비즈니스 로직 또는 샘플 데이터 값이 포함된 쿼리를 안전하게 붙여넣을 수 있습니다.

지원되는 SQL 방언은 무엇인가요? Standard SQL, MySQL, MariaDB, PostgreSQL, PL/SQL(Oracle), T-SQL(SQL Server), SQLite를 지원합니다. 이는 sql-formatter 라이브러리의 language 매개변수에 직접 대응합니다.

도구가 SQL 구문을 검증하나요? sql-formatter 라이브러리는 SQL을 포맷하기에 충분한 파싱을 수행하고 처리할 수 없는 특정 구문에서 오류를 발생시키지만, 엄격한 의미의 SQL 검증기는 아닙니다. 진정한 구문 검증을 위해서는 데이터베이스 엔진의 EXPLAIN 또는 쿼리 플래너를 사용하세요.

여러 쿼리를 한 번에 포맷할 수 있나요? 네. 세미콜론으로 구분된 여러 문장을 붙여넣으세요. 포맷터는 각 포맷된 문장 사이에 두 개의 빈 줄을 배치하여 쿼리 사이의 경계를 명확하게 합니다.

Uppercase 토글은 정확히 무엇을 하나요? 활성화되면 포맷터가 sql-formatter 옵션에 keywordCase: 'upper'를 설정하여 모든 SQL 예약어를 대문자로 변환합니다. SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, LIMIT, COUNT, SUM, MAX 등의 함수 이름이 포함됩니다. 비활성화하면 keywordCase: 'preserve'가 입력의 대소문자를 그대로 유지합니다.

포맷터가 CTE(Common Table Expressions)를 처리할 수 있나요? 네. CTE(WITH ... AS (...))는 CTE 정의와 그 뒤에 오는 메인 쿼리에 대한 적절한 들여쓰기로 올바르게 포맷됩니다. 이는 지원되는 모든 방언에 적용됩니다.

포맷하는 키보드 단축키는 무엇인가요? Windows/Linux에서는 Ctrl+Enter, macOS에서는 Cmd+Enter입니다. 축소하려면 Windows/Linux에서는 Ctrl+Shift+M, macOS에서는 Cmd+Shift+M을 사용하세요.

CREATE TABLE과 같은 DDL 문을 포맷할 수 있나요? 네. sql-formatter 라이브러리는 DDL(CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX 등)뿐만 아니라 DML(SELECT, INSERT, UPDATE, DELETE)과 DCL(GRANT, REVOKE)도 처리합니다. DDL과 DML이 혼합된 스크립트는 세미콜론으로 구분될 때 올바르게 포맷됩니다.

관련 도구

JSON Formatter — 스키마 검증, 스키마 생성, 인터랙티브 트리 뷰어로 JSON 데이터 포맷 및 검증.

XML Formatter — 구성 가능한 들여쓰기와 축소로 XML 문서 포맷 및 검증.

YAML Formatter — YAML 설정 파일을 포맷하고 JSON으로 변환.

지금 SQL Formatter를 사용해 보세요: SQL Formatter

마지막 업데이트: 2026년 2월 27일

계속 읽기

더 많은 글SQL Formatter 사용해 보기