AI 시대 DB 모델링 & SQL 완벽 마스터5-1 연습 문제
테크타니 LEARN — 섹션 05 · 연습 문제

5-1 연습 문제 — AI에게 줘야 할 3가지,
스키마·샘플 데이터·결과 형태를 직접 채운다

이번 강의에서 배운 것 — 스키마 / 샘플 데이터 / 결과 형태 = 3종 세트. 이 챕터의 연습은 답을 AI에 직접 던지는 게 핵심입니다. 눈으로 외운 3가지는 금방 흐려지지만, 직접 프롬프트를 짜고 AI의 결과로 검증해본 3가지는 손에 남습니다.

문제3문제 (도전 1 포함)권장 소요20분사용 DBshop 5테이블도구AI (ChatGPT/Claude) + DBeaver

이번 연습의 위치

섹션 3~4 SQL 문법·모델링

완료 ✓

5-1 AI에게 줘야 할 3가지

강의 완료 ✓

5-1 연습 문제

지금 여기

5-2 ERD 전달 포맷

ERD를 프롬프트로

5-5 라이브 시연

섹션 5 마무리 ⭐

AI 과외 선생님 활용법

2-4에서 만든 AI 과외 선생님 세션을 그대로 쓰세요. 막히면 정답이 아니라 힌트만 요청하고 — 다 푼 뒤에는 본인이 만든 프롬프트와 SQL을 던지며 “내 답이 맞는지 검증해줘” 라고 물어보세요. 이 챕터의 연습은 답을 AI에 직접 던지고, AI의 결과로 검증하는 것이 핵심입니다.

문제 1. 3가지 누락 찾기

다음 프롬프트에는 3가지 중 무엇이 빠져있나요? 어떤 문제가 일어날지 예측하세요.

프롬프트 A:
"shop DB 에서 회원별 매출 뽑아줘"
프롬프트 B:
"members, orders, order_items, products 테이블이 있어. 매출 보여줘"
프롬프트 C:
"[스키마]
- members: member_id PK, name, gender, age
- orders: order_id PK, member_id FK
- order_items: order_id FK, product_id FK, quantity
- products: product_id PK, name, price

회원별 총 매출을 매출 많은 순으로 뽑아줘."
정답 보기
프롬프트빠진 것예상 문제
A3가지 모두 빠짐 (스키마·샘플·결과)AI 가 “shop DB” 가 뭔지 모름. 모든 것 추측. 결과 신뢰도 0
B샘플 데이터 + 컬럼 정보 + 결과 형태 빠짐 (테이블명만 있음)AI 가 컬럼 추측. 잘못된 컬럼명으로 SQL 짤 위험
C샘플 데이터 빠짐gender 가 ‘M/F’ 인지 ‘남/여’ 인지 추측. price 단위(원/달러) 추측. 가능하면 “가격이 100이라는 게 100원? 100달러?” 같은 AI 의 되묻기 발생
✓ 규칙

3가지 다 채워야 첫 시도에서 정확한 SQL 이 나옵니다. 안 채우면 — AI 가 추측 → 검증 → 다시 시키기 사이클 반복.

문제 2. 모범 프롬프트 작성

다음 요구사항을 받았을 때 — 3가지 종합 프롬프트 를 본인 손으로 작성해보세요.

[요구사항]
"의류 카테고리 (category_id=1) 상품들 중 — 5만원 이상인 상품들의 — 총 판매 수량을 상품명과 함께 보여줘. 수량 많은 순으로."
힌트

shop DB 의 스키마 사용. 샘플 데이터는 init.sql 의 실제 데이터 에서 적당히 골라 쓰면 됩니다.

모범 답안
[테이블 구조]
- products: product_id PK, product_name, price, category_id FK
- order_items: order_id FK, product_id FK, quantity
- (orders, categories 는 이 쿼리에 필요 없음 — 안 줘도 OK)

[부모-자식 관계]
- products 1:N order_items

[샘플 데이터]
products:
  1, 라운드 티셔츠, 19000, 1
  3, 후드 집업, 65000, 1
  8, 패딩 점퍼, 129000, 1
order_items:
  (1, 1, 1), (7, 1, 2), (15, 1, 1)

[요구사항]
의류 카테고리(category_id=1) 의 5만원 이상 상품들의 — 총 판매 수량(SUM(quantity)).
- 출력: 상품명, 총수량
- 정렬: 수량 많은 순
- 필요한 테이블: products + order_items 만

핵심 관찰:

  • 필요한 테이블만 줌 (불필요한 categories, members 등은 생략 — 토큰 절약)
  • 부모-자식 1 쌍만 언급
  • 샘플 데이터 4-5 행으로 충분
  • 결과 형태 명시 (출력 컬럼 + 정렬)

이 프롬프트를 ChatGPT 에 던지면 다음과 비슷한 SQL 이 나옵니다:

SELECT
  p.product_name,
  SUM(oi.quantity) AS 총수량
FROM
  products p
JOIN order_items oi
  ON p.product_id = oi.product_id
WHERE
  p.category_id = 1 AND p.price >= 50000
GROUP BY
  p.product_id,
  p.product_name
ORDER BY
  총수량 DESC;

이 SQL 을 shop DB 에서 실행하면:

DBeaver — 모범 답안 SQL 실행 결과
SELECT p.product_name, SUM(oi.quantity) AS 총수량 FROM products p JOIN order_items oi ON p.product_id = oi.product_id WHERE p.category_id = 1 AND p.price >= 50000 GROUP BY p.product_id, p.product_name ORDER BY 총수량 DESC;
product_name총수량
패딩 점퍼5
카디건3
후드 집업(65,000원)은 판매 기록이 없어 JOIN 결과에서 빠짐
2 rows fetched — shop DB 실제 데이터 기준

문제 3 (도전). 실제 AI 시연

문제 2 에서 만든 본인 프롬프트를 — 실제 ChatGPT 또는 Claude 에 던지고 SQL 결과를 받아오세요. 그 다음:

AI 에 프롬프트 전송01 / 04

실제 ChatGPT 또는 Claude 에 던지고 — SQL 결과를 받아오세요.

문제 2의 본인 프롬프트를 그대로 던지기
DBeaver 에서 실행02 / 04

결과가 의미있게 나오는지 확인.

받은 SQL을 shop DB에서 실행
본인이 평가03 / 04

AI 가 만든 SQL 의 어디가 좋은지 / 어디가 부족한지본인이 평가.

좋은 점 / 부족한 점을 직접 적어보기
후속 프롬프트로 보완04 / 04

예: “이 결과의 수량이 정확한지 — JOIN 뻥튀기는 없는지 검산해줘”

부족하다면 보완 요청
가이드

이 문제는 “정답” 이 없습니다. AI 마다 / 시점마다 결과가 살짝 다릅니다. 평가 기준:

✓ 좋은 SQL 의 신호

최소 JOIN + 명시적 조건

  • 필요한 테이블만 JOIN
  • WHERE 절에 두 조건 (category_id=1 AND price>=50000)

  • GROUP BY 가 product_id 또는 (product_id, product_name) 로 명시

  • ORDER BY 가 별칭 총수량 으로 깔끔

✕ 부족할 수 있는 곳

과한 JOIN · 어설픈 GROUP BY

  • 필요 없는 테이블까지 JOIN (예: members, orders, categories 까지 — 토큰 / 성능 낭비)

  • GROUP BY 에 product_name 만 (product_id 누락 — 동일 상품명 있으면 합쳐짐)

  • 별칭 누락 (한글로 나오지 않음)

보완 프롬프트 예시:

방금 만든 SQL 의 JOIN 깊이는 — 진짜 필요한 수준인가?
order_items 까지만 JOIN 해도 되지 않나? 더 최소한의 JOIN 으로 다시 짜줘.
✓ 핵심 인사이트

이런 “보완 사이클” 이 — 실무 AI 협업의 진짜 모습. 한 번에 완벽한 답 받으려 하지 말고, 2-3 번 주고받기 가 정상입니다.

스키마·샘플 데이터·결과 형태 — 3종 세트를 손으로 직접 채워봤다면, 다음은 그중 첫 번째인 스키마를 ERD 통째로 전달하는 포맷을 배울 차례입니다.

NEXT LESSON5-2 ERD 전달 포맷

테이블 구조를 매번 손으로 적는 대신 — ERD를 통째로 AI에게 전달하는 포맷을 배웁니다.

GO ▸ 다음 강의 시작하기