본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 21. 02:05

정확한 SQL 쿼리를 작성하기 위해 AI 도구에 프롬프트를 작성하는 방법 (그리고 왜 대부분의 개발자들이 이를 틀리는가)

요약

AI를 활용해 정확한 SQL 쿼리를 생성하기 위해서는 모호한 지시 대신 구체적인 컨텍스트를 제공하는 것이 필수적입니다. 스키마 정의, 명확한 비즈니스 로직, 출력 형식 지정이라는 세 가지 핵심 전략을 통해 AI의 확률적 예측 오류를 최소화할 수 있습니다.

핵심 포인트

  • 컨텍스트 부재가 AI SQL 생성 실패의 가장 큰 원인임
  • DDL 문을 포함한 정확한 스키마 구조 제공이 필수적임
  • '활성 사용자'와 같은 모호한 용어 대신 구체적인 비즈니스 조건을 명시해야 함
  • 원하는 출력 형식을 지정하여 결과물의 활용도를 높일 수 있음

데이터베이스(Database)를 다루는 개발자라면 누구나 AI 도구를 사용하여 SQL 쿼리를 작성해 본 적이 있을 것입니다. 하지만 많은 경우, AI가 생성한 쿼리는 실행되지 않거나, 실행되더라도 잘못된 결과를 반환합니다.

왜 이런 일이 발생할까요? 대부분의 개발자들은 AI에게 너무 모호한 지시를 내리기 때문입니다. AI는 마법이 아닙니다. AI는 여러분이 제공한 컨텍스트(Context)를 바탕으로 확률적인 예측을 수행하는 도구입니다.

이 글에서는 AI 도구가 정확한 SQL 쿼리를 작성하도록 프롬프트(Prompt)를 구성하는 방법과, 많은 개발자들이 범하는 흔한 실수들을 살펴보겠습니다.

왜 대부분의 개발자들이 실패하는가

가장 큰 문제는 '컨텍스트의 부재(Lack of Context)'입니다.

단순히 "사용자 테이블에서 지난달에 가입한 사용자를 조회하는 SQL을 작성해줘"라고 요청한다고 가정해 봅시다. AI는 다음과 같은 정보를 알지 못합니다:

  1. 스키마(Schema) 구조: 테이블 이름이 users인가요, 아니면 user_accounts인가요?
  2. 컬럼명(Column Names): 가입 날짜를 나타내는 컬럼이 created_at인가요, signup_date인가요?
  3. 데이터 타입(Data Types): 날짜가 TIMESTAMP인가요, 아니면 VARCHAR 형태의 문자열인가요?
  4. 관계(Relationships): 다른 테이블과 조인(Join)이 필요한가요?

컨텍스트가 없는 상태에서 AI는 가장 일반적인(Generic) 형태의 쿼리를 생성하며, 이는 여러분의 실제 데이터베이스 환경에서는 작동하지 않을 가능성이 매우 높습니다.

정확한 SQL을 위한 프롬프트 엔지니어링 전략

AI로부터 정확한 결과를 얻으려면 다음과 같은 요소들을 프롬프트에 포함해야 합니다.

1. 스키마 정의 제공 (Provide Schema Definitions)

가장 중요한 단계입니다. DDL(Data Definition Language) 문을 직접 복사하여 붙여넣거나, 최소한 테이블 구조를 텍스트로 설명해야 합니다.

나쁜 예:
"주문 테이블에서 총 매출을 계산하는 SQL을 써줘."

좋은 예:
"다음은 나의 데이터베이스 스키마야:
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
total_amount DECIMAL(10, 2),
created_at TIMESTAMP
);
이 스키마를 바탕으로 2023년의 총 매출을 계산하는 SQL을 작성해줘."

2. 구체적인 비즈니스 로직 명시 (Specify Business Logic)

'지난달'이나 '활성 사용자'와 같은 용어는 사람마다 정의가 다를 수 있습니다. 이를 명확한 조건으로 변환하여 전달하세요.

  • 모호한 표현: "활성 사용자를 찾아줘."
  • 명확한 표현: "최근 30일 이내에 last_login_at 컬럼이 업데이트된 사용자를 '활성 사용자'로 정의해. 이 조건으로 쿼리를 작성해줘."

3. 출력 형식 지정 (Specify Output Format)

단순히 쿼리만 원하는지, 아니면 쿼리에 대한 설명이나 최적화 제안도 함께 원하는지 명시하세요.

"SQL 쿼리만 출력하고, 각 절(Clause)에 대해 짧은 설명을 덧붙여줘."

결론

AI를 사용하여 SQL을 작성할 때, 여러분의 역할은 '코더(Coder)'가 아니라 '설계자(Architect)'가 되어야 합니다. AI에게 무엇을 해야 하는지 알려주는 것을 넘어, AI가 작업을 수행하는 데 필요한 모든 재료(스키마, 데이터 타입, 비즈니스 규칙)를 제공하십시오. 프롬프트의 품질이 곧 쿼리의 품질입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0