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

# 개요 & 프로파일링

### 이 모듈의 목적과 다루는 테이블

* **목적** — 정제 전 Bronze 데이터를 먼저 이해해, 다음 모듈의 Silver 정제 규칙을 뒷받침할 근거를 찾습니다.
* **다루는 테이블** — 분석 대상 Bronze 테이블(읽기 전용): active\_alignment, final\_image\_test, equipment\_sensor\_logs, traceability, defect\_events, cleanroom\_environment 등. 테이블을 만들거나 바꾸지 않습니다.

> **핵심 메시지**: "Genie Code로 프로파일링·품질 진단해 데이터를 먼저 이해한다. Silver 정제 규칙은 EDA에서 발견한 실제 문제에서 나온다."

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

| 기능 | 설명 | 공식 문서 |
| - | - | - |
| **DataFrame API 프로파일링** | `describe()`/`summary()`로 컬럼별 통계(평균·표준편차·분위수)를 한 번에 계산. | [docs](https://docs.databricks.com/en/pyspark/index.html) |
| **노트북 시각화** | `display()` 결과에서 막대/히스토그램/히트맵을 클릭 몇 번으로 생성. | [docs](https://docs.databricks.com/en/visualizations/index.html) |
| **Data Profiles** | 노트북 셀 결과의 "Data Profile" 탭으로 분포·결측을 자동 요약. | [docs](https://docs.databricks.com/en/notebooks/visualizations/index.html) |

## 개요

EDA(Exploratory Data Analysis, 탐색적 데이터 분석)는 데이터를 정제·모델링하기 **전에** 그 모습을 파악하는 단계입니다. 카메라 모듈 공장 Bronze 데이터에는 현실 세계처럼 **결측·중복·이상치·규칙 위반·참조 무결성 문제**가 섞여 있습니다. 이 모듈에서는 Genie Code로:

1. **규모와 구조**를 프로파일링하고
2. **분포**(수율·불량·MTF)를 살펴보고
3. **품질 이슈**를 정량적으로 진단하고
4. **상관·인사이트**(자재↔불량, 설비↔고장, 환경↔오염)를 발견한 뒤
5. 그 발견을 **Silver 변환 규칙**으로 정리해 다음 모듈([03. 파이프라인](03-transformation-pipeline))로 넘깁니다.

> **안전 규칙**
>
> * EDA는 **읽기 위주**입니다. 테이블을 만들거나 바꾸지 않습니다.
> * 큰 테이블은 습관적으로 `LIMIT`/샘플링을 붙여 컴퓨트 비용을 아끼세요.
> * Genie Code가 DROP/DELETE를 제안하면 승인하지 마세요.

> **📓 작업 노트북**: 이 모듈의 코드는 새 노트북 `02_CCM_EDA_<본인ID>`(사이드바 New → Notebook, 언어 Python, 컴퓨트 Serverless)를 만들어 그 안에서 작성합니다.

***

## Part A: 스키마 & 규모 프로파일링

먼저 전체 지형을 파악합니다.

### 전체 테이블 개요

```
ccm_factory.bronze 스키마의 모든 테이블에 대해 다음을 표로 보여줘:
1. 테이블명, row count, 컬럼 수
2. 각 테이블의 대략적 용도 (COMMENT 기반)
3. 시간 컬럼이 있으면 min/max 타임스탬프 범위
읽기 전용으로만 조회하고, 큰 테이블은 근사치(예: 샘플 또는 메타데이터)를 활용해도 좋아.
```

### 핵심 테이블 컬럼 통계

> 💡 `describe()`/`summary()`는 수치형 컬럼의 평균·표준편차·분위수를 한 번에 뽑아 주는 프로파일링 함수입니다. 노트북 셀 결과의 **Data Profile** 탭을 켜면 같은 요약을 클릭만으로 볼 수 있어, 정제 전 데이터의 첫인상을 빠르게 잡을 때 씁니다.

```
다음 3개 핵심 테이블의 수치형 컬럼 통계(count, mean, stddev, min, 25%, 50%, 75%, max)를 보여줘:
- @ccm_factory.bronze.active_alignment (mtf_center_pct, mtf_corner_pct, tilt_x_arcmin, tilt_y_arcmin, focus_z_um)
- @ccm_factory.bronze.final_image_test (mtf_sfr_center, dead_pixel_count, particle_count, snr_db, distortion_pct)
- @ccm_factory.bronze.equipment_sensor_logs (temperature_c, vibration_mm_s, vacuum_kpa, motor_current_a)
각 컬럼의 값 범위가 물리적으로 말이 되는지(예: MTF는 0~100%) 코멘트도 붙여줘.
```

### NULL 비율 상위 컬럼

```
ccm_factory.bronze의 주요 테이블(@ccm_factory.bronze.final_image_test, @ccm_factory.bronze.dispensing_process, @ccm_factory.bronze.active_alignment, @ccm_factory.bronze.aoi_inspection)에 대해
컬럼별 NULL 비율을 계산하고, NULL 비율이 높은 상위 5개 컬럼을 테이블별로 보여줘.
```

> ✅ `final_image_test.snr_db`가 약 4% NULL, `dispensing_process.uv_dose_mj`가 SENSOR\_BOND에서 NULL(정상)이면서 LENS\_BOND 일부에서도 NULL(약 3%, 잠재 이슈)로 나오면 데이터가 의도대로 준비된 것입니다.

***


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