분류 전체보기

    K8s란?

    📌 목차K8s란 무엇인가 (한 줄 정의)왜 K8s가 필요해졌나K8s가 해결하는 문제K8s 핵심 개념 정리K8s 전체 동작 흐름한 줄 요약 (암기용)1️⃣ K8s란 무엇인가?**K8s(Kubernetes)**는컨테이너(Docker)를 자동으로 배포·확장·복구·관리해주는 플랫폼이다.공식적으로는Kubernetes =👉 컨테이너 오케스트레이션 도구2️⃣ 왜 K8s가 필요해졌나?❌ Docker만 쓸 때 문제컨테이너가 죽으면? → 수동 재시작트래픽 증가하면? → 수동으로 컨테이너 늘림서버 여러 대면? → 어디서 뭐가 도는지 모름배포 중 장애? → 서비스 다운👉 컨테이너가 많아질수록 관리 지옥✅ K8s의 등장“컨테이너 관리, 사람이 하지 말고 시스템이 자동으로 하자”3️⃣ K8s가 해결하는 핵심 문제K8s는 아..

    GE 실제 코드 예시

    📌 목차GE 코드 전체 흐름기본 세팅 (가장 단순한 방식)실무에서 가장 많이 쓰는 Expectation 예시Validation 실행 & 실패 처리DE 실무 팁1️⃣ GE 코드 전체 흐름 (이거 기억하면 끝)데이터 로드 ↓Expectation 정의 ↓Validation 실행 ↓결과 확인 (PASS / FAIL)GE는 테스트 코드 쓰듯이 DQ를 작성한다고 생각하면 돼.2️⃣ 기본 세팅 (Pandas 기준, 제일 쉬움)DB / Spark도 거의 동일한 구조라개념 익히기엔 Pandas가 최고pip install great-expectationsimport great_expectations as geimport pandas as pd# 데이터 로드df = pd.read_csv("users.csv")#..

    GE(Great Expectations) 이란?

    📌 목차GE(Great Expectations)란?GE를 왜 쓰나? (DE 관점)GE 핵심 개념GE 기본 사용 흐름DE 실무에서 GE 쓰는 패턴언제 GE가 잘 맞고, 안 맞나1️⃣ GE(Great Expectations)란?GE = Great Expectations는👉 데이터 품질(Data Quality)을 코드처럼 정의하고 자동 검증하는 오픈소스 툴이야.한 줄 요약하면,“데이터에 대한 기대 조건(Expectation)을 정의하고실제 데이터가 그 기대를 만족하는지 자동으로 검사”📌 예:row 수가 너무 줄지 않았는가?NULL 이 있으면 안 되는 컬럼에 NULL 이 있는가?값이 허용 범위를 벗어나지 않았는가?이걸 사람이 눈으로 안 보고, 자동으로 검사해줌.2️⃣ GE를 왜 쓰나? (DE 관점)❌ GE..

    DQ Tools

    📌 목차DQ 툴 한눈에 보는 지도오픈소스 DQ 툴클라우드 / 상용 DQ 툴파이프라인 내장형 DQ어떤 툴을 선택해야 하나? (추천 조합)1️⃣ DQ 툴 한눈에 보는 지도구분목적오픈소스룰 기반 DQ, 테스트 자동화클라우드관리형 DQ, 대규모 모니터링파이프라인ETL 중 실시간 차단관측(Observability)이상 탐지·대시보드2️⃣ 오픈소스 DQ 툴 (DE가 가장 많이 씀)🔹 Great Expectations가장 대표적인 DQ 툴SQL / Spark / Pandas 지원row count, null, range, uniquenessAirflow 연동 쉬움테스트 코드처럼 DQ 작성📌 언제 쓰나?데이터 웨어하우스 + 배치 파이프라인🔹 Soda모니터링 중심 DQYAML 기반 룰 정의이상 탐지(anomaly ..

    Data Quality 검증은 어떻게 하는가?

    📌 목차DQ를 “한다”는 것의 의미DE에서 DQ 전체 흐름단계별 DQ 수행 방법 (실무)DQ 룰 예시 모음처음 DQ 시작할 때 추천 방식1️⃣ DQ를 “한다”는 것의 의미DE에서 DQ를 한다는 건 단순히 체크 한 번이 아니라,데이터 파이프라인 안에자동으로 품질 검사를 넣고이상 시 감지·알림·차단까지 하는 것을 말해.✔ 자동화✔ 반복 가능✔ 실패 시 액션 존재이 3개가 없으면 “DQ를 한다”라고 보기 힘들어.2️⃣ DE에서 DQ 전체 흐름🧭 큰 그림데이터 수집 ↓[1차 DQ] 양 / 누락 체크 ↓데이터 가공 ↓[2차 DQ] 값 / 룰 검증 ↓데이터 저장 ↓[3차 DQ] 스키마 / PK / 최신성 ↓알림 · 차단 · 로그3️⃣ 단계별 DQ 수행 방법 (실무)📥 1. 수집 단계 DQ..

    DQ(Data Quality)란?

    📌 목차DE에서 DQ란 무엇인가DE에서 관리하는 DQ 항목 전체 맵수집 → 처리 → 저장 단계별 DQ 체크 항목실무에서 자주 쓰는 DQ 체크 예시1️⃣ DE에서 DQ란?**DE에서의 DQ(Data Quality)**는👉 *“데이터 파이프라인이 안정적으로, 신뢰 가능한 데이터를 만들어내는가”*를 의미해요.분석가/ML이 쓰기 전에엔지니어 단계에서 걸러야 할 품질 기준이 바로 DE의 DQ입니다.2️⃣ DE에서 관리하는 DQ 항목 전체 맵DE에서는 DQ를 기술적 관점 + 데이터 관점 둘 다 봅니다.🔹 핵심 DQ 분류 (DE 기준)구분DQ 항목설명데이터 값정확성 (Accuracy)값이 비정상적이지 않은가데이터 값완전성 (Completeness)NULL / 누락 데이터데이터 값유효성 (Validity)타입·포..

    Airflow Operator의 종류

    Operator란?Operator = Task를 “어떻게 실행할지” 정의한 템플릿DAG 안에서 실제 작업 내용을 담당하는 실행 단위Operator 큰 분류 (이거부터 기억)Airflow Operator는 크게 4가지로 나눠서 보면 이해가 쉬워 👇Action OperatorTransfer OperatorSensor OperatorUtility Operator1️⃣ Action Operator (실제 작업 실행)👉 “무언가를 실행한다”🔹 PythonOperatorPython 함수 실행PythonOperator( task_id="run_python", python_callable=my_func)✔ 간단한 로직✔ API 호출✔ 파일 처리🔹 BashOperator쉘 명령 실행BashOperator( ..

    Airflow란?

    Airflow란?Airflow는👉 데이터 작업을 “언제·어떤 순서로·어떻게” 실행할지 관리하는 도구야.한 줄로 말하면:“여러 작업(job)을 정해진 순서와 시간에 자동 실행해주는 오케스트레이션 도구”Airflow를 왜 쓰는가?데이터 작업 현실은 보통 이래 👇A 작업 끝나야 B 실행B 실패하면 C 실행하면 안 됨매일 새벽 2시에 자동 실행실패하면 알림 받고 재실행👉 이런 걸 사람이 수동으로 하면 바로 지옥👉 그래서 Airflow가 대신 관리핵심 개념 5가지 (이거만 알면 80%)1️⃣ DAG (Directed Acyclic Graph)작업 흐름 전체 설계도“이 작업 → 다음 작업” 관계 정의Extract → Transform → Load👉 순서가 있는 작업 묶음2️⃣ TaskDAG 안의 하나의 작..

    DBT를 왜 써야 하는가, 언제 써야 하는가?

    ✅ DBT를 왜 써야 하는가 (Why DBT?)☑️ 1. SQL 변환 로직이 많아지고 있다raw → 정제 → 집계 쿼리가 늘어남비슷한 SQL이 여기저기 복붙됨“이 테이블 누가 만들었지?” 상황 발생👉 DBT는 SQL을 ‘관리 대상 코드’로 바꿔줌☑️ 2. 데이터 품질 이슈를 사전에 잡고 싶다null 값중복 키잘못된 범위 값tests: - not_null - unique👉 쿼리 결과가 아니라 “데이터 자체를 테스트”☑️ 3. 실행 순서 관리가 힘들다테이블 A → B → C순서 틀리면 에러수동 실행은 한계👉 ref() 기반으로 DAG 자동 관리☑️ 4. 협업과 리뷰가 필요하다SQL도 리뷰 받고 싶다누가 어떤 로직을 바꿨는지 알고 싶다롤백이 필요하다👉 Git + PR + 코드리뷰 가능☑️ 5. 문서..

    DBT란?

    DBT란 무엇인가?**DBT(Data Build Tool)**는👉 데이터 웨어하우스 안에서 SQL로 데이터 변환을 관리해주는 도구야.한 줄로 말하면:“ETL에서 T(Transform)를 SQL + 소프트웨어 개발 방식으로 하게 해주는 도구”DBT가 왜 나왔을까?예전 데이터 흐름은 보통 이랬어:Python / Spark에서 데이터 가공가공된 결과를 DW에 적재로직이 여기저기 흩어짐 😵👉 문제점:SQL은 단순 조회용변환 로직은 코드/스크립트로 분산테스트, 버전 관리, 문서화가 약함그래서 등장한 개념이:ELTE (Extract): 데이터 수집L (Load): DW에 그대로 적재T (Transform): DW 안에서 SQL로 변환➡️ 이 Transform을 체계적으로 해주는 도구가 DBTDBT의 핵심 개념..