> ## 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.

# 바이브 코딩 이해

> **목적**: Genie Code로 **바이브 코딩**하여 Databricks의 데이터·AI 기능을 코드 없이 체험합니다. 데이터는 스마트팩토리(카메라 모듈 라인) 시나리오를 사용합니다.

***

## 바이브 코딩이란

Andrej Karpathy가 2025년에 제안한 표현으로, **코드를 한 줄씩 설계·타이핑하기보다 AI와 대화하며 결과물을 먼저 만들어 보고 실행 결과를 보며 조정**하는 개발 방식입니다.

* 핵심 루프: **의도를 자연어로 설명 → AI가 코드 생성 → 실행 → 에러·동작을 다시 피드백**
* 병목이 "문법 타이핑"에서 **의도 명세 + 결과 검증**으로 이동합니다
* 지금은 넓은 의미로 쓰입니다 — 아래처럼 "얼마나 코드를 읽고 책임지느냐"의 스펙트럼입니다

| 스타일 | 사람이 코드를 | 성격 |
| - | - | - |
| 순수 바이브 코딩 | 거의 안 읽음 | 토이·실험·throwaway |
| AI 보조 프로토타이핑 | 이해는 함, 대량은 AI에 위임 | 빠른 탐색 |
| 에이전틱 개발 | 계획·리뷰, 구현은 에이전트 | Genie Code·Cursor 등 |
| 바이브 엔지니어링 | **반드시 이해·검토** | 책임 있는 AI 개발 |

> Databricks는 이를 **describe → generate → test → refine** 루프(Agentic Coding / Vibe2Value)로 정리하고, **"AI는 기억력 좋은 인턴이지만 판단력은 제한적"** 이라는 전제를 둡니다. AI가 개발자를 대체하는 게 아니라 **숙련된 엔지니어의 생산성을 증폭**하는 도구라는 관점입니다. 이 워크샵의 **Genie Code**가 바로 그 도구로, Databricks에 내장돼 Unity Catalog 스키마를 직접 읽고 코드를 생성·실행·검증·수정합니다.

***

## 목적이 아니라 수단 — 탐색·실험 vs 프로덕션

바이브 코딩은 **탐색·프로토타입에는 강력하지만, 검증 없이 프로덕션에 넣으면 위험**합니다. 그래서 "어디까지 허용할지"를 먼저 정합니다. 이 워크샵은 전부 **탐색·학습 모드**이며, 실무 적용 시 아래 경계를 지켜야 합니다.

| 상대적으로 안전 (그래도 가드레일 필요) | blind 바이브 코딩 금지 |
| - | - |
| 해커톤·데모·PoC·솔루션 스케치 | 결제·청구·재무 로직 |
| 실험용 노트북, 개발자 유틸리티 | 인증·인가·감사 로깅·권한 제어 |
| 합성/마스킹 데이터 분석·시각화 | 개인정보·민감 데이터 처리 |
| 사내 교육 샘플·튜토리얼 | 인프라 변경·파괴적 데이터 마이그레이션, 규제 의사결정 |

> 핵심 위험은 "AI가 코드를 짜는 것" 자체가 아니라, **사람이 이해·설계·검증을 건너뛰는 것**입니다.

***

## 장점과 리스크

**장점** — 아이디어에서 데모까지 거리를 크게 줄이고, 다양한 설계를 빠르게 실험하며, 보일러플레이트를 자동화하고, 비개발자(분석가·SME)의 참여를 넓힙니다.

**주요 리스크와 회피법:**

| 리스크 | 회피법 |
| - | - |
| 환각(hallucinated) 코드·API·컬럼명 | `@` 멘션으로 실제 Unity Catalog 스키마 참조, 설치 전 패키지 확인 |
| 보안 취약점·시크릿/PII 유출 | 프롬프트에 비밀키·개인정보 금지, 합성 시드 데이터 사용 |
| 테스트·검증 부재 (행복 경로만 확인) | 실패·엣지 케이스까지 검증, row count·Expectations로 확인 |
| 기술 부채·구조적 취약성 | 읽기 쉬운 SQL·COMMENT 강제, 재사용 가능한 정의 |
| 지식·소유권 공백 | 코드를 이해하는 **책임 오너** 지정 (human-in-the-loop) |
| 재현성·일관성 문제 | 프롬프트·모델·설정을 코드와 함께 버전 관리, 고정 시드 |
| 과의존·스킬 저하 | 사람이 계획을 이해·승인한 뒤 실행 |

***

## describe → generate → test → refine — 이 워크샵에서 이렇게

바이브 코딩 베스트 프랙티스를, 이 워크샵에서 Genie Code로 무엇에 대응시키는지 정리했습니다.

| 원칙 | 이 워크샵(Genie Code)에서 |
| - | - |
| **describe — 의도·계획 먼저** | "먼저 설계를 제안해줘"로 시작, **계획(Plan)** 을 읽고 `Allow`로 승인 |
| **generate — 작게, 리뷰 가능하게** | 대형 프롬프트 대신 **짧은 단계별 프롬프트**, 생성 코드는 diff를 보고 Accept / Reject |
| **test — 검증으로 운전** | row count·품질 스코어카드·파이프라인 **Expectations**(모듈 3)로 결과 검증 |
| **refine — 문서·구조 보강** | 모든 테이블·컬럼에 **COMMENT**(Genie 정확도의 핵심), 재사용 가능한 정의로 정리 |
| **가드레일 자동화** | **Custom Instructions** 안전 규칙(DROP/DELETE 금지, `LIMIT`) + Serverless 제약 |
| **관측(observability)** | Job 실패 알림, 파이프라인 실행 모니터, MLflow 트레이싱 |

***

## 데이터·ML 팀이 특히 챙길 것

일반 애플리케이션보다 데이터·ML 작업은 AI가 놓치기 쉬운 지점이 더 많습니다.

* **스키마·데이터 품질** — 스키마 변경, null·이상치, 늦게 도착한 데이터, 중복, 멱등성(idempotency)은 자동 생성 코드에서 잘 빠집니다 → 이 워크샵은 모듈 2·3에서 직접 다룹니다
* **데이터 거버넌스** — Unity Catalog 권한, 행·열 수준 보안, 리니지를 존중하는지 확인 (모듈 0 권한, 모듈 5 Metric View)
* **재현성** — 모델·피처 버전, 프롬프트·파라미터를 코드와 함께 버전 관리
* **비용·성능** — 무분별한 full scan·조인이 생성될 수 있으니 `LIMIT`·샘플링으로 가드

***

## 한 세션 Do / Don't

**Do**

| 하라 | 왜 |
| - | - |
| 의도를 3\~5줄로 진술 | 목표·성공 기준·제약을 먼저 좁히면 AI가 헤매지 않습니다 |
| "먼저 설계를 제안해줘"로 계획 받기 | 코드 생성 전에 방향(계약)을 검토해 잘못된 방향을 조기에 차단 |
| 결과를 표 / row count로 검증 | 동작 데모만 믿지 말고 수치로 실제 결과를 확인 |
| 관용적 코드 + COMMENT 요청 | 유지보수·재현성과 Genie 정확도(COMMENT 기반)를 함께 확보 |
| 파괴적 작업은 계획 확인 후 `Allow` | DROP/DELETE/ALTER의 의도치 않은 삭제·덮어쓰기 방지 |
| 한 논리 단위씩 나눠 진행 | 작은 변경(diff)은 리뷰·디버깅이 쉽고 예상 밖 동작이 줄어듦 |

**Don't**

| 하지 마라 | 왜 위험한가 |
| - | - |
| 이해 못 한 코드를 그대로 수용 | 장애·확장 시 아무도 자신 있게 손대지 못하는 영역이 생김 |
| 프롬프트에 시크릿·고객 데이터 붙여넣기 | 데이터 유출·컴플라이언스 위반 위험 |
| 데모가 됐다는 이유만으로 검증 없이 운영 투입 | 실패·엣지 케이스·부하에서 무너짐 |
| 수천 줄이 한 번에 바뀌는 거대 변경 | 리뷰가 불가능하고 회귀 원인을 추적하기 어려움 |
| 결제·인증·개인정보·인프라를 blind 바이브 코딩 | 사람이 이해·검증을 건너뛰면 치명적 결과 |

***

> **한 줄 요약**: AI를 **어시스턴트**로 — 스캐폴드·보일러플레이트뿐 아니라 **설계·검증·안전도 AI로 가속**하되, **최종 판단과 책임은 사람이 쥔다**. 이 워크샵은 그 실천을 Genie Code로 Databricks 위에서 체험하는 과정입니다.

준비가 되었으면 [개요](overview)를 거쳐 [모듈 0 — Genie Code 소개 & 설정](00-genie-code-intro-setup)부터 시작하세요.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.