본문으로 건너뛰기

부서별 데이터 분석

각 부서(마케팅, 재무, HR)의 담당자가 GenD 플랫폼에서 자신에게 허용된 데이터를 분석하는 실전 시나리오를 안내합니다.

아래는 부서 스코프가 걸린 analyst 계정이 보는 카탈로그입니다. 같은 화면을 admin 이 열면 권한별 접근 비교 의 전체 뷰처럼 카탈로그가 훨씬 많이 보입니다 — 이 차이가 워크스페이스 + DataGrant 가 만들어내는 격리입니다.

부서 스코프 계정이 보는 카탈로그 트리 (전체 뷰보다 적다)

:::note 부서 이름은 예시입니다 이 문서의 marketing / finance / hr설명용 시나리오 이름이며, 실제 배포에 그 이름의 그룹이 있어야 한다는 뜻은 아닙니다. GenD 의 격리 단위는 워크스페이스(/tenants/<slug>) 이고, 부서 구분은 그 안에서 DataGrant 로 표현합니다. 위 캡처도 실제 운영 워크스페이스 스코프 계정으로 찍은 것입니다. :::

사전 준비

  • 샘플 데이터가 적재되어 있어야 합니다 (make seed-demo)
  • 부서에 대응하는 워크스페이스(/tenants/<slug>) 와 소속 계정이 있어야 합니다
  • 각 부서 범위에 맞는 DataGrant 가 부여되어 있어야 합니다

부서별 데이터 접근 범위

부서접근 카탈로그주요 테이블주요 업무
마케팅card_crm, iceberg.cardcustomer_segments, marketing_consents, transactions고객 세그먼트, 캠페인 분석
재무sourcedb, iceberg.card, card_logcredit_assessments, transactions, app_events신용 평가, 비용 모니터링
HRsourcedb.public.customerscustomers직원/고객 인사 데이터 (PII 마스킹)

Gold 마트부터 시작하기 (분석가 권장)

분석 작업의 첫 진입점은 항상 Medallion Gold 계층입니다. Gold 테이블은 비즈니스 집계·PII 마스킹·스키마 통일이 모두 끝난 상태이므로 안전하게 직접 쿼리할 수 있습니다.

  1. 카탈로그 트리에서 테이블을 클릭해 상세 패널을 열고, 헤더에 노란색 Gold 배지가 있는지 확인합니다.
  2. About 패널의 Medallion: Gold 행이 보이면 분석 안전. Bronze(갈색)/Silver(회색) 배지면 PII 노출 가능성·미정제 상태이니 데이터 엔지니어에 문의 후 사용합니다.
  3. 분석 마트를 더 빠르게 찾으려면 데이터 마트 메뉴의 목록 화면에서 Gold 배지 행만 골라봅니다.
-- Gold 계층 분석 마트 예시 (시드 데이터)
SELECT * FROM iceberg.datax_analytics.store_sales_summary LIMIT 10;
SELECT * FROM iceberg.datax_analytics.catalog_sales_ranking LIMIT 10;

Bronze/Silver/Gold가 익숙하지 않다면 Medallion 데이터 레이어를 먼저 1분만 읽어보세요.


시나리오 A: 마케팅 부서 — 고객 세그먼트 분석

"우리 고객 중 이탈 위험이 높은 세그먼트는 어디인가?"

A-1. 카탈로그 접근 확인

마케팅 부서 사용자로 로그인하면, DataGrant에 의해 card_crmiceberg.card만 카탈로그 트리에 표시됩니다.

카탈로그 트리:
├── card_crm
│ └── public
│ ├── consultations
│ ├── customer_segments
│ └── marketing_consents
└── iceberg
└── card
├── transactions
├── merchants
└── products

A-2. 고객 세그먼트별 현황 분석

SQL 에디터에서 고객 세그먼트 분포를 확인합니다.

SELECT
segment_name,
COUNT(*) AS customer_count,
ROUND(AVG(lifetime_value), 0) AS avg_ltv,
ROUND(AVG(churn_probability), 3) AS avg_churn_prob
FROM card_crm.public.customer_segments
GROUP BY segment_name
ORDER BY customer_count DESC;

예상 결과:

segment_namecustomer_countavg_ltvavg_churn_prob
high_value20,000850,0000.05
at_risk15,000320,0000.45
new25,000180,0000.15
dormant18,00095,0000.72
churned22,00050,0000.95

A-3. 이탈 위험 고객의 거래 패턴

이탈 확률 50% 이상인 고객의 최근 거래 패턴을 분석합니다.

SELECT
cs.segment_name,
t.channel,
COUNT(*) AS txn_count,
ROUND(AVG(t.amount), 0) AS avg_amount,
ROUND(SUM(t.amount), 0) AS total_amount
FROM card_crm.public.customer_segments cs
JOIN iceberg.card.transactions t
ON cs.customer_id = t.customer_id
WHERE cs.churn_probability >= 0.5
GROUP BY cs.segment_name, t.channel
ORDER BY total_amount DESC
LIMIT 10;
Federation SQL

card_crm(PostgreSQL)과 iceberg(Iceberg) 카탈로그를 자동으로 Federation JOIN합니다.

A-4. 마케팅 동의 현황

캠페인 발송 전, 마케팅 동의 현황을 확인합니다.

SELECT
consent_type,
consent_status,
COUNT(*) AS cnt
FROM card_crm.public.marketing_consents
GROUP BY consent_type, consent_status
ORDER BY consent_type, consent_status;

시나리오 B: 재무 부서 — 신용 평가 분석

"신용등급별 연체율과 DTI 분포를 파악하라"

B-1. 카탈로그 접근 확인

재무 부서 사용자는 sourcedb, iceberg.card, card_log에 접근할 수 있습니다.

B-2. 신용등급별 연체 현황

SQL 에디터 — 신용 분석

SELECT
ca.risk_grade,
COUNT(*) AS assessment_count,
ROUND(AVG(ca.credit_score), 0) AS avg_score,
ROUND(AVG(ca.dti_ratio), 3) AS avg_dti,
SUM(CASE WHEN ca.is_delinquent = true THEN 1 ELSE 0 END) AS delinquent_count,
ROUND(
CAST(SUM(CASE WHEN ca.is_delinquent = true THEN 1 ELSE 0 END) AS DOUBLE)
/ NULLIF(COUNT(*), 0) * 100, 2
) AS delinquency_rate_pct
FROM sourcedb.public.credit_assessments ca
GROUP BY ca.risk_grade
ORDER BY ca.risk_grade;

예상 결과:

risk_gradeassessment_countavg_scoreavg_dtidelinquent_countdelinquency_rate_pct
A40,0007800.252000.50
B60,0006800.351,8003.00
C50,0005800.455,00010.00
D30,0004800.556,00020.00
E20,0003800.658,00040.00

B-3. 고위험 고객의 거래 패턴

D/E 등급 고객의 고액 거래를 모니터링합니다.

SELECT
c.name,
ca.risk_grade,
ca.credit_score,
t.amount,
t.channel,
t.txn_datetime
FROM sourcedb.public.credit_assessments ca
JOIN sourcedb.public.customers c ON ca.customer_id = c.customer_id
JOIN iceberg.card.transactions t ON ca.customer_id = t.customer_id
WHERE ca.risk_grade IN ('D', 'E')
AND t.amount >= 500000
ORDER BY t.amount DESC
LIMIT 20;
노트

PII 마스킹 정책이 활성화되어 있으면 name 컬럼이 해시 마스킹되어 표시됩니다.

B-4. 비용 대시보드 확인

비용 대시보드

사이드바 하단 ⚙ 관리 콘솔 → 운영 & 모니터링 → 비용 대시보드 메뉴에서 쿼리 비용을 모니터링합니다. 부서별 쿼리 사용량과 스캔 바이트 통계를 확인할 수 있습니다.


시나리오 C: HR 부서 — 인사 데이터 조회

"고객/직원 데이터를 PII 마스킹이 적용된 상태로 조회"

C-1. 제한된 접근 범위

HR 부서 사용자는 sourcedb.public.customers 테이블에만 접근할 수 있으며, 다음 정책이 적용됩니다:

정책유형효과
hr_active_onlyRow Filter활성 고객만 표시 (is_active = true)
hr_mask_incomeColumn Mask연소득 비공개 처리

C-2. PII 마스킹 적용 상태 확인

PII 관리 페이지

사이드바 하단 ⚙ 관리 콘솔 → 접근 제어 & 보안 → PII 관리 페이지에서 마스킹 정책이 올바르게 설정되어 있는지 확인합니다.

C-3. 마스킹된 데이터 조회

SELECT
customer_id,
name,
phone,
email,
annual_income,
credit_score
FROM sourcedb.public.customers
WHERE is_active = true
LIMIT 10;

HR 사용자에게 표시되는 결과 (마스킹 적용):

customer_idnamephoneemailannual_incomecredit_score
C001a3f2b1...010-****-1234k***@g***.com비공개750
C002b7e4c3...010-****-5678l***@n***.com비공개680

name은 해시 마스킹, phone/email은 부분 마스킹, annual_income은 비공개 처리됩니다. Row Filter에 의해 is_active = false인 비활성 고객은 결과에 포함되지 않습니다.


데이터 품질 확인

각 부서의 데이터를 분석하기 전, 사이드바 → 거버넌스 → 데이터 품질 페이지에서 데이터 품질 점수를 확인하는 것을 권장합니다.

데이터 품질 대시보드

4축 품질 점수:

  • 완전성(Completeness): NULL 비율
  • 유일성(Uniqueness): 중복 비율
  • 최신성(Freshness): 마지막 업데이트 시간
  • 일관성(Consistency): 참조 정합성

AI Agent Chat으로 수행하기

위의 모든 분석을 AI Agent Chat에서 자연어로 수행할 수 있습니다. 각 페이지 상단의 AI에게 요청 버튼을 클릭하면 현재 화면을 유지하면서 우측에 AI 채팅 패널이 열립니다.

마케팅 부서 대화 예시

사용자: "이탈 위험 고객 세그먼트별 거래 패턴 보여줘"
AI: [execute_query 호출] → at_risk 세그먼트의 온라인 채널 이용률이
전체 평균보다 30% 낮습니다. 모바일 앱 활성화 캠페인을 추천합니다.

재무 부서 대화 예시

사용자: "D등급 이상 고객의 50만원 이상 거래 건수 추이를 보여줘"
AI: [execute_query 호출] → 최근 3개월간 D/E등급 고액 거래가 15% 증가했습니다.
리스크 관리팀 검토를 권장합니다.