w

API 참조

이 문서는 SQL Prettify 도구의 기능과 구현에 대한 기술 세부 정보를 제공합니다.

도구 구성

포맷 옵션

이 도구는 다음 구성 옵션을 지원합니다.

interface FormattingOptions {
  indentSize: number; // 2, 4, or 8 spaces
  keywordCase: "upper" | "lower" | "preserve";
  uppercaseKeywords: boolean;
  uppercaseFunctions: boolean;
  uppercaseDataTypes: boolean;
  alignCommas: boolean;
  breakBeforeBooleanOperator: boolean;
}

기본 구성

const defaultOptions: FormattingOptions = {
  indentSize: 2,
  keywordCase: "upper",
  uppercaseKeywords: true,
  uppercaseFunctions: true,
  uppercaseDataTypes: true,
  alignCommas: false,
  breakBeforeBooleanOperator: true,
};

지원되는 SQL 키워드

데이터 조작 언어(DML)

  • SELECT: 테이블에서 데이터를 조회합니다
  • INSERT: 새 레코드를 삽입합니다
  • UPDATE: 기존 레코드를 수정합니다
  • DELETE: 레코드를 삭제합니다

데이터 정의 언어(DDL)

  • CREATE: 데이터베이스 객체를 생성합니다
  • ALTER: 데이터베이스 객체를 수정합니다
  • DROP: 데이터베이스 객체를 제거합니다
  • TRUNCATE: 테이블의 모든 레코드를 제거합니다

데이터 제어 언어(DCL)

  • GRANT: 권한을 부여합니다
  • REVOKE: 권한을 회수합니다

트랜잭션 제어

  • COMMIT: 트랜잭션 변경 사항을 저장합니다
  • ROLLBACK: 트랜잭션 변경 사항을 되돌립니다
  • SAVEPOINT: 저장 지점을 만듭니다

지원되는 SQL 함수

집계 함수

  • COUNT: 행 수 또는 NULL이 아닌 값 수를 계산합니다
  • SUM: 값의 합계를 계산합니다
  • AVG: 평균값을 계산합니다
  • MIN: 최소값을 찾습니다
  • MAX: 최대값을 찾습니다

문자열 함수

  • UPPER: 대문자로 변환합니다
  • LOWER: 소문자로 변환합니다
  • LENGTH: 문자열 길이를 구합니다
  • SUBSTRING: 부분 문자열을 추출합니다
  • CONCAT: 문자열을 연결합니다
  • TRIM: 앞뒤 공백을 제거합니다

날짜/시간 함수

  • NOW: 현재 타임스탬프를 가져옵니다
  • DATE: 날짜 부분을 추출합니다
  • TIME: 시간 부분을 추출합니다
  • YEAR: 연도를 추출합니다
  • MONTH: 월을 추출합니다
  • DAY: 일을 추출합니다

수학 함수

  • ROUND: 지정한 소수 자릿수로 반올림합니다
  • FLOOR: 내림합니다
  • CEIL: 올림합니다
  • ABS: 절대값을 구합니다
  • SQRT: 제곱근을 계산합니다
  • POWER: 거듭제곱을 계산합니다

지원되는 데이터 타입

숫자 타입

  • INT: 정수 값
  • INTEGER: 정수 값
  • BIGINT: 큰 정수 값
  • SMALLINT: 작은 정수 값
  • TINYINT: 매우 작은 정수 값
  • DECIMAL: 고정 소수점 값
  • NUMERIC: 고정 소수점 값
  • FLOAT: 부동소수점 값
  • DOUBLE: 배정밀도 부동소수점 값
  • REAL: 단정밀도 부동소수점 값

문자열 타입

  • CHAR: 고정 길이 문자열
  • VARCHAR: 가변 길이 문자열
  • TEXT: 대용량 텍스트 데이터
  • BLOB: 바이너리 대용량 객체

날짜/시간 타입

  • DATE: 날짜 값
  • TIME: 시간 값
  • DATETIME: 날짜 및 시간 값
  • TIMESTAMP: 타임스탬프 값

기타 타입

  • BOOLEAN: 불리언 값
  • BIT: 비트 값
  • JSON: JSON 데이터

포맷 규칙

들여쓰기 규칙

  1. SELECT 절: 각 컬럼을 새 줄에 배치하고 들여씁니다
  2. FROM 절: 테이블 이름에 적절한 들여쓰기를 적용합니다
  3. JOIN 절: JOIN 조건에 적절한 들여쓰기를 적용합니다
  4. WHERE 절: 조건에 적절한 들여쓰기를 적용합니다
  5. GROUP BY: 그룹화 컬럼에 들여쓰기를 적용합니다
  6. ORDER BY: 정렬 컬럼에 들여쓰기를 적용합니다

대소문자 변환 규칙

  1. 키워드: 지정한 대소문자(upper/lower/preserve)로 변환합니다
  2. 함수: 함수명을 지정한 대소문자로 변환합니다
  3. 데이터 타입: 데이터 타입명을 지정한 대소문자로 변환합니다
  4. 식별자: 테이블명과 컬럼명의 원래 대소문자를 유지합니다

줄바꿈 규칙

  1. 주요 절: SELECT, FROM, WHERE, GROUP BY, ORDER BY 앞에서 줄바꿈합니다
  2. JOIN 절: 각 JOIN 유형 앞에서 줄바꿈합니다
  3. 불리언 연산자: 활성화 시 AND/OR 앞에서 줄바꿈합니다
  4. 쉼표 정렬: 활성화 시 SELECT 목록의 쉼표를 정렬합니다

히스토리 관리

히스토리 레코드 구조

interface HistoryRecord {
  id: string;
  input: string;
  output: string;
  options: FormattingOptions;
  timestamp: number;
}

히스토리 작업

  • 레코드 추가: 새 포맷 기록을 자동으로 추가합니다
  • 레코드 삭제: 특정 히스토리 항목을 제거합니다
  • 히스토리 비우기: 모든 히스토리를 삭제합니다
  • 레코드 불러오기: 히스토리에서 SQL과 옵션을 복원합니다

저장 제한

  • 최대 레코드 수: 50개
  • 저장 위치: 브라우저 로컬 스토리지
  • 지속성: 데이터는 브라우저 세션 간 유지됩니다

오류 처리

일반적인 오류

  1. 잘못된 SQL 문법: 형식이 잘못된 SQL 쿼리
  2. 지원되지 않는 구문: 포매터가 지원하지 않는 SQL 기능
  3. 대형 쿼리: 처리 제한을 초과하는 쿼리
  4. 브라우저 제한: 로컬 스토리지 또는 메모리 제약

오류 복구

  1. 문법 검사: 기본 SQL 문법을 검사합니다
  2. 점진적 저하: 복잡한 쿼리에 대해 부분 포맷을 제공합니다
  3. 사용자 피드백: 명확한 오류 메시지와 제안을 제공합니다
  4. 대체 옵션: 대안 포맷 방식을 제공합니다

성능 고려 사항

처리 제한

  • 쿼리 크기: 최대 10,000자 쿼리를 처리합니다
  • 복잡도: 최대 10단계 중첩 쿼리를 지원합니다
  • 처리 시간: 일반적으로 100ms 이내에 처리합니다

최적화 기능

  • 증분 처리: 변경된 부분만 처리합니다
  • 캐싱: 반복 작업의 포맷 결과를 캐시합니다
  • 지연 로딩: 필요할 때 히스토리 레코드를 불러옵니다

브라우저 호환성

지원 브라우저

  • Chrome: 80+ 버전
  • Firefox: 75+ 버전
  • Safari: 13+ 버전
  • Edge: 80+ 버전

필수 기능

  • ES6 지원: 화살표 함수, 템플릿 리터럴
  • Local Storage: 브라우저 로컬 스토리지 API
  • Clipboard API: 최신 클립보드 접근
  • CSS Grid: 레이아웃 지원

통합

임베딩 옵션

이 도구는 다른 애플리케이션에 통합할 수 있습니다.

  1. Iframe 임베딩: iframe으로 삽입합니다
  2. API 통합: 포맷 함수를 직접 사용합니다
  3. 컴포넌트 통합: Vue 컴포넌트로 포함합니다

사용자 지정

  • 테마 지원: 라이트 및 다크 테마
  • 언어 지원: 다국어 옵션
  • 사용자 지정 스타일: CSS 사용자 지정 지원
이 페이지가 도움이 되었나요?