에필로그 — SQL을 AI 프롬프트로
에필로그 — SQL을 AI 프롬프트로
6원칙을 알면 Claude와 함께 훨씬 멀리 갈 수 있다.
김민서 사원
팀장님, 6원칙은 이제 혼자 쓸 수 있을 것 같아요. 근데 대시보드는... 코딩을 해야 하는 거 아닌가요?
박지수 팀장
아니에요. SQL로 데이터를 꺼내면 Claude가 시각화까지 해줘요. 민서씨가 할 일은 딱 두 가지예요. SQL로 데이터 꺼내기, Claude에게 잘 설명하기.
이 챕터는 두 가지를 다룹니다.
- SQL 쿼리를 Claude 프롬프트로 바꾸는 법
- Claude가 만든 결과를 검토하는 법
SQL과 Claude의 역할 분담
-
내가 할 일
- SQL로 데이터 꺼내기
- 결과 표 확인하기
- 프롬프트 작성하기
- 결과 검토하기
-
Claude가 할 일
- 데이터를 시각화하기
- 차트, 대시보드 만들기
- 코드 생성하기
- 수정 요청에 응답하기
SQL로 꺼낸 데이터는 표 형태입니다. 이 표를 Claude에게 넘기면 막대그래프, 선 그래프, 대시보드로 만들어줍니다.
중요한 것은 SQL 원리를 알아야 Claude의 결과를 검토할 수 있다는 점입니다. SQL을 모르면 Claude가 틀린 쿼리를 줘도 알아차리지 못합니다.
좋은 프롬프트의 구조
Claude에게 요청할 때 세 가지를 포함하면 훨씬 정확한 결과가 나옵니다.
- 내가 가진 데이터 설명 → 어떤 테이블에 어떤 열이 있는지
- 원하는 결과 → 어떤 분석인지, 어떤 형태로
- 조건이나 제약 → 기간, 범위, 예외 등
막연하게 "분석해줘"보다 구체적으로 "이 열로, 이렇게, 이 조건으로"라고 요청할수록 원하는 결과에 가까워집니다.
실전 1 — SQL 쿼리 만들어달라고 하기
SQL을 배웠지만 복잡한 쿼리가 막힐 때는 Claude에게 도움을 요청합니다.
프롬프트 예시
아래 테이블 구조로 SQL 쿼리를 작성해줘.
테이블: 판매정보 열: 판매ID, 고객ID, 상품명, 카테고리, 수량, 단가, 할인율, 판매일 조건:
- 상품명별 총판매금액과 판매건수를 구해줘
- 총판매금액이 높은 순서로 정렬해줘
- 사용하는 DB는 MySQL이야
Claude 출력 예시
SELECT 상품명,
COUNT(*) AS 판매건수,
SUM(단가) AS 총판매금액
FROM 판매정보
GROUP BY 상품명
ORDER BY 총판매금액 DESC;
이제 이 코드가 읽힙니다. SELECT, GROUP BY, ORDER BY — 전부 이 책에서 배운 것들입니다. 읽히지 않는다면 해당 챕터로 돌아가 다시 확인합니다.
⚠ Claude가 만든 SQL을 그대로 쓰면 안 되는 이유
Claude는 당신의 실제 테이블을 모릅니다. 열 이름이 조금만 달라도 에러가 납니다.
반드시 이것을 확인하세요.
- 테이블 이름이 맞는지
- 열 이름이 실제 테이블과 일치하는지
- 조건이 의도한 대로 작성됐는지
SQL 원리를 알면 3초 안에 확인할 수 있습니다.
실전 2 — 데이터를 넘기고 시각화 요청하기
STEP 1 SQL로 데이터 꺼내기
SELECT 상품명,
COUNT(*) AS 판매건수,
SUM(단가) AS 총판매금액
FROM 판매정보
GROUP BY 상품명
ORDER BY 총판매금액 DESC;
실행 결과
| 상품명 | 판매건수 | 총판매금액 |
|---|---|---|
| 노트북 Pro | 2 | 3,000,000 |
| 노트북 Air | 2 | 2,400,000 |
| 모니터 32인치 | 1 | 550,000 |
| 모니터 27인치 | 1 | 350,000 |
| 무선 키보드 | 2 | 90,000 |
| 웹캠 HD | 1 | 89,000 |
| 마우스 패드 | 2 | 30,000 |
| USB 허브 | 1 | 25,000 |
STEP 2 Claude에게 프롬프트 작성
아래는 상품명별 판매 데이터야.
상품명 | 판매건수 | 총판매금액
노트북 Pro | 2 | 3000000
노트북 Air | 2 | 2400000
모니터 32인치 | 1 | 550000
모니터 27인치 | 1 | 350000
무선 키보드 | 2 | 90000
웹캠 HD | 1 | 89000
마우스 패드 | 2 | 30000
USB 허브 | 1 | 25000
이 데이터로 다음을 만들어줘.
- 총판매금액을 막대그래프로 시각화
- 판매건수는 막대 위에 숫자로 표시
- 색상은 상품마다 다르게
- HTML 파일로 만들어줘
STEP 3 Claude가 만든 결과 확인
Claude가 HTML 코드를 줍니다. 브라우저에서 열면 차트가 나옵니다.
마음에 들지 않는 부분은 추가로 요청합니다.
- 색상을 카페 느낌으로 바꿔줘.
- 제목을 "상품명별 판매 현황"으로 추가해줘.
실전 3 — 월별 매출 대시보드 만들기
프롤로그에서 봤던 월별 분석을 대시보드로 만드는 전체 과정입니다.
STEP 1 SQL로 월별 데이터 꺼내기
SELECT DATE_FORMAT(판매일, '%Y-%m') AS 월,
COUNT(*) AS 주문건수,
SUM(단가) AS 총매출,
AVG(단가) AS 평균단가
FROM 판매정보
WHERE 판매일 IS NOT NULL
GROUP BY DATE_FORMAT(판매일, '%Y-%m')
ORDER BY 월;
DATE_FORMAT은 날짜를 원하는 형태로 바꾸는 함수입니다. '%Y-%m'은 연도-월 형태(예: 2024-01)를 뜻합니다. 이 함수 하나만 알면 월별 집계를 바로 할 수 있습니다.
STEP 2 Claude에게 대시보드 요청
아래는 월별 매출 데이터야.
월 | 주문건수 | 총매출 | 평균단가
2024-01 | 2 | 1545000 | 772500
2024-02 | 2 | 365000 | 182500
2024-03 | 5 | 3310000 | 662000
2024-04 | 2 | 1289000 | 644500
이 데이터로 월별 매출 대시보드를 만들어줘.
요구사항:
- 총매출은 막대그래프
- 주문건수는 꺾은선그래프로 같이 표시
- 카드 형태로 총매출 합계, 평균 주문금액 표시
- 깔끔한 디자인, HTML 파일로 출력
STEP 3 추가 요청으로 다듬기
처음 결과가 마음에 들지 않으면 구체적으로 요청합니다.
- 색상을 블루 계열로 변경
- 월 이름을 1월, 2월로 바꿔줘
- 총매출 단위를 만 원으로 표시
한 번에 완성할 필요 없습니다. 요청 → 확인 → 수정 요청을 반복하면 됩니다.
Claude 활용 시 검토 체크리스트
Claude가 만든 SQL을 받았을 때
- 테이블 이름이 실제와 일치하는가
- 열 이름이 실제 테이블과 일치하는가
-
SELECT에 쓴 열이GROUP BY에도 있는가 -
WHERE조건이 내가 원한 대로인가 -
HAVING이 필요한 상황에WHERE를 쓰지 않았는가 - 직접 실행해서 결과가 예상 범위 안에 있는가
시각화 결과를 받았을 때
- 숫자가 SQL 결과와 일치하는가
- 축 레이블이 올바른가
- 색상과 레이아웃이 용도에 맞는가
- 보는 사람이 바로 이해할 수 있는가
SQL 원리를 알면 AI를 더 잘 쓸 수 있다
많은 분들이 이런 생각을 합니다.
"어차피 Claude가 다 해주는데 SQL을 왜 배워야 하나?"
이유는 세 가지입니다.
-
원하는 것을 정확히 요청할 수 있습니다.
- SQL 원리를 모르면 요청 자체가 모호해집니다.
- "상품별로 분석해줘"보다 "상품명별로 GROUP BY 해서 SUM과 COUNT를 구해줘"가 훨씬 정확합니다.
-
틀린 결과를 알아챌 수 있습니다.
- Claude도 실수를 합니다.
WHERE와HAVING을 혼동하거나, 잘못된 열 이름을 쓰기도 합니다.- SQL 원리를 알면 결과를 보자마자 뭔가 이상한지 감이 옵니다.
-
수정 요청을 정확히 할 수 있습니다.
- "이게 이상한데요"보다 "HAVING 조건이 잘못된 것 같아요, SUM(단가) >= 500000으로 바꿔줘"가 훨씬 빠르게 원하는 결과를 얻습니다.
SQL은 AI를 쓸 때도 핵심 언어입니다.
김민서 사원 : 팀장님, SQL로 데이터 꺼내고 Claude한테 넘기니까 대시보드가 됐어요. 생각보다 훨씬 빠른데요?
박지수 팀장 : 그게 이 조합의 힘이에요. SQL은 데이터를 정확하게 꺼내는 도구, Claude는 그걸 보기 좋게 만드는 도구. 민서씨가 둘 다 쓸 수 있게 됐으니까 이제 혼자서도 분석 보고서를 만들 수 있어요.
다음 단계
두 테이블을 합쳐서 분석하고 싶은데 그건 다음 책에서 배워요. 오늘 배운 6원칙이 탄탄하면 그 다음은 훨씬 빠르게 익힐 수 있어요.