사기 탐지 시나리오
샘플 데이터를 활용하여 카드 사기 거래를 분석하는 시나리오를 안내합니다.

사전 준비
- 샘플 데이터가 적재되어 있어야 합니다 (
make seed-demo) iceberg.card.transactions와iceberg.card.fraud_labels테이블이 필요합니다
1단계: 사기 라벨 현황 파악
전체 사기 라벨 분포를 확인합니다. 전체 거래의 약 1%가 사기 의심 대상이며, 그중 80%가 실제 사기입니다.
SELECT
fraud_type,
investigation_status,
COUNT(*) AS cnt,
ROUND(AVG(confidence_score), 3) AS avg_confidence
FROM iceberg.card.fraud_labels
GROUP BY fraud_type, investigation_status
ORDER BY cnt DESC;
2단계: MCC 코드별 사기 비율 분석
어떤 업종에서 사기가 많이 발생하는지 확인합니다.
SELECT
t.mcc_code,
COUNT(*) AS total_txn,
SUM(CASE WHEN f.is_fraud = true THEN 1 ELSE 0 END) AS confirmed_fraud,
ROUND(
CAST(SUM(CASE WHEN f.is_fraud = true THEN 1 ELSE 0 END) AS DOUBLE)
/ NULLIF(COUNT(*), 0) * 100, 2
) AS fraud_rate_pct
FROM iceberg.card.transactions t
LEFT JOIN iceberg.card.fraud_labels f ON t.txn_id = f.txn_id
GROUP BY t.mcc_code
HAVING COUNT(*) >= 100
ORDER BY fraud_rate_pct DESC
LIMIT 10;
3단계: 고액 사기 거래 상세 조회
확신도(confidence_score) 0.9 이상인 고액 사기 거래를 Federation JOIN으로 조회합니다.
SELECT
c.name, c.phone,
t.amount, t.channel, t.country,
f.fraud_type, f.confidence_score
FROM iceberg.card.transactions t
JOIN sourcedb.public.customers c ON t.customer_id = c.customer_id
JOIN iceberg.card.fraud_labels f ON t.txn_id = f.txn_id
WHERE f.is_fraud = true AND f.confidence_score >= 0.9
ORDER BY t.amount DESC
LIMIT 20;
노트
PII 마스킹 정책이 활성화되어 있으면 name과 phone이 마스킹되어 표시됩니다.
4단계: 채널별 사기 패턴
온라인/모바일 채널에서의 사기 비율을 분석합니다.
SELECT
t.channel,
COUNT(*) AS total,
SUM(CASE WHEN f.is_fraud = true THEN 1 ELSE 0 END) AS fraud_count,
ROUND(
CAST(SUM(CASE WHEN f.is_fraud = true THEN 1 ELSE 0 END) AS DOUBLE)
/ COUNT(*) * 100, 2
) AS fraud_rate_pct
FROM iceberg.card.transactions t
LEFT JOIN iceberg.card.fraud_labels f ON t.txn_id = f.txn_id
GROUP BY t.channel
ORDER BY fraud_rate_pct DESC;
5단계: 고객 상담과 연계
사기 신고 상담 기록과 실제 사기 라벨을 비교 분석합니다.
SELECT COUNT(*) AS fraud_consultations
FROM card_crm.public.consultations
WHERE category = 'fraud_report';
AI Agent Chat으로 수행하기
위의 모든 단계를 AI Agent Chat에서 자연어로 수행할 수 있습니다. 각 페이지 상단의 AI에게 요청 버튼을 클릭하면 현재 화면을 유지하면서 우측에 AI 채팅 패널이 열립니다.

대화 예시
사용자: "iceberg 카탈로그에서 fraud 관련 테이블 찾아줘"
AI: [list_tables 호출] → iceberg.card 스키마에 fraud_labels 테이블이 있습니다. 컬럼: txn_id, is_fraud, fraud_type, confidence_score, investigation_status.
사용자: "card_transactions 테이블에서 fraud_label이 1인 건수 알려줘"
AI: [execute_query 호출] → fraud_labels에서 is_fraud = true인 건수를 조회합니다. 총 247건의 확인된 사기 거래가 있습니다.
사용자: "사기 거래의 평균 금액과 정상 거래의 평균 금액 비교해줘"
AI: [execute_query 호출] → transactions와 fraud_labels를 JOIN하여 비교합니다. 사기 거래 평균: ₩892,340, 정상 거래 평균: ₩156,780. 사기 거래가 약 5.7배 높습니다.
팁
AI Agent Chat은 44개 플랫폼 도구를 활용하여 데이터 탐색, SQL 생성, 거버넌스 조회 등을 자동으로 수행합니다. 자세한 내용은 AI Agent Chat 가이드를 참조하세요.