> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sifi.life/llms.txt
> Use this file to discover all available pages before exploring further.

# 환경 설정

> **소요 시간**: \~5분 | **핵심**: 워크스페이스 접속 → 카탈로그/스키마 생성 → Genie Code 준비

### 이 모듈에서 사용하는 Databricks 기능

| 기능                        | 설명                                                                                   | 공식 문서                                                                           |
| ------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
| **Unity Catalog**         | Databricks의 통합 데이터 거버넌스 플랫폼. 카탈로그 > 스키마 > 테이블 3단계로 데이터를 관리하고, 권한·리니지·태그를 중앙에서 통제합니다. | [docs](https://docs.databricks.com/en/data-governance/unity-catalog/index.html) |
| **Genie Code Agent Mode** | Genie Code의 자율 실행 모드. 계획 → 코드 생성 → 실행 → 검증 → 에러 수정을 자동으로 반복합니다. 실행 전 사용자 승인을 요청합니다.  | [docs](https://docs.databricks.com/en/genie-code/index.html)                    |
| **Serverless Compute**    | Databricks가 관리하는 서버리스 컴퓨트. 클러스터를 직접 만들 필요 없이 코드를 바로 실행합니다. Python과 SQL만 지원합니다.       | [docs](https://docs.databricks.com/en/compute/serverless.html)                  |
| **Custom Instructions**   | Genie Code에게 "항상 이 규칙을 따라줘"라고 미리 알려주는 설정 파일. 네이밍 규칙, 안전 규칙 등을 한 번 설정하면 자동 적용됩니다.     | [docs](https://docs.databricks.com/en/genie-code/instructions.html)             |

***

## Step 1: Databricks 워크스페이스 접속

1. 제공받은 워크스페이스 URL에 접속
2. 로그인 (SSO 또는 제공된 계정)

***

## Step 2: 노트북 생성

1. 왼쪽 사이드바에서 **New** → **Notebook** 클릭
2. 노트북 이름을 `00_Appliance_Workshop`으로 변경
3. 기본 언어: **Python**
4. **컴퓨트 연결**: 노트북 우측 상단의 컴퓨트 선택 버튼 클릭 → **Serverless** 선택

> 💡 **컴퓨트란?** 코드를 실행하는 컴퓨터입니다. Serverless를 선택하면 Databricks가 관리하는 컴퓨터를 바로 사용할 수 있어, 클러스터를 직접 만들 필요가 없습니다.

***

## Step 3: Genie Code Agent Mode 확인

1. 노트북 우측 상단에 **무지개색 별 아이콘**(✨)이 보입니다 — 이것이 Genie Code 버튼입니다
2. 아이콘을 클릭하면 화면 우측에 **Genie Code 사이드 패널**이 열립니다
3. 패널 하단에서 드롭다운을 클릭 → **Agent** 선택

> ⚠️ **Stop 버튼 확인**: Genie Code가 작업 중일 때는 입력창 우측에 **빨간색 Stop 버튼**이 표시됩니다. 이 버튼이 보이는 동안은 AI가 아직 코드를 실행하고 있으므로, 다음 프롬프트를 입력하지 마세요.

### Agent Mode 동작 확인

```
안녕, Agent Mode가 정상적으로 켜져 있는지 확인해줘.
현재 연결된 컴퓨트 종류와 접근 가능한 카탈로그도 알려줘.
```

***

## Step 4: 카탈로그 / 스키마 / 볼륨 생성

Genie Code에 아래 프롬프트를 입력합니다:

```
Unity Catalog에 다음 환경을 설정해줘:
- 카탈로그: lge_appliance (이미 있으면 스킵)
- 스키마: bronze, silver, gold, quarantine (이미 있으면 스킵)
- 볼륨: bronze 스키마에 raw_files 볼륨 생성

각 스키마에 COMMENT도 추가해줘:
- bronze: 'Raw IoT 센서 및 제품 로그 데이터'
- silver: '정제/표준화된 데이터'  
- gold: '비즈니스 집계 테이블'
- quarantine: '데이터 품질 위반 레코드'

기존 오브젝트가 있으면 DROP하지 말고 스킵해줘.
```

### 생성 결과 확인

```
lge_appliance 카탈로그의 모든 스키마를 보여줘
```

기대 결과:

| 스키마          | 설명                     |
| ------------ | ---------------------- |
| `bronze`     | Raw IoT 센서 및 제품 로그 데이터 |
| `silver`     | 정제/표준화된 데이터            |
| `gold`       | 비즈니스 집계 테이블            |
| `quarantine` | 데이터 품질 위반 레코드          |

***

## Step 5: Custom Instructions 설정 (권장)

> Custom Instructions가 무엇인지, 왜 필요한지는 [Section 1: Custom Instructions 설정](../section-1-vibe-coding-intro/genie-code/custom-instructions)에서 상세히 설명합니다.

Genie Code Settings(⚙️) → Custom Instructions에 아래 내용을 붙여넣기 합니다:

```markdown theme={null}
## 기본 규칙
- 한국어로 답변, 기술 용어는 영문 병기
- PySpark 기본 사용 (pandas 대신)
- SQL은 Databricks SQL 문법

## 네이밍
- 카탈로그: lge_appliance
- 스키마: bronze / silver / gold / quarantine
- 테이블/컬럼: snake_case

## 안전 규칙
- 기존 테이블 DROP/DELETE/UPDATE 금지
- CREATE OR REPLACE TABLE 사용
- 테스트 시 LIMIT 1000
- 모든 테이블에 COMMENT 추가
- Delta 형식, event_date 파티셔닝 기본
```

***

## Step 6: 환경 검증

```
lge_appliance.bronze 스키마에 test_table이라는 이름으로 
1행짜리 Delta 테이블을 만들고, 바로 삭제해줘. 
권한과 컴퓨트가 정상인지 확인하는 용도야.
```

성공하면 환경 설정 완료!

***

## 환경 요약

> **참고**: 아래 테이블 수는 **목표값**입니다. 이 시점에서는 아직 테이블이 없으며, [02. 공기청정기 데이터 생성](02-air-purifier-data)과 [03. 에어컨 데이터 생성](03-air-conditioner-data)을 완료하면 생성됩니다.

| 항목             | 값                                            |
| -------------- | -------------------------------------------- |
| 카탈로그           | `lge_appliance`                              |
| Bronze 스키마     | `lge_appliance.bronze` (공기청정기 + 에어컨 Raw 테이블) |
| Silver 스키마     | `lge_appliance.silver` (정제 테이블)              |
| Gold 스키마       | `lge_appliance.gold` (집계 테이블)                |
| Quarantine 스키마 | `lge_appliance.quarantine` (품질 위반 격리)        |
| 볼륨             | `lge_appliance.bronze.raw_files`             |
| 컴퓨트            | Serverless                                   |
| Genie Code 모드  | Agent Mode                                   |

***

## 다음 단계

* **[02. 공기청정기 데이터 생성](02-air-purifier-data)** — 공기청정기 IoT 센서 및 DDL 기반 가상 데이터 생성
