Skip to main content

개요

Genie Code는 다양한 Databricks 제품 영역에서 AI 기반 코딩 지원을 제공합니다. 이 페이지에서는 주요 활용 시나리오별로 구체적인 대화 예시와 Genie Code의 동작을 상세히 설명합니다.

실무에서 가장 효과적인 사용 패턴 Top 5

수많은 활용 방법 중, 실무에서 투자 대비 효과(ROI)가 가장 높은 패턴을 먼저 정리합니다:
순위패턴예상 시간 절약왜 효과적인가
1Agent 모드 EDA수동 2시간 → 5분탐색적 분석은 반복적 코드 작성이 많아 자동화 효과가 극대화됨
2대시보드 자동 생성수동 4시간 → 15분SQL 작성 + 시각화 설정 + 레이아웃 구성을 한 번에 처리
3Diagnose Error로 디버깅수동 30분 → 2분스택 트레이스 분석과 해결책 제시를 즉시 수행
4SDP 파이프라인 생성수동 1일 → 30분Bronze-Silver-Gold 전체 구조를 표준 패턴으로 빠르게 생성
5코드 리뷰 + /optimize수동 1시간 → 10분성능 병목을 자동 식별하고 구체적 개선 코드 제안
참고 위 패턴들은 공통적으로 “반복적이고 패턴화된 작업” 에 해당합니다. AI가 가장 잘하는 영역이 바로 이런 패턴 기반 작업입니다. 반면, 비즈니스 로직 설계나 아키텍처 의사결정 같은 창의적 판단 은 여전히 사람의 영역입니다. Genie Code를 “코딩 작업을 대신하는 주니어 엔지니어”로 생각하면 기대치를 적절히 설정할 수 있습니다.

시나리오 1: 데이터 사이언스 (Notebooks)

Genie Code는 전문 ML 엔지니어처럼 동작하여 전체 ML 워크플로를 자동화합니다. 왜 이 접근인가: 데이터 사이언스 워크플로는 데이터 로드 → EDA → 피처 엔지니어링 → 모델 학습 → 평가라는 표준화된 단계 를 따릅니다. 이 단계마다 작성하는 코드의 패턴은 상당히 유사하며, Genie Code의 Agent 모드가 이 패턴을 이미 학습하고 있습니다. 특히 EDA는 어떤 데이터셋이든 비슷한 분석(결측치, 분포, 상관관계)을 반복하므로, Agent 모드의 자동화 효과가 가장 큰 영역입니다.

활용 예시: 고객 세그멘테이션 분석

사용자 프롬프트:
@customers 테이블에 대해 고객 세그멘테이션 분석을 수행해줘.
K-means 클러스터링을 사용하고 MLflow에 실험을 기록해줘.
Genie Code가 수행하는 작업 (Agent 모드):
단계작업생성되는 코드
1테이블 스키마 분석spark.table("customers").printSchema()
2EDA 수행결측치 분석, 분포 확인, 상관관계 히트맵
3피처 엔지니어링범주형 인코딩, 스케일링, 피처 선택
4최적 클러스터 수 결정Elbow method, Silhouette score
5모델 학습K-means 학습 + MLflow 실험 로깅
6결과 시각화클러스터별 분포, 특성 비교 차트
7인사이트 요약각 클러스터의 비즈니스 특성 설명

대화 흐름 예시

사용자: @customers 테이블에서 고객 이탈 예측 모델을 만들어줘.
       target 컬럼은 'churned'야.

Genie: 고객 이탈 예측 모델을 구축하겠습니다.
       [계획]
       1. 데이터 로드 및 EDA
       2. 피처 엔지니어링
       3. 학습/테스트 데이터 분리
       4. 여러 모델 학습 (LogisticRegression, RandomForest, XGBoost)
       5. 모델 비교 및 최적 모델 선택
       6. MLflow에 실험 로깅

       실행을 시작합니다...

       [셀 1] 데이터 로드 — 50,000행, 23개 컬럼 확인
       [셀 2] EDA — churned 비율: 18.3%, 클래스 불균형 발견
       [셀 3] 피처 엔지니어링 — 15개 피처 선택, SMOTE로 오버샘플링
       [셀 4] 모델 학습 결과:
         - LogisticRegression: AUC 0.82
         - RandomForest: AUC 0.89
         - XGBoost: AUC 0.91 ← 최적
       [셀 5] XGBoost 모델을 MLflow에 등록했습니다.

사용자: 피처 중요도를 시각화해줘.

Genie: XGBoost 모델의 피처 중요도 차트를 생성합니다...
       [차트] 상위 10개 피처: contract_length, monthly_charges, tenure...
@테이블명 구문으로 Unity Catalog 테이블을 직접 참조하면, Genie Code가 스키마 정보를 자동으로 로드하여 더 정확한 코드를 생성합니다.

시나리오 2: 데이터 엔지니어링 (Lakeflow Pipelines)

ETL 워크로드를 자동화하고 Lakeflow Spark Declarative Pipeline(SDP)을 구축합니다. 왜 이 접근인가: SDP(Spark Declarative Pipeline)는 선언적으로 데이터 파이프라인을 정의하는 Databricks 고유의 프레임워크입니다. 기존 ETL 코드를 수동으로 작성하면 에러 핸들링, 데이터 품질 검증, 메타데이터 관리 등 보일러플레이트 코드가 많습니다. Genie Code는 SDP의 데코레이터 패턴(@dlt.table, @dlt.expect_or_drop)을 이해하고, Bronze-Silver-Gold 구조를 표준 패턴으로 생성합니다. 수동으로 하루 걸릴 파이프라인 코드를 30분 만에 완성할 수 있는 이유입니다.

활용 예시: 주문 요약 파이프라인

사용자 프롬프트:
raw_orders와 raw_customers 테이블을 조인하여
daily_order_summary 테이블을 업데이트하는 SDP 파이프라인을 만들어줘.
데이터 품질 검증도 포함해줘.
Genie Code가 생성하는 파이프라인 구조:
레이어테이블설명
Bronzeraw_orders원본 주문 데이터 (Auto Loader)
Bronzeraw_customers원본 고객 데이터
Silvercleaned_orders데이터 품질 검증 후 정제된 주문
Golddaily_order_summary일별 주문 요약 (조인 + 집계)

대화 흐름 예시

사용자: raw_orders에서 daily_order_summary까지의 SDP 파이프라인을 만들어줘.

Genie: Lakeflow SDP 파이프라인을 생성하겠습니다.

       [생성된 코드]

       # Bronze 레이어: Auto Loader로 원본 데이터 수집
       @dlt.table(comment="원본 주문 데이터")
       def raw_orders():
           return spark.readStream.format("cloudFiles")...

       # Silver 레이어: 데이터 품질 검증
       @dlt.table(comment="정제된 주문 데이터")
       @dlt.expect_or_drop("valid_amount", "amount > 0")
       @dlt.expect_or_drop("valid_date", "order_date IS NOT NULL")
       def cleaned_orders():
           return dlt.read("raw_orders").join(...)

       # Gold 레이어: 일별 요약
       @dlt.table(comment="일별 주문 요약")
       def daily_order_summary():
           return dlt.read("cleaned_orders")
               .groupBy("order_date", "region")
               .agg(...)

사용자: 데이터 품질 규칙을 더 추가해줘. 주문 금액은 0보다 크고 100만 이하여야 해.

Genie: 데이터 품질 규칙을 업데이트합니다...
       @dlt.expect_or_drop("valid_amount_range", "amount > 0 AND amount <= 1000000")

시나리오 3: 분석 및 대시보드 (Dashboards)

데이터 자산을 탐색하고 프로덕션 수준 대시보드를 자동 생성합니다. 왜 이 접근인가: 대시보드 생성은 “SQL 작성 → 시각화 유형 선택 → 위젯 배치 → 필터 설정”이라는 반복적 과정입니다. 대부분의 대시보드 위젯은 KPI 카드, 시계열 추이, 카테고리별 비교, 랭킹 테이블 등 유한한 패턴 으로 구성됩니다. Genie Code의 Agent 모드는 데이터를 분석한 후 적절한 시각화 유형을 자동 선택하고, SQL과 레이아웃을 한 번에 생성합니다. 특히 “이 데이터로 경영진 보고용 대시보드를 만들어줘”처럼 목적을 명시 하면 대상에 맞는 시각화 수준을 조절합니다.

활용 예시: 영업 성과 대시보드

사용자 프롬프트:
@sales_data를 분석하고 월별 매출 추이, 지역별 성과,
상위 제품을 보여주는 대시보드를 만들어줘.
Genie Code가 생성하는 대시보드 구성:
위젯SQL 쿼리 유형시각화
월별 매출 추이시계열 집계 + LAG 함수로 전월 대비꺾은선 + 막대 복합 차트
지역별 매출 비교GROUP BY region + 비율 계산수평 막대 차트
상위 10 제품ORDER BY revenue DESC LIMIT 10테이블 + 조건부 서식
KPI 카드총 매출, 주문 수, 평균 객단가숫자 카드

SQL 최적화 예시

Genie Code는 대시보드 SQL을 자동으로 최적화합니다:
사용자: 이 대시보드 쿼리가 느려. 최적화해줘.

Genie: 쿼리를 분석한 결과, 다음 최적화를 적용합니다:

       1. 서브쿼리 → CTE(Common Table Expression)로 변환
       2. 불필요한 DISTINCT 제거
       3. WHERE 절에 파티션 프루닝 조건 추가
       4. 집계 전 필터링으로 처리 데이터량 감소

       예상 성능 개선: 쿼리 시간 70% 감소
참고 Agent 모드에서 대시보드를 생성하면, Genie Code가 데이터를 분석하고, SQL을 작성하고, 시각화 유형을 선택하고, 대시보드를 구성하는 전체 과정을 자동으로 수행 합니다.

시나리오 4: GenAI 앱 디버깅 (MLflow)

GenAI 애플리케이션의 성능을 분석하고, 문제를 진단하며, 개선 방안을 제시합니다. 왜 이 접근인가: GenAI 앱(특히 RAG 체인)의 디버깅은 전통적 소프트웨어와 다릅니다. “코드가 틀렸다”가 아니라 “응답 품질이 낮다”가 문제이며, 원인이 검색(Retrieval), 프롬프트, LLM 추론 중 어디인지 각 단계를 추적 해야 합니다. MLflow Tracing은 이 추적을 가능하게 하지만, Trace 데이터를 수동으로 분석하는 것은 매우 시간 소모적입니다. Genie Code는 Evaluation 결과에서 저품질 케이스를 자동 필터링하고, Trace를 분석하여 근본 원인을 분류해줍니다.

활용 예시: RAG 체인 디버깅

사용자 프롬프트:
이 RAG 체인의 evaluation 결과를 분석하고
응답 품질이 낮은 케이스를 식별해줘.
Genie Code가 수행하는 분석:
분석 단계내용출력
1. Evaluation 결과 로드MLflow experiment에서 평가 결과 조회테이블 형태의 결과 요약
2. 품질 지표 분석faithfulness, relevance, toxicity 점수 분포히스토그램, 박스플롯
3. 저품질 케이스 식별점수가 임계값 미만인 케이스 필터링문제 케이스 목록
4. Trace 분석저품질 케이스의 MLflow Trace 추적각 단계별 입출력 확인
5. 원인 분류검색 실패, 컨텍스트 부족, 환각 등 분류원인별 빈도 차트
6. 개선 제안원인별 해결 방안 제시우선순위별 액션 아이템

대화 흐름 예시

사용자: 이 RAG 체인에서 faithfulness 점수가 낮은 케이스를 분석해줘.

Genie: MLflow experiment에서 평가 결과를 로드합니다...

       전체 200개 테스트 중 faithfulness < 0.5인 케이스: 23개 (11.5%)

       원인 분류:
       - 검색된 문서가 질문과 무관: 12건 (52%)
       - 검색 결과는 맞지만 LLM이 환각: 7건 (30%)
       - 컨텍스트 길이 초과로 잘림: 4건 (18%)

       주요 개선 제안:
       1. 임베딩 모델 변경 (현재 e5-small → e5-large)
       2. 청크 크기 조정 (현재 500 → 300 토큰)
       3. Retrieval에 reranker 추가

사용자: 검색 실패 케이스의 trace를 자세히 보여줘.

Genie: 검색 실패 12건의 MLflow Trace를 분석합니다...

       [Trace 1] 질문: "반품 정책은?"
         → Retriever: "배송 정책" 문서 3개 반환 (관련성 0.3)
         → 원인: "반품"과 "배송"이 같은 임베딩 공간에 위치
         → 제안: 반품 관련 문서에 키워드 메타데이터 추가
주의 MLflow 관련 기능은 Chat 모드에서만 사용 가능합니다. 복잡한 분석이 필요하면 Notebook으로 이동하여 Agent 모드를 활용하세요.

GenAI 디버깅 시 효과적인 프롬프트 패턴

# 패턴 1: 전체 평가 결과 분석
"MLflow experiment '{experiment_name}'의 evaluation 결과를 분석해줘.
 각 평가 지표(faithfulness, relevance, toxicity)의 분포를 시각화하고,
 개선이 필요한 영역을 우선순위별로 정리해줘."

# 패턴 2: 특정 실패 케이스 심층 분석
"faithfulness 점수가 0.3 이하인 케이스를 모아서,
 각각의 MLflow Trace를 분석하고,
 실패 원인을 카테고리별로 분류해줘."

# 패턴 3: 개선 전후 비교
"실험 A와 실험 B의 evaluation 결과를 비교해줘.
 어떤 지표가 개선되었고, 어떤 케이스가 새로 실패했는지 분석해줘."

시나리오별 권장 모드

시나리오권장 모드이유
간단한 쿼리 작성Chat1회 응답으로 충분
코드 설명/학습Chat대화형 Q&A에 적합
EDA 수행Agent여러 셀을 자동 생성/실행
ML 파이프라인 구축Agent다단계 워크플로 자동화
대시보드 전체 생성AgentSQL + 시각화 + 레이아웃 자동 구성
SDP 파이프라인 생성AgentBronze-Silver-Gold 전체 구조 생성
코드 디버깅Chat 또는 Quick Fix특정 오류에 대한 즉시 대응
코드 최적화Chat (/optimize)기존 코드 분석 후 개선 제안

시나리오 5: 데이터 품질 관리 (Notebooks + Agent)

데이터 품질 점검과 이상 탐지를 자동화합니다. 프로덕션 테이블의 건강 상태를 주기적으로 모니터링하는 코드를 Genie Code로 빠르게 생성할 수 있습니다. 왜 이 접근인가: 데이터 품질은 모든 분석과 ML 모델의 기초입니다. 하지만 품질 점검 코드를 수동으로 작성하면, 각 테이블/컬럼마다 null 비율, 유니크 값, 범위 검증 등 반복적인 코드를 작성해야 합니다. Genie Code에 “@table EDA”를 요청하면 기본적인 품질 메트릭이 자동 생성되며, 여기에 비즈니스 규칙을 추가로 지정하면 맞춤형 품질 점검 코드를 얻을 수 있습니다.

대화 흐름 예시

사용자: @catalog.schema.orders 테이블의 데이터 품질을 종합적으로 점검해줘.
       null 비율, 중복 레코드, 날짜 유효성, 금액 범위를 체크하고,
       이상이 있으면 요약 보고서를 만들어줘.

Genie: 데이터 품질 점검을 시작합니다.

       [셀 1] 기본 통계 — 1,234,567행, 18컬럼, 최종 업데이트: 2시간 전
       [셀 2] Null 분석 — customer_email 12.3% null (경고), 나머지 정상
       [셀 3] 중복 분석 — order_id 기준 중복 0건 (정상)
       [셀 4] 날짜 유효성 — 미래 날짜 23건 발견 (경고)
       [셀 5] 금액 범위 — 음수 금액 5건, 1억 초과 2건 (경고)
       [셀 6] 품질 보고서:
         ✅ 정상: 중복 없음, 대부분 컬럼 null 비율 0%
         ⚠️ 경고: customer_email null 12.3%
         ❌ 이상: 미래 날짜 23건, 비정상 금액 7건

시나리오 6: 코드 마이그레이션 (Chat 모드)

Pandas/SAS/R 코드를 PySpark로 변환하거나, 레거시 SQL을 최신 Databricks SQL 구문으로 업그레이드합니다. 왜 이 접근인가: 많은 조직이 기존 온프레미스 환경(Hadoop, SAS, R)에서 Databricks로 마이그레이션하고 있습니다. 이때 가장 시간이 많이 걸리는 작업이 코드 변환입니다. Genie Code는 원본 코드의 로직을 이해하고 Databricks 환경에 최적화된 코드로 변환해줍니다. 단순 구문 변환뿐 아니라, 분산 처리에 맞는 최적화(예: pandas의 apply → PySpark의 UDF 대신 내장 함수 활용)까지 적용합니다.

대화 흐름 예시

사용자: 다음 pandas 코드를 PySpark로 변환해줘.
       분산 처리에 최적화된 방식으로 작성하고,
       pandas에서는 불필요했지만 PySpark에서 중요한
       파티셔닝이나 캐싱도 필요하면 추가해줘.

Genie: Pandas → PySpark 변환을 수행합니다.

       변환 시 적용한 최적화:
       1. df.apply() → PySpark 내장 함수(when, coalesce)로 대체
       2. merge() → broadcast join으로 변환 (작은 테이블 기준)
       3. groupby().agg() → PySpark의 groupBy().agg()로 변환
       4. 날짜 파티셔닝 추가 (dt 컬럼 기준)
       5. 중간 결과에 .cache() 추가 (3회 이상 참조)
코드 마이그레이션 시 Chat 모드가 더 적합합니다. Agent 모드는 코드를 자동 실행하는데, 마이그레이션 코드는 원본 환경과 데이터가 다를 수 있어 수동 검토 후 실행하는 것이 안전합니다.

지원되는 마이그레이션 경로

원본 환경대상Genie Code 지원 수준
Pandas→ PySparkDataFrame API 변환높음 — 대부분의 패턴 자동 변환 가능
SAS→ PySpark/SQL통계 프로시저 변환보통 — SAS 특유의 구문은 수동 검토 필요
R→ PySparktidyverse/dplyr 변환보통 — R 패키지 의존성은 수동 처리
레거시 SQL→ Databricks SQLANSI SQL 변환 + 최적화높음 — 방언 차이 자동 처리
Hive→ Unity Catalog테이블 DDL + 쿼리 변환높음 — 메타스토어 마이그레이션 패턴 숙지

시나리오별 성공을 위한 핵심 원칙

모든 시나리오에 공통으로 적용되는 실전 원칙입니다:
원칙설명예시
구체적인 목표 명시”분석해줘” 대신 “이상치를 식별하고 원인을 분류해줘”Agent가 계획을 수립할 때 명확한 완료 기준이 됨
@ 참조 적극 활용관련 테이블을 모두 @로 참조스키마 정보가 자동 로드되어 조인/필터 정확도 향상
중간 결과 확인Agent의 각 단계 출력을 확인하고 필요시 방향 수정”잘못된 방향이야, 대신 ~를 해줘”로 즉시 교정 가능
제약 조건 사전 명시코딩 컨벤션, 사용할 라이브러리, 출력 형태를 미리 지정결과물을 다시 수정하는 시간을 절약
반복적 개선한 번에 완벽한 결과를 기대하지 않고 대화로 점진 개선1차 결과 → 피드백 → 2차 결과 (보통 2-3회로 충분)