🧹 데이터 클렌징: 왜 스테이징 레이어에서 클렌징을 해야 하는가

실제 데이터 엔지니어링 파이프라인에서 가장 흔한 실수 중 하나는 데이터 클렌징을 너무 뒤로 미루는 것입니다. 업스트림 데이터가 깨끗할수록 다운스트림 모델은 더 단순하고 유지보수하기 쉬워집니다. 이제 하나씩 살펴보겠습니다. ✅ 기본 원칙 가능한 한 가장 이른 단계에서 데이터를 클렌징 — 이상적으로는 스테이징 레이어에서 처리해야 합니다. ✅ 그 이유 1️⃣ 책임 분리의 명확성 스테이징 모델의 역할은 다음과 같습니다: 클렌징 표준화 (정규화) 타입 캐스팅 만약 더러운 데이터를 marts까지 (예: dim_customer, fct_transaction) 넘긴다면: 다운스트림 모델이 복잡해짐 중복 필터 발생 유지보수가 어려운 취약한 코드 생성 2️⃣ Marts 레이어는 비즈니스 로직만 담당해야 한다 Marts 레이어는 오직 다음에 집중해야 합니다: ...

6월 4, 2025

🔧 왜 Airflow는 init, scheduler, webserver를 따로 띄울까?

Airflow 조금 만지다 보면, 대부분 이렇게 서비스가 나뉘어 돌아가는 걸 보게 됩니다. airflow-init airflow-scheduler airflow-webserver “이걸 굳이 왜 이렇게 쪼개?” 라는 생각이 들 수 있는데요. 이게 바로 실전 운영 방식입니다. 1️⃣ airflow-init — 준비 담당 다른 이름으로 airflow-db-migrate 나 airflow-bootstrap 이라고 부르기도 합니다. 딱 한 번만 실행되는 프로세스입니다. 하는 일: airflow db upgrade → DB 스키마 최신화 (DB 구조 최신으로 맞춰줌) 최초 admin 유저 생성 중요 포인트: 이건 계속 도는 서비스가 아닙니다. 할 일 다 하면 바로 종료 (exit code 0). ...

5월 30, 2025

🚀 핀테크 배치 데이터 파이프라인 구축기: AWS, Airflow, Spark

✨ 프로젝트 개요 핀테크 회사를 가정해, 카드사 데이터를 자동으로 집계 → 정제 → 분석하는 배치 파이프라인을 구축해보았다. 실제 데이터를 사용할 수는 없었기에 Faker를 활용해 가상의 거래 데이터를 생성했지만, 전체적인 데이터 흐름과 구조를 설계하는 데에는 충분하다고 생각된다. 🎯 목표 “Airflow를 활용해 현실적인 금융 데이터를 Spark로 처리하고, 저장 및 분석까지 가능한 자동화된 파이프라인을 만들어보자.” 단계 설명 작업 데이터 생성 원시 데이터 준비 Faker로 신용카드 거래 데이터 생성 데이터 수집 저장 위치로 이동 S3에 업로드 (raw) 데이터 처리 정제, 집계 PySpark로 지역별 거래금액 집계 데이터 저장 가공 후 저장 S3에 Parquet 저장 (processed) 데이터 분석 쿼리용 구조 구성 Athena로 테이블 생성 및 SQL 가능 자동화 반복 처리 가능하게 설정 Airflow로 DAG 작성 🔧 기술 스택 오케스트레이션: Apache Airflow 가상 데이터 생성: Python, Faker 데이터 처리: Apache Spark (PySpark) 데이터 저장: AWS S3 데이터 쿼리: AWS Athena 인프라: Docker, Terraform 🧩 아키텍처 구성 가상 데이터 생성 → S3 업로드 → Spark 변환 → S3 저장 → Athena로 쿼리 Python의 Faker 라이브러리로 가상의 신용카드 거래 데이터 CSV 생성 ...

5월 1, 2025