Skip to main content

개요

이 페이지에서는 Genie Code의 모든 기능을 상세히 설명합니다. 패널 열기부터 Chat/Agent 모드, 인라인 코드 제안, Quick Fix, Diagnose Error, Slash 명령어까지 실전 사용법을 다룹니다.
참고 Genie Code를 처음 사용하는 분이라면, 먼저 이 페이지를 통해 각 기능의 존재를 파악 한 뒤, 활용 시나리오에서 실전 적용 방법을 확인하는 순서를 권장합니다. 기능을 아는 것과 효과적으로 활용 하는 것은 다릅니다 — 이 페이지에서는 각 기능이 왜 유용한지 전문가 관점의 코멘트도 함께 제공합니다.

Genie Code 패널 열기

방법 1: Sparkle 아이콘

페이지 우측 상단의 Sparkle 아이콘(반짝이는 별 모양)을 클릭하면 Genie Code 패널이 열립니다. 화면 설명: Notebook, SQL Editor, Dashboard 편집 화면의 우측 상단에 보라색 반짝이 아이콘이 있습니다. 클릭하면 우측 또는 하단에 Genie Code 채팅 패널이 슬라이드로 나타납니다.

방법 2: 키보드 단축키

플랫폼단축키
macOSCmd + Shift + ;
Windows/LinuxCtrl + Shift + ;

방법 3: 셀 컨텍스트 메뉴

Notebook 셀에서 우클릭 → Ask Genie 를 선택하면 해당 셀의 코드를 컨텍스트로 포함하여 패널이 열립니다.

패널 레이아웃 설정

설정설명권장 사용
Side우측에 고정 (기본값)넓은 모니터에서 코드와 나란히 보기
Docked하단에 고정세로 화면이 넓은 경우
Floating드래그 앤 드롭으로 자유 배치멀티 모니터 환경
화면 설명: 패널 상단 좌측에 레이아웃 전환 아이콘이 있습니다. 클릭하면 Side/Docked/Floating 옵션이 나타납니다.

Chat 모드

Chat 모드는 사용자의 질문에 1회 응답 하는 기본 모드입니다.

자연어로 코드 생성

채팅 입력란에 자연어로 원하는 코드를 요청합니다:
"@sales_data 테이블에서 월별 매출 합계를 구하는 SQL을 작성해줘"
화면 설명: Genie Code가 SQL 코드 블록을 응답으로 표시합니다. 코드 블록 상단에 “Insert into cell”, “Copy”, “Run” 버튼이 나타납니다.

@ 참조로 컨텍스트 제공

@ 기호로 Unity Catalog 테이블, 뷰, 함수를 직접 참조할 수 있습니다:
참조 대상구문효과
테이블@catalog.schema.table스키마 정보를 컨텍스트에 포함
@catalog.schema.view뷰 정의를 컨텍스트에 포함
노트북 셀셀 선택 후 질문선택한 코드를 컨텍스트에 포함
@로 테이블을 참조하면 Genie Code가 컬럼명, 데이터 타입, 설명, 샘플 데이터 를 자동으로 로드합니다. “sales 테이블에서…”보다 “@catalog.schema.sales에서…”가 훨씬 정확한 결과를 줍니다.
전문가 관점 — @ 참조가 중요한 이유: LLM은 “customers 테이블”이라는 텍스트만으로는 어떤 컬럼이 있는지, 데이터 타입이 무엇인지 알 수 없습니다. @으로 참조하면 Genie Code가 Unity Catalog에서 실제 스키마 정보 를 가져와 프롬프트에 주입합니다. 이것이 일반 AI 코딩 도구와의 근본적 차이입니다. 여러 테이블을 조인하는 코드를 생성할 때는 반드시 모든 관련 테이블을 @로 참조하세요.

코드 설명 요청

기존 코드를 선택하고 설명을 요청할 수 있습니다:
"이 코드가 뭘 하는 건지 설명해줘"
"이 함수의 시간 복잡도는?"
"이 SQL에서 window function은 어떻게 동작해?"

디버깅

오류 메시지를 포함하여 디버깅을 요청합니다:
"이 오류를 수정해줘: AnalysisException: Column 'customer_id' does not exist"
"이 코드가 OOM 에러를 일으키는 이유를 분석해줘"

문서 기반 응답

Databricks 관련 기술 질문에 대해 공식 문서를 검색하여 답변합니다:
"Unity Catalog에서 row-level security는 어떻게 설정해?"
"Delta Lake의 OPTIMIZE와 VACUUM 차이는?"
화면 설명: 응답에 “Searched documentation” 단계가 표시되며, 참조한 문서의 제목이 나타납니다. “Show sources”를 클릭하면 원본 문서 링크를 확인할 수 있습니다.

Agent 모드

Agent 모드는 Genie Code가 자율적으로 계획을 수립하고 다단계 작업을 실행 하는 고급 모드입니다.

Agent 모드 활성화

채팅 입력란 좌측의 모드 전환 드롭다운에서 Agent 를 선택합니다. 화면 설명: 입력란 좌측에 “Chat” 드롭다운이 있으며, 클릭하면 “Chat”과 “Agent” 옵션이 나타납니다.

Agent 모드의 동작 방식

단계설명
1. 계획 수립사용자 요청을 분석하고 실행 계획을 수립
2. 자산 탐색Unity Catalog에서 관련 테이블/뷰 탐색
3. 코드 생성계획에 따라 노트북 셀 또는 대시보드 SQL 생성
4. 코드 실행생성한 코드를 자동으로 실행
5. 결과 확인실행 결과를 분석하고 다음 단계 결정
6. 오류 수정오류 발생 시 자동으로 원인 분석 및 수정
7. 반복모든 단계가 완료될 때까지 반복

Agent 모드 프롬프트 작성 팁

좋은 프롬프트나쁜 프롬프트이유
”@customers 테이블에 대해 EDA를 수행하고, 이상치를 식별하고, 인사이트를 요약해줘""데이터 분석해줘”구체적인 단계와 대상 명시
”raw_events를 읽어서 daily_metrics 테이블을 생성하는 SDP 파이프라인을 만들어줘. 데이터 품질 검증도 포함해""파이프라인 만들어”입력/출력과 요구사항 명시
”이 데이터로 경영진 보고용 대시보드를 만들어줘. KPI 카드, 추이 차트, 지역별 비교를 포함해""대시보드”위젯 구성과 용도 명시

프롬프트 작성 고급 노하우

Agent 모드에서 최대 효과를 얻기 위한 전문가 수준의 프롬프트 작성 기법입니다: 기법 1: 역할 부여 (Role Prompting)
"시니어 데이터 엔지니어로서, @raw_orders 테이블의 데이터 품질 이슈를
점검하고 개선 방안을 제시해줘. 특히 프로덕션 환경에서의 안정성을
최우선으로 고려해."
역할을 부여하면 Genie Code가 해당 관점에서 코드를 생성합니다. “시니어 데이터 엔지니어”라고 하면 에러 핸들링, 로깅, 성능 고려가 포함되고, “데이터 분석가”라고 하면 시각화와 인사이트 중심으로 응답합니다. 기법 2: 제약 조건 명시 (Constraints)
"@sales 테이블에서 월별 매출 분석을 해줘.
- PySpark DataFrame API만 사용 (pandas 변환 금지)
- 차트는 matplotlib 대신 plotly 사용
- 결과를 Delta 테이블로 저장
- 한국어 주석 포함"
제약 조건이 없으면 Genie Code가 자유롭게 선택합니다. 팀의 코딩 컨벤션이 있다면 반드시 명시하세요. 기법 3: 출력 형태 지정 (Output Specification)
"분석 결과를 다음 형태로 정리해줘:
1. 요약 마크다운 셀 (주요 발견사항 3줄)
2. 핵심 KPI 수치 (테이블)
3. 시각화 (추이 차트 + 분포 차트)
4. 다음 단계 제안"
출력 형태를 미리 지정하면, Agent가 불필요한 탐색 없이 목표에 맞게 작업합니다. 기법 4: 점진적 복잡도 증가 (Incremental Complexity) 복잡한 작업은 한 번에 요청하기보다, 대화를 통해 점진적으로 발전시키는 것이 효과적입니다:
[1단계] "@orders 테이블 구조를 파악하고 기본 통계를 보여줘"
[2단계] "이 데이터에서 이상치를 탐지해줘"
[3단계] "이상치를 제외하고 월별 추이를 분석해줘"
[4단계] "분석 결과를 대시보드로 만들어줘"
프롬프트 재사용 전략: 팀에서 자주 사용하는 프롬프트 패턴을 Custom Instructions에 등록하면, 매번 상세한 프롬프트를 작성할 필요가 없습니다. 예를 들어 “코드에는 항상 한국어 주석을 포함하고, PySpark API를 사용하며, MLflow에 실험을 기록하라”고 설정해 두면 모든 응답에 자동 반영됩니다.

MCP 도구 호출

Agent 모드에서는 MCP(Model Context Protocol) 서버에 등록된 외부 도구를 호출할 수 있습니다:
"Slack #data-team 채널에 이 분석 결과를 요약해서 보내줘"
"JIRA에 이 데이터 품질 이슈로 티켓을 생성해줘"
주의 Agent 모드는 코드를 자동으로 실행하므로, 프로덕션 데이터에 대한 쓰기 작업 을 요청할 때는 주의하세요. Agent가 계획을 표시하면 실행 전에 검토할 수 있습니다.

인라인 코드 제안 및 자동완성

코드를 작성하는 동안 Genie Code가 실시간으로 코드 제안을 제공합니다.

동작 방식

  1. 코드를 입력하면 회색 텍스트로 제안(ghost text) 이 나타납니다.
    • 화면 설명: 커서 위치 이후에 회색으로 제안 코드가 표시되며, 현재 작성 중인 코드의 맥락에 맞는 완성 코드를 제안합니다.
  2. Tab 키를 누르면 제안을 수락합니다.
  3. Esc 키를 누르면 제안을 무시합니다.
  4. 계속 타이핑하면 제안이 자동으로 업데이트됩니다.

지원 언어

언어지원 수준
Python전체 지원 (Notebook, 파이프라인)
SQL전체 지원 (SQL Editor, Notebook SQL 셀)
Scala기본 지원
R기본 지원
인라인 제안의 정확도를 높이려면 함수/변수에 의미 있는 이름 을 사용하세요. def f(x):보다 def calculate_monthly_revenue(sales_df):가 훨씬 정확한 제안을 생성합니다.

고급 활용: 인라인 제안 극대화 패턴

인라인 코드 제안을 극대화하려면 코드 작성 순서 가 중요합니다:
  1. 주석 먼저 작성: # 월별 매출을 계산하고 전월 대비 성장률을 구한다라고 주석을 쓰면, 다음 줄에서 정확한 코드가 제안됩니다
  2. 함수 시그니처 먼저 작성: def calculate_monthly_growth(sales_df, date_col, amount_col):까지만 입력하면 함수 본문이 자동 제안됩니다
  3. 이전 셀의 변수명 활용: Genie Code는 노트북의 이전 셀 컨텍스트를 이해합니다. 이전 셀에서 customer_df를 정의했으면, 다음 셀에서 customer_df. 입력 시 적절한 메서드 체이닝이 제안됩니다
전문가 관점: 인라인 제안은 단순한 자동완성이 아니라 LLM 기반 추론 입니다. IDE의 전통적 자동완성은 메서드 목록만 보여주지만, Genie Code의 인라인 제안은 현재 코드의 목적과 패턴 을 이해하고 다음에 올 코드 전체를 예측합니다. 이 차이를 이해하면 코딩 생산성이 크게 향상됩니다.

Quick Fix

기본적인 코드 오류를 자동 감지하고 즉시 수정 제안을 표시합니다.

동작 방식

  1. 코드 셀을 실행합니다.
  2. 오류가 발생하면 셀 하단에 Quick Fix 배너가 나타납니다.
    • 화면 설명: 빨간색 오류 메시지 아래에 보라색 “Quick Fix” 버튼이 표시됩니다. 버튼 옆에 수정 내용의 간략한 설명이 있습니다.
  3. Accept and run 을 클릭하면 수정된 코드가 적용되고 즉시 재실행됩니다.
  4. Dismiss 를 클릭하면 제안을 무시합니다.

Quick Fix가 처리하는 오류 유형

오류 유형예시Quick Fix 동작
구문 오류SyntaxError: unexpected EOF누락된 괄호, 콜론 등 추가
이름 오류NameError: name 'df' is not defined오타 수정 또는 import 추가
타입 오류TypeError: unsupported operand타입 변환 코드 추가
Import 오류ModuleNotFoundError올바른 import 문 제안

Diagnose Error

Quick Fix보다 복잡한 오류(환경 오류, 런타임 오류, 멀티셀 의존성 오류 등)를 심층 분석합니다.

동작 방식

  1. 오류가 발생한 셀에서 Diagnose Error 버튼을 클릭합니다.
    • 화면 설명: Quick Fix 옆에 “Diagnose with Genie” 링크가 있습니다. 클릭하면 Genie Code 패널이 열리면서 오류 분석이 시작됩니다.
  2. Genie Code가 오류 메시지, 스택 트레이스, 관련 코드를 분석합니다.
  3. 근본 원인(Root Cause)수정 방법 을 자연어로 설명합니다.
  4. 수정 코드를 제안하며, “Apply fix”로 즉시 적용할 수 있습니다.

Diagnose Error가 처리하는 복잡한 오류

오류 유형예시분석 내용
환경 오류클러스터 라이브러리 버전 충돌라이브러리 버전 호환성 분석 및 해결 방법
메모리 오류OOM (Out of Memory)데이터 크기 추정, 파티셔닝/캐싱 전략 제안
권한 오류UC 접근 거부필요한 권한과 요청 방법 안내
셀 간 의존성이전 셀에서 정의한 변수 누락실행 순서 확인 및 필요한 셀 식별

Slash 명령어

자주 사용하는 프롬프트를 빠르게 입력할 수 있습니다. 채팅 입력란에서 /를 입력하면 명령어 목록이 나타납니다.
명령어기능사용 방법
/explain선택한 코드를 자연어로 설명코드 선택 후 /explain
/fix코드 오류를 분석하고 수정 제안오류 코드 선택 후 /fix
/optimize코드 성능 최적화 제안느린 코드 선택 후 /optimize
/test단위 테스트 자동 생성함수 선택 후 /test
/doc문서/주석(docstring) 자동 생성함수/클래스 선택 후 /doc

Slash 명령어 활용 예시

[코드 선택]
def calculate_revenue(orders_df, start_date, end_date):
    filtered = orders_df.filter(...)
    return filtered.groupBy("region").agg(sum("amount"))

[/optimize 실행]
Genie: 다음 최적화를 제안합니다:
  1. filter 조건에 파티션 컬럼 활용 → 스캔 범위 축소
  2. cache() 추가 → 반복 사용 시 재계산 방지
  3. repartition() → 데이터 분포 최적화

자연어 데이터 필터링

데이터 테이블 출력에서 자연어로 필터 조건을 지정할 수 있습니다. 화면 설명: 데이터 테이블 상단에 “Filter with natural language” 입력란이 있습니다. 자연어로 조건을 입력하면 테이블이 즉시 필터링됩니다.
예시 필터:
- "매출이 100만 이상인 행만 보여줘"
- "서울 지역 데이터만"
- "2025년 이후 데이터"

Custom Instructions 설정

Genie Code의 응답 스타일을 커스터마이징할 수 있습니다.
설정 수준적용 범위설정 위치
사용자 수준내 모든 워크스페이스Genie Code 패널 > 설정 > Custom Instructions
워크스페이스 수준해당 워크스페이스의 모든 사용자관리자 설정

Custom Instructions 예시

- 코드에 항상 한국어 주석을 포함해주세요.
- PySpark를 기본 DataFrame API로 사용하세요.
- SQL은 항상 ANSI 표준 구문을 사용하세요.
- 변수명은 snake_case를 사용하세요.

대화 히스토리

이전 대화 내용을 확인하고 관리할 수 있습니다.
기능설명
History이전 대화 스레드 목록 조회
Resume이전 대화를 이어서 계속
Delete개별 대화 스레드 삭제
New Chat새로운 대화 시작 (컨텍스트 초기화)
주제가 크게 바뀌면 New Chat 으로 새 대화를 시작하세요. 이전 대화의 컨텍스트가 길어지면 오히려 응답 품질이 떨어질 수 있습니다.

피드백

응답 하단에 마우스를 올리면 Useful/Not useful 버튼이 표시됩니다.
피드백효과
Useful(엄지 위)긍정 시그널 → 유사 응답 품질 유지
Not useful(엄지 아래)부정 시그널 + 선택적 텍스트 피드백 → 서비스 개선에 반영
참고 적극적인 피드백이 Genie Code 서비스 전체의 품질 향상에 기여합니다. 특히 부정 피드백 시 구체적인 이유를 텍스트로 남기면 더 효과적입니다.

Genie Code 활용 효과를 극대화하는 워크플로

위에서 설명한 개별 기능들을 실전에서 어떻게 조합하는지, 전문가들이 실제로 사용하는 워크플로를 소개합니다.

워크플로 1: 빠른 탐색적 분석 (15분 완성)

1. [Agent 모드] "@raw_data 테이블 EDA 수행해줘"
   → 자동으로 5-10개 셀 생성 및 실행
2. [Chat 모드] 결과를 보고 "이 이상치의 원인이 뭘까?"
   → 추가 분석 없이 설명만 필요한 경우
3. [Agent 모드] "이 분석 결과로 1페이지 대시보드 만들어줘"
   → 대시보드까지 자동 생성

워크플로 2: 기존 코드 리팩토링 (30분 완성)

1. [Chat 모드] 코드 선택 → /explain
   → 기존 코드의 동작을 파악
2. [Chat 모드] 코드 선택 → /optimize
   → 성능 개선 포인트 확인
3. [Chat 모드] 코드 선택 → /test
   → 리팩토링 전 테스트 코드 생성
4. [Agent 모드] "이 코드를 PySpark 베스트 프랙티스에 맞게 리팩토링해줘"
   → 리팩토링 + 실행 + 결과 비교까지 자동

워크플로 3: 프로덕션 파이프라인 개발 (2시간 완성)

1. [Chat 모드] "이 요구사항에 맞는 SDP 파이프라인 아키텍처를 제안해줘"
   → 구조 설계 검토
2. [Agent 모드] "제안한 구조로 파이프라인 코드를 생성해줘"
   → Bronze → Silver → Gold 전체 코드 생성
3. [Chat 모드] 생성된 코드 리뷰 → 수정 요청
   → 세부 조정
4. [Agent 모드] "이 파이프라인에 데이터 품질 모니터링을 추가해줘"
   → 추가 기능 구현
핵심 원칙: Chat 모드로 설계와 검토, Agent 모드로 구현과 실행. 이 두 모드를 자유롭게 전환하며 사용하는 것이 Genie Code를 마스터하는 핵심입니다.