# AI로 SQL 명령어 생성

## Content

### 기능 개요

SQL 지능 생성 기능을 사용하면 개발자가 자연어로 데이터 조회 요구사항을 설명하여 업무 로직에 부합하는 SQL 문을 빠르게 생성할 수 있습니다.

> **주의:**
> AI SQL 생성 기능 사용 시, Forguncy는 현재 프로젝트의 데이터 테이블·뷰 구조 정보(데이터베이스 유형, 테이블 이름, 필드 이름 및 필드 유형 포함)만 AI에 전송하며, 실제 데이터는 전송하지 않습니다. 테이블 구조에 민감한 정보가 포함되어 있다면 이 기능 사용을 피하는 것을 권장합니다.

***

### 사용 시나리오

1. 복잡한 조회 문을 빠르게 구성
2. 익숙하지 않은 SQL 문법 구조 생성
3. SQL 작성 아이디어 검증
4. 데이터베이스 조회 기법 학습

***

### 사용 가이드

#### 기본 사용 흐름

1. 빌더에서 SQL 실행 명령의 편집 화면을 엽니다.
2. **"AI SQL 생성"** 버튼을 클릭합니다.
    ![image](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/4f96589d-8403-419e-b2a1-4f6776199cb9/image-20260709.b34d73.png?width=800)
3. 자연어로 설명을 입력합니다(예: "2023년 매출액 상위 10위 고객과 그들의 주문 수를 조회해줘").
4. 생성 결과를 기다립니다.
    ![image](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/4f96589d-8403-419e-b2a1-4f6776199cb9/image-20260709.4dcf09.png?width=800)
5. 생성된 SQL 문을 검토하고 수정합니다.
    ![image](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/4f96589d-8403-419e-b2a1-4f6776199cb9/image-20260709.8028e2.png?width=800)
6. 명령을 저장하고 테스트합니다.

***

#### 설명 작성 팁

생성 정확도를 높이기 위해 다음 내용을 포함하는 것을 권장합니다.

* 조회 대상(테이블/필드)
* 필터링 조건
* 정렬 요구사항
* 그룹화 요구사항
* 연관 관계

**효과적인 설명 예시:**
"주문 테이블과 고객 테이블을 연관시켜, 서울 지역의 2025년 4분기 주문을 조회하고, 고객별로 그룹화하여 주문 금액 총합을 집계한 뒤, 결과를 금액 기준 내림차순으로 정렬해줘"

***

#### 고급 기능

**1\. 컨텍스트 인식:**

* 시스템이 현재 프로젝트의 데이터베이스 유형과 데이터 모델을 자동으로 인식합니다.
* 생성된 SQL은 프로젝트 내 실제 테이블 이름과 필드 이름을 우선적으로 사용합니다.

**2\. 다중 턴 최적화:**

* 처음 생성된 결과를 바탕으로 수정 요청을 계속 제시할 수 있습니다.
* 예: "금액이 1만 원을 초과하는 고객만 표시하도록 변경해줘"

**3\. 문법 변환:**

* 서로 다른 데이터베이스 방언 간 변환을 지원합니다.
* "이 MySQL 문법을 PostgreSQL로 변환해줘"와 같이 요청할 수 있습니다.

***

### 주의사항

1. 복잡한 조회는 여러 개의 간단한 설명으로 나누어야 할 수 있습니다.
2. 생성된 JOIN 작업은 연관 조건을 검토하는 것을 권장합니다.
3. 집계 함수 결과는 계산 로직을 검증해야 합니다.

***

### 모범 사례

**1\. 핵심 업무 SQL의 경우:**

* 자연어 설명 주석을 유지합니다.
* 결과를 검증한 후 운영에 투입합니다.

**2\. 생성 결과에 편차가 있을 때 시도할 사항:**

* 더 구체적인 제한 조건을 추가합니다.
* 테이블 연관 관계를 명확히 지정합니다.
* 샘플 데이터 특징을 제공합니다.

이 기능은 SQL 작성을 보조하는 도구로 활용하는 것을 권장하며, 개발자는 최종 품질을 보장하기 위해 기본적인 SQL 지식을 갖추고 있어야 합니다.