데이터 파이프라인 7

[Kafka 초보자 가이드 Ep.02] 메시지 큐와 Kafka의 차이점

이 글에서는 전통적인 메시지 큐(RabbitMQ, ActiveMQ 등)와 Apache Kafka 간의 핵심적인 차이점을 살펴봅니다. 아키텍처, 성능, 활용 사례, 데이터 처리 방식 등 여러 측면에서 두 시스템을 비교하여 각각 어떤 상황에서 더 적합한지 이해할 수 있도록 도와드립니다.📌 메시지 큐와 Kafka: 개념 비교메시지 큐와 Kafka는 모두 애플리케이션 간 비동기 통신을 지원하는 미들웨어지만, 근본적인 설계 철학과 목적에 차이가 있습니다. ✅ 메시지 큐(Message Queue)란?애플리케이션 간 메시지를 전달하는 중간 저장소 역할주로 작업 부하 분산, 비동기 처리, 시스템 간 결합도 감소를 위해 설계AMQP(Advanced Message Queuing Protocol)와 같은 표준 프로토콜 기..

[Kafka 초보자 가이드 Ep.01] Kafka란 무엇인가?

이 글에서는 Apache Kafka의 기본 개념, 탄생 배경과 문제 해결 목적을 알아보겠습니다. 분산 시스템의 메시지 처리에 관심 있는 분들에게 Kafka가 왜 중요한지, 그리고 어떤 특징을 가지고 있는지 명확히 이해할 수 있도록 도와드립니다.📌 Kafka의 정의와 핵심 특징Kafka는 LinkedIn에서 개발되어 2011년 오픈소스로 공개된 분산 이벤트 스트리밍 플랫폼입니다. 간단히 말하면, Kafka는 다양한 시스템 간에 대용량 데이터를 안정적으로 주고받을 수 있게 해주는 메시징 시스템입니다. ✅ Kafka의 세 가지 핵심 기능데이터 스트림 발행(publish)과 구독(subscribe) - 다른 시스템에서 발생한 이벤트를 실시간으로 주고받을 수 있습니다데이터 스트림 저장 - 내구성 있게 데이터를 ..

[Airflow 가이드 ep.8] 2부 DAG 작성 #3 | Branching, SubDAG, Dynamic DAG 활용 전략

이 글에서는 Airflow DAG 작성의 고급 기법인 Branching, SubDAG, Dynamic DAG에 대해 알아봅니다. 기본적인 DAG 구조를 넘어 더 복잡하고 유연한 워크플로우를 구현하는 방법을 실전 예제와 함께 살펴보겠습니다. 다양한 비즈니스 로직을 Airflow에 효과적으로 구현하기 위한 전략을 배워보세요.📌 Branching 이해하기Airflow에서 Branching은 조건에 따라 다른 경로로 워크플로우를 분기하는 기능입니다. 데이터 처리 파이프라인에서 상황에 맞게 다른 작업을 수행해야 할 때 유용합니다.✅ BranchPythonOperator의 기본 원리BranchPythonOperator는 Python 함수의 반환값에 따라 워크플로우의 다음 경로를 결정합니다.  from airflo..

[Airflow 가이드 ep.6] 2부 DAG 작성 #1 | DAG 생성 기초: 기본 구조와 파라미터 이해

이 글에서는 Airflow DAG 파일을 작성하는 기본 방법에 대해 알아봅니다. DAG 파일의 기본 구조와 필수 파라미터들을 상세히 살펴보고, 실제 예제를 통해 DAG 작성법을 익혀보겠습니다. 초보자도 쉽게 이해할 수 있도록 각 요소를 하나씩 설명합니다.📌 DAG 파일의 기본 구조✅ DAG 파일이란?DAG(Directed Acyclic Graph) 파일은 Airflow에서 워크플로우를 정의하는 Python 파일입니다. 이 파일은 작업(Task)과 작업 간의 의존성(Dependencies)을 정의하여 워크플로우의 실행 순서와 방식을 결정합니다.DAG 파일은 기본적으로 다음과 같은 구조를 갖습니다:필요한 라이브러리 임포트기본 인자(default_args) 정의DAG 객체 인스턴스 생성Task 정의Task ..

[Airflow 가이드 ep.1] 1부 개념과 설정 #1 | 워크플로 자동화란? Airflow의 필요성과 기본 개념

이 글에서는 워크플로 자동화의 개념과 Apache Airflow가 등장하게 된 배경, 그리고 Airflow의 기본 개념에 대해 알아봅니다. 데이터 파이프라인 자동화의 필요성부터 Airflow가 제공하는 주요 기능까지, 초보자도 이해할 수 있도록 상세히 설명합니다.📌 워크플로 자동화란 무엇인가?✅ 워크플로 자동화의 정의워크플로 자동화란 일련의 작업들을 사전에 정의된 규칙과 조건에 따라 자동으로 실행되도록 구성하는 것을 말합니다. 이는 반복적인 작업을 줄이고, 인적 오류를 최소화하며, 작업의 효율성과 신뢰성을 높이는 데 큰 도움이 됩니다.▶️ 실무 예시: 매일 아침 데이터베이스에서 데이터를 추출하여 가공하고, 분석한 결과를 이메일로 보내는 작업을 생각해 보세요. 이 모든 과정을 매번 수동으로 처리한다면, ..

EP31 | 고급 Python 활용 #20 | Spark 기반 데이터 파이프라인 배포 전략

이 글에서 다루는 개념Spark 기반의 데이터 파이프라인을 효율적으로 배포하고 운영하는 전략을 다룹니다.이번 글에서는 다음 내용을 학습합니다.Spark 데이터 파이프라인 배포 개요Spark 배포 모드별 장단점 (Standalone, YARN, Kubernetes)Airflow와 Spark 연동하여 파이프라인 자동화CI/CD를 활용한 Spark 파이프라인 배포Spark 작업 모니터링 및 유지보수 방법1️⃣ Spark 데이터 파이프라인 배포 개요📌 데이터 파이프라인 배포란?데이터를 수집 → 처리 → 저장하는 Spark 애플리케이션을 운영 환경에 배포하는 과정실시간 또는 배치 처리 방식에 따라 다른 배포 전략 적용📌 Spark 배포 방식 비교 배포 방식 설명 장점 단점 Standalone단일 Spar..

EP30 | 고급 Python 활용 #19 | Spark를 활용한 데이터 엔지니어링 Best Practices

이 글에서 다루는 개념Apache Spark를 활용한 데이터 엔지니어링에서 성능 최적화, 유지보수성 향상, 안정적인 데이터 처리를 위한 Best Practices를 다룹니다.이번 글에서는 다음 내용을 학습합니다.Spark 데이터 엔지니어링 Best Practices 개요데이터 읽기/쓰기 성능 최적화메모리 및 실행 최적화 (Shuffle, Partitioning)모니터링 및 디버깅 기법데이터 파이프라인 유지보수 전략1️⃣ Spark 데이터 엔지니어링 Best Practices 개요📌 Spark 성능 최적화를 위한 핵심 전략 최적화 대상  주요 기법 데이터 읽기/쓰기CSV 대신 Parquet/ORC 포맷 사용실행 계획 최적화cache(), persist() 사용메모리 최적화적절한 repartition()..

728x90