사전 요구 사항
주의 다음 항목이 모두 준비되어야 합니다:
- Databricks Workspace(Premium 이상)
- SQL Warehouse(Serverless 권장)
- Cluster(범용 클러스터 1개 이상)
- Python 3.11+
- Node.js 18+
- uv 패키지 매니저 (
pip install uv) - Anthropic API Key(Claude 모델 사용)
1단계: 레포지토리 클론
AI Dev Kit 전체 레포지토리를 클론합니다. Builder App은databricks-builder-app 디렉토리에 있습니다.
참고 왜 전체 레포를 클론하나요? Builder App은databricks-mcp-server에 의존합니다. 전체 레포를 클론해야 MCP Server가 로컬에서 올바르게 참조됩니다.pyproject.toml의[project.optional-dependencies]에서databricks-mcp-server가 로컬 경로로 참조되는 것을 확인할 수 있습니다.
2단계: 자동 설치 (권장)
setup.sh 스크립트가 백엔드와 프론트엔드를 한 번에 설정합니다.
- Python 가상환경 생성 및 의존성 설치
- Node.js 의존성 설치
.env.local템플릿 생성- Alembic DB 마이그레이션 실행
uv를 사용하나요?uv는 Rust로 작성된 초고속 Python 패키지 매니저입니다. pip보다 10~100배 빠르며, 의존성 해결이 더 정확합니다. AI Dev Kit의 복잡한 의존성 트리(LangChain, Claude SDK, MCP Server 등)를 안정적으로 설치하기 위해 uv를 기본으로 사용합니다.
팁 자동 설치가 실패하면 아래 수동 설치 절차를 따르세요.
2단계 (대안): 수동 설치
Backend 설정
Frontend 설정
3단계: 환경 변수 구성
프로젝트 루트에.env.local 파일을 생성합니다. 이 파일은 Builder App의 모든 외부 연결 정보를 관리합니다.
왜 .env.local인가? Builder App은 환경 변수를 세 단계로 로드합니다: .env (기본값) → .env.local (로컬 오버라이드) → 시스템 환경 변수. .env.local은 .gitignore에 포함되어 있어 민감한 정보가 Git에 커밋되지 않습니다.
환경 변수 상세 설명
| 변수 | 필수 | 용도 | 발급 방법 |
|---|---|---|---|
ANTHROPIC_API_KEY | 필수 (로컬) | Claude 모델 호출 | Anthropic Console → API Keys |
DATABRICKS_HOST | 필수 | Workspace 연결 URL | Workspace URL 복사 (예: https://adb-123.12.azuredatabricks.net) |
DATABRICKS_TOKEN | 필수 (로컬) | API 인증 | Workspace → User Settings → Developer → Access Tokens |
LAKEBASE_ENDPOINT | 선택 | 대화 이력 영구 저장 | Workspace → Catalog → Lakebase → Endpoints |
주의 Databricks Apps로 배포할 때는ANTHROPIC_API_KEY와DATABRICKS_TOKEN을 직접 설정할 필요가 없습니다. Apps 환경에서는 Databricks Foundation Model API(FMAPI)를 사용하고, 사용자 인증은X-Forwarded-Access-Token헤더로 자동 전달됩니다.
LLM 선택: Anthropic 직접 vs Databricks FMAPI
| 옵션 | 설정 | 장점 | 단점 |
|---|---|---|---|
| Anthropic 직접 | ANTHROPIC_API_KEY 설정 | 최신 모델 즉시 사용, 안정적 | API 키 관리 필요, 별도 과금 |
| Databricks FMAPI | LLM_PROVIDER=DATABRICKS | API 키 불필요, 워크스페이스 과금 통합 | 사용 가능한 모델 한정 |
| Azure OpenAI | LLM_PROVIDER=AZURE | Azure 엔터프라이즈 환경 통합 | Azure 리소스 별도 구성 필요 |
4단계: 데이터베이스 마이그레이션
Lakebase를 사용하는 경우 Alembic 마이그레이션을 실행합니다.upgrade head 명령은 현재 DB 스키마를 최신 버전으로 업데이트합니다. Builder App의 DB 스키마가 변경될 때(새 테이블 추가, 컬럼 변경 등) 이 명령으로 안전하게 마이그레이션합니다.
Lakebase 데이터 모델
Builder App은 다음 테이블들을 Lakebase에 저장합니다:| 테이블 | 역할 | 주요 필드 |
|---|---|---|
| projects | 프로젝트 메타데이터 | id, name, created_at, user_id |
| conversations | 대화 세션 | id, project_id, title, created_at |
| messages | 개별 메시지 | id, conversation_id, role, content |
| executions | 에이전트 실행 기록 | id, conversation_id, status, tool_calls |
주의
Lakebase 없이도 Builder App을 실행할 수 있습니다. 이 경우 프로젝트 데이터는 로컬 파일 시스템(projects/ 디렉토리)에만 저장됩니다. 프로덕션 환경에서는 Lakebase 사용을 강력히 권장합니다.
5단계: 개발 서버 실행
--reload 옵션으로 백엔드 코드 변경도 자동 재시작됩니다. 프로덕션 배포 시에는 프론트엔드를 빌드하여 정적 파일로 만든 후 FastAPI가 함께 서빙합니다.
개발 서버 아키텍처
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:8000 - API 문서:
http://localhost:8000/docs(Swagger UI 자동 생성)
6단계: 첫 프로젝트 생성 및 테스트
- 브라우저에서
http://localhost:3000에 접속합니다. - New Project 버튼을 클릭하여 새 프로젝트를 생성합니다.
- 채팅 창에 다음과 같은 메시지를 입력합니다:
- 에이전트가
execute_sql도구를 호출하여SHOW CATALOGS결과를 반환합니다.
무엇이 일어나고 있는가?
사용자의 자연어 요청이 에이전트에게 전달되면, 다음과 같은 과정이 자동으로 수행됩니다:팁 에이전트가 사용하는 도구 호출 과정이 실시간으로 스트리밍됩니다. 어떤 MCP 도구가 호출되었는지, 어떤 SQL이 실행되었는지 확인할 수 있습니다. 이 투명성은 에이전트의 행동을 검증하고 디버깅하는 데 필수적입니다.
추가 테스트 시나리오
첫 프로젝트가 성공적으로 동작하면, 다음 시나리오를 시도해보세요:| 테스트 | 입력 예시 | 확인 사항 |
|---|---|---|
| SQL 실행 | ”main 카탈로그의 테이블 목록 보여줘” | execute_sql 도구 호출 확인 |
| 클러스터 상태 | ”현재 실행 중인 클러스터 보여줘” | list_clusters 도구 호출 확인 |
| 파일 업로드 | ”이 CSV 파일을 Volume에 업로드해줘” | upload_to_volume 도구 호출 확인 |
| 스킬 활용 | ”합성 데이터로 매출 테이블 만들어줘” | synthetic-data 스킬 로드 + SQL 실행 |
Databricks Apps로 배포 (프로덕션)
Builder App을 Databricks Apps에 배포하면 팀 전체가 사용할 수 있습니다.프론트엔드 빌드
app.yaml 구성
배포
참고 Databricks Apps로 배포하면X-Forwarded-User와X-Forwarded-Access-Token헤더를 통해 자동으로 사용자별 인증이 적용됩니다. 별도의DATABRICKS_TOKEN설정이 필요 없습니다.
문제 해결
| 증상 | 원인 | 해결 방법 |
|---|---|---|
ANTHROPIC_API_KEY not set | 환경 변수 누락 | .env.local 파일에 키 추가 |
| SQL 실행 실패 | Warehouse 미실행 | Workspace에서 SQL Warehouse 시작 |
| MCP 도구 로드 실패 | databricks-mcp-server 미설치 | uv pip install -e ".[dev]" 재실행 |
| DB 마이그레이션 오류 | Lakebase 연결 실패 | LAKEBASE_* 환경 변수 확인 |
| 프론트엔드 빈 화면 | Node 의존성 누락 | cd client && npm install |
다음 단계
- Tool 목록 및 상세 - MCP 도구 전체 목록과 스킬 시스템
- 활용 사례 - Builder App 실전 시나리오
- Databricks Apps 배포 가이드 - Apps 배포 상세