데이터 엔지니어링 (Data Engineering) 학습 가이드

데이터 엔지니어링 (Data Engineering) 학습 가이드

소개

데이터 엔지니어링은 데이터를 수집, 저장, 변환, 전달하는 시스템을 설계하고 구축하는 분야입니다. 데이터 파이프라인을 통해 원시 데이터를 분석 가능한 형태로 변환하여 데이터 분석가와 과학자가 활용할 수 있도록 합니다.

대상 독자: 데이터 파이프라인 입문자 ~ 중급자 (실무 기초)


학습 로드맵

데이터 엔지니어링 개요 → 데이터 모델링 → ETL/ELT 개념
                                          ↓
    Prefect ← Airflow 심화 ← Airflow 기초 ←┘
       ↓
    Spark 기초 → PySpark DataFrame → Spark 최적화
                                          ↓
    실전 프로젝트 ← 데이터 품질 ← dbt ← Data Lake/Warehouse ← Kafka 스트리밍

파일 목록

파일명 주제 난이도 핵심 내용
01_Data_Engineering_Overview.md 데이터 엔지니어링 개요 역할, 파이프라인, 배치 vs 스트리밍, 아키텍처 패턴
02_Data_Modeling_Basics.md 데이터 모델링 기초 ⭐⭐ 차원 모델링, 스타/스노우플레이크 스키마, SCD
03_ETL_vs_ELT.md ETL vs ELT ⭐⭐ 전통 ETL, 모던 ELT, 도구 비교, 사용 사례
04_Apache_Airflow_Basics.md Airflow 기초 ⭐⭐ 아키텍처, DAG, Task, Operator, 스케줄링
05_Airflow_Advanced.md Airflow 심화 ⭐⭐⭐ XCom, 동적 DAG, Sensor, Hook, TaskGroup
06_Prefect_Modern_Orchestration.md Prefect 모던 오케스트레이션 ⭐⭐ Flow, Task, Airflow 비교, Deployment
07_Apache_Spark_Basics.md Apache Spark 기초 ⭐⭐⭐ 아키텍처, RDD, 클러스터 모드, 설치
08_PySpark_DataFrames.md PySpark DataFrame ⭐⭐⭐ SparkSession, DataFrame, 변환, 액션, UDF
09_Spark_SQL_Optimization.md Spark SQL 최적화 ⭐⭐⭐ Catalyst, 파티셔닝, 캐싱, 조인 전략, 튜닝
10_Kafka_Streaming.md Kafka 스트리밍 ⭐⭐⭐ Kafka 개요, Topic, Producer/Consumer, 실시간 처리
11_Data_Lake_Warehouse.md Data Lake와 Warehouse ⭐⭐ Lake, Warehouse, Lakehouse, Delta Lake, Iceberg
12_dbt_Transformation.md dbt 변환 도구 ⭐⭐⭐ 모델, 소스, 테스트, 문서화, Jinja 템플릿
13_Data_Quality_Governance.md 데이터 품질과 거버넌스 ⭐⭐⭐ 품질 차원, Great Expectations, 카탈로그, 리니지
14_Practical_Pipeline_Project.md 실전 파이프라인 프로젝트 ⭐⭐⭐⭐ E2E 설계, Airflow+Spark+dbt, 품질 검증, 모니터링

총 레슨: 14개


환경 설정

Docker 기반 환경 (권장)

# Docker Compose로 전체 환경 구축
# docker-compose.yml 파일 생성 후:

# Airflow 환경 시작
docker compose up -d airflow-webserver airflow-scheduler

# Spark 환경 시작
docker compose up -d spark-master spark-worker

# Kafka 환경 시작
docker compose up -d zookeeper kafka

개별 도구 설치

# Apache Airflow
pip install apache-airflow

# PySpark
pip install pyspark

# Kafka Python 클라이언트
pip install confluent-kafka

# dbt
pip install dbt-core dbt-postgres

# Great Expectations
pip install great_expectations

# Prefect
pip install prefect

권장 버전

도구 버전
Python 3.9+
Apache Airflow 2.7+
Apache Spark 3.4+
Apache Kafka 3.5+
dbt-core 1.6+
Prefect 2.x

학습 순서

Phase 1: 기초 개념 (01-03)

  1. 데이터 엔지니어링 개요: 역할, 파이프라인 개념
  2. 데이터 모델링: 차원 모델링, 스키마 설계
  3. ETL vs ELT: 데이터 처리 패턴 이해

Phase 2: 워크플로우 오케스트레이션 (04-06)

  1. Airflow 기초: DAG 작성, 스케줄링
  2. Airflow 심화: XCom, Sensor, 동적 DAG
  3. Prefect: 모던 오케스트레이션 도구

Phase 3: 대규모 데이터 처리 (07-09)

  1. Spark 기초: RDD, 클러스터 아키텍처
  2. PySpark DataFrame: DataFrame API 활용
  3. Spark 최적화: 성능 튜닝, 조인 전략

Phase 4: 스트리밍과 저장소 (10-11)

  1. Kafka: 실시간 데이터 스트리밍
  2. Data Lake/Warehouse: 스토리지 아키텍처

Phase 5: 변환과 품질 (12-13)

  1. dbt: SQL 기반 데이터 변환
  2. 데이터 품질: Great Expectations, 거버넌스

Phase 6: 실전 프로젝트 (14)

  1. E2E 파이프라인: Airflow + Spark + dbt 통합

참고 자료

공식 문서

관련 폴더

to navigate between lessons