> ## Documentation Index
> Fetch the complete documentation index at: https://kxp.wyhil.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SQL 생성

> SQL 쿼리를 생성하는 방법을 알아봅니다.

## SQL 생성 개요

바이브 코딩을 통한 **SQL 생성**은 복잡한 조인(Join)문이나 집계 함수를 직접 작성하지 않아도, 자연어로 데이터 추출 요건을 설명하면 AI가 즉시 유효한 쿼리를 만들어주는 기능입니다. 특히 게시판의 통계 데이터나 복잡한 검색 조건이 필요할 때 매우 유용합니다.

***

## 단계별 SQL 생성 및 실행

### 1. 데이터 추출 목적 설명

게시판 DB에 저장된 데이터를 바탕으로 어떤 정보를 얻고 싶은지 AI에게 설명합니다.

> **Prompt:** "우리 게시판 DB에서 '지난 한 달 동안 가장 댓글이 많이 달린 게시글 TOP 5'를 뽑아주는 SQL 쿼리를 작성해줘. 게시글 제목과 댓글 수도 같이 출력되어야 해."

### 2. 스키마 자동 참조 (Context Aware)

AI는 프로젝트 내의 엔티티 파일(`Board.java`, `Comment.java`)이나 `schema.sql`을 읽어 테이블명과 컬럼명을 정확히 파악한 뒤 쿼리를 생성합니다.

### 3. DB 도구(Tools) 활용 및 검증

AI는 생성된 쿼리를 단순히 보여주는 것에 그치지 않고, 설정된 DB MCP Tool이 있다면 직접 쿼리를 실행하여 결과를 확인해 줍니다.

* **Tools 활용**: `run_terminal_command`를 통해 로컬 DB CLI에 접속하거나, 연결된 DB 관리 도구를 호출하여 쿼리 결과를 사용자에게 즉시 리포트합니다.

***

## 실무 활용 시나리오

### 검색 기능 강화

> **Prompt:** "제목과 내용뿐만 아니라 작성자의 닉네임으로도 검색할 수 있는 SQL 쿼리를 만들어줘. 검색어는 포함 관계(`LIKE %search%`)로 설정해줘."

### 통계 데이터 추출

> **Prompt:** "매일 생성되는 게시글 수를 날짜별로 그룹화해서 보여주는 통계용 쿼리를 작성해줘. 최근 7일치 데이터만 필요해."

***

## 💡 SQL 생성 및 관리 팁

* **성능 최적화 요청**: 쿼리 생성 후 "이 쿼리가 인덱스를 잘 타는지 확인해주고, 데이터가 많아져도 속도가 느려지지 않게 튜닝해줘"라고 요청하세요.
* **Dialect 명시**: H2, MySQL, PostgreSQL 등 사용하는 DB 종류를 언급하면 해당 DB 전용 문법(함수, 페이징 처리 등)으로 정확하게 생성됩니다.
* **보안 검토**: AI가 생성한 쿼리에 SQL Injection 위험이 없는지 검토해달라고 요청하여 안전한 파라미터 바인딩 방식을 적용하세요.
