본문 바로가기
Workflow Orchestration (3) - Dagstar Dagstar란? Dagster는 데이터 파이프라인을 관리하고 실행하는데 특화된 Python 기반 오픈소스 라이브러리로, asset 기반의 워크플로 오케스트레이션으로 동작한다. 특히 데이터 계보, 옵저빌리티, 선언적 프로그래밍 모델에 대해 높은 용이성을 제공하는 툴이다. 유료 버전인 Dagster+와 자체 인프라에 오픈소스를 배포하는 Dagster OSS 아키텍처를 활용할 수 있다. 이외에도 Hybrid 방식을 통해 클라우드와 온프레미스 방식을 같이 채용할 수도 있다.시작하기 Dagster는 Python 패키지 형태의 프로젝트를 생성하여 사용할 수 있다. 간단한 생성을 위해 CLI를 제공하기에 이를 통해 Python 패키지 구성이 쉽게 가능하다. . ├── pyproject.toml ├── README.. 2026. 1. 4.
Workflow Orchestration (2) - n8n n8n이란? 노드 기반 워크플로 자동화 플랫폼으로, GUI를 통해 노코드 기반으로 다양한 서비스와 어플리케이션을 연결하여 워크플로를 구축할 수 있다. (1)에서 살펴본 Airflow는 데이터 처리 워크플로가 메인이라면, n8n은 서비스 간 연동 및 자동화가 주요한 관심사로 볼 수 있다.n8n의 장점 n8n은 오픈소스 기반으로 동작하며, JavaScript 코드를 직접 작성하여 개인이 필요한 노드를 필요하에 구현하여 사용할 수 있는 자유도를 제공한다. 뿐만 아니라 셀프 호스팅 기능을 통해 직접 설치하여 사용할 수 있다.데이터 흐름 n8n 워크플로에서 데이터는 노드 간을 이동하며 처리된다. 트리거 노드에서 시작되어 연이어 전달되고, 자동화 작업을 수행할 수 있다.Splitting (데이터 분기)if 노드 :.. 2026. 1. 3.
Workflow Orchestration (1) - Airflow 워크플로 오케스트레이션에 대해 학습이 필요하다는 생각이 들었고, 단순히 Airflow면 오케이라는 생각이었다. 막상 시작하려니 Airflow만 있는 것은 당연히 아니었기에 이왕 공부하는 김에 연관 있는 툴에 대해 관심이 생겼다. 그래서 이번엔 워크플로 오케스트레이션들에 대해 학습을 순차적으로 해보기로 했다. 그렇지만 실제 사용 방법이나 호출 방법에 대한 학습은 프로젝트 등을 진행하면서 전부 공부하는 것이 좋다고 생각해, 우선 전체적인 개념이나 아키텍처 위주로 공부할 생각에 있다.Airflow란? Apache Airflow는 오픈소스 워크플로 관리 플랫폼으로 데이터 처리 작업을 자동화하고 관리하는 도구. 프로그래밍 방식으로 데이터 파이프라인을 작성, 스케줄링, 모니터링할 수 있다. 주로 ETL이나 ELT .. 2026. 1. 3.
Storage (File, Block, Object) 아키텍처 구성 중에 목표 프로젝트가 데이터를 다루는 만큼 데이터를 저장하는 장소에 대한 고려가 필요했다. 다양한 서비스를 활용할 수 있겠지만 결국 클라우드냐 온프레미스냐로 나눠서 고려하게 되었다. 그중에서 특히 시놀리지와 같은 NAS 장비를 홈에서 구축하는 방법에 관심이 생겼다. 비교를 위해서는 기존에 고려한 클라우드(S3) 방식과 어떤 차이가 있는지 공부가 필요하다 느꼈고, 아래와 같이 학습과 정리를 진행했다.왜 Storage? 기본적으로 저장소라 말하는 스토리지는 컴퓨터 사용자에게 익숙한 용어다. 기본적으로 컴퓨터는 메인 프로세서와 저장 장치를 가지고, 우리는 이를 활용해서 데이터를 생산, 가공하고 저장하게 된다. 여기서 조금 더 확장해서 PC가 아닌 여러 명의 사용자가 접근하는 커다란 시스템으로 바.. 2025. 11. 4.
Parquet이란 Parquet이 뭔가 간단히 말해서 데이터를 저장하는 형식으로 파일 포맷 중 하나다. 빅데이터 처리를 위해 빠른 읽는 속도, 압축률을 위한 포맷으로 위키백과엔 아래와 같이 나와있다.아파치 파케이(Apache Parquet)는 아파치 하둡 생태계에서 사용되는 자유-오픈 소스 컬럼 지향 데이터 저장 형식이다. RCFile 및 ORC와 같이 하둡의 다른 컬럼 기반 저장 파일 형식과 유사하며, 하둡 주변의 대부분의 데이터 처리 프레임워크와 호환된다. 대량의 복잡한 데이터를 처리하기 위한 향상된 성능과 함께 효율적인 데이터 압축 및 부호화 방식을 제공한다.- 출처 : 위키백과 Column 기반 저장 방식 parquet의 큰 특징은 Column을 기반으로 한 저장 방식으로, 이는 균일한 데이터 집합이 되므로 곧 높.. 2025. 10. 26.
이터널 리턴 조합 분석 사이트 개발 - 아키텍처 설계 서론 프로젝트에 앞서 전체적인 인프라 구성을 고려해 보았다. 특히 사이드 프로젝트로 진행하는 만큼 비용의 문제가 가장 크다고 생각했다. 그래서 최대한 비용과 학습의 사이에서 고민해 보자 하고, 프로젝트를 진행하면서 계속 수정할 예정이다.전체 기능 정리 우선 아키텍처 설계에 앞서 생각했던 프로젝트 구조를 3가지 부분을 나눠서 생각했다.API 호출 부분데이터 저장 부분웹 서비스 부분 여기서 데이터 저장 부분은 프로세스 자체를 메달리온 아키텍처 기반으로 생각했다. 데이터 저장 부분에 메달리온 아키텍처를 사용했는데, 이는 상세 아키텍처 설계를 진행하며 생각한 부분에 대해 설명하겠다.제약 사항 아키텍처를 구상하면서 제1번 제약 사항은 비용이었다. 결국은 학습 겸 사이드 프로젝트가 목표이기 때문에 수익 창출을 통해.. 2025. 9. 14.
이터널 리턴 조합 분석 사이트 개발 - 프로젝트 기획 서론 데이터 엔지니어링을 학습하기로 하고, 항상 기술 관련 공부는 프로젝트를 진행하면서 많이 배웠기 때문에 사이드 프로젝트를 진행하자고 생각했다. 학습과 병행하려면 시간이 좀 걸리겠지만 나름의 기준을 가지고 선택하고자 했다.프로젝트 목표 Steam에서 서비스 중인 온라인 게임 중 `이터널 리턴`이라는 게임이 있다. 3인이 1팀으로 배틀로얄 게임을 진행하는 게임으로 전반적인 플레이 및 스킬이 MOBA 장르에서 가져왔고, 팀이 어떤 전략을 취하냐가 게임에서 중요한 요소가 된다. MOBA 장르에서 기반한 것이 많다보니 캐릭터별 상성이 존재하고, 상성을 팀으로 어떻게 극복하냐가 중요해진다. 특히 3인이라는 적은 인원으로 팀을 구성하는 만큼 캐릭터를 조합하여 강한 팀을 만들어야 1등 할 가능성이 높아지는 게임이다.. 2025. 9. 14.
소프트웨어 아키텍처 및 시스템 설계 - (6) 빅데이터 아키텍처 해당 시리즈는 【한글자막】 소프트웨어 아키텍처 및 대규모 시스템 설계 강의를 보고 정리한 내용입니다.빅데이터 아키텍처빅데이터?매우 크거나, 아주 복잡하거나, 매우 빠른 속도로 시스템에 들어와 기존 어플리케이션의 처리 속도를 뛰어 넘는 데이터셋다음의 특징을 가짐Volume처리, 저장, 분석해야 하는 데이터의 양하루에 테라바이트나 페타바이트 이상을 처리함Variety다양한 소스의 비정형 데이터를 수집하여 처리해야 함모든 데이터를 처리하고 결합하여 새로운 인사이트를 얻는데 활용됨Velocity시스템의 규모가 크거나 이벤트 빈도가 잦아 빠른 속도로 데이터가 들어오게 됨빅데이터 처리의 목적경쟁사보다 강력한 서비스 경쟁력데이터 시각과, 쿼리 능력, 예측 분석을 통한 인사이트결과적으로 다양한 비정형 데이터 스트림을.. 2025. 9. 14.
소프트웨어 아키텍처 및 시스템 설계 - (5) 소프트웨어 아키텍처 패턴 해당 시리즈는 【한글자막】 소프트웨어 아키텍처 및 대규모 시스템 설계 강의를 보고 정리한 내용입니다.소프트웨어 아키텍처 패턴 - 멀티 티어 아키텍처시스템 계층을 논리적, 물리적으로 나눈 것논리적 분리는 각 계층의 책임의 범위를 결정함물리적 분리는 각 팀마다 시스템을 배포 또는 업그레이드, 확장하는 영역멀티 레이어 아키텍처와 다른 개념으로 하나의 어플리케이션에 대한 멀티 레이어 아키텍처와 달리 각 계층마다 별도의 기기에 실행됨물리적 계층을 분리하면서 배포와 업그레이드가 분리되어 진행되는 이점이 있으나 설계가 단순해지는 제약 사항이 존재함인접한 계층과 짝을 이루는 어플리케이션들은 클라이언트 - 서버 형식으로 동작함계층을 뛰어넘어서 통신을 할 순 없음제약 사항을 통해 각 계층 간 결합이 느슨해짐변형 패턴 -.. 2025. 9. 14.
소프트웨어 아키텍처 및 시스템 설계 - (4) 데이터 스토리지 해당 시리즈는 【한글자막】 소프트웨어 아키텍처 및 대규모 시스템 설계 강의를 보고 정리한 내용입니다.데이터 스토리지 - 관계형 데이터베이스대규모 시스템에서 항상 스토리지 비용은 큰 문제임장단점장점복잡하고 유연한 쿼리를 사용할 수 있음가격 절감 가능 (중복 레코드 관리 측면에서 적은 공간 사용)추론하기 쉬움 (직관성)ACID 트랜잭션단점스키마 테이블이 강요됨 (테이블 구조 변경의 어려움)유지 관리 및 크기 조정에 대해 높은 비용ACID를 지키기 위한 비교적 느린 성능데이터 스토리지 - 비관계형 데이터베이스관계형 데이터베이스의 문제를 해결하기 위해 도입관계형 데이터베이스는 일부 레코드에 대한 정보를 넣더라도 모든 레코드에 대한 관리가 필요함비관계형의 경우 기존 레코드에 영향을 주지 않고, 하나 혹은 여러 .. 2025. 9. 14.
소프트웨어 아키텍처 및 시스템 설계 - (3) 빌딩 블록(DNS, 로드밸런스, 메시지 브로커) 해당 시리즈는 【한글자막】 소프트웨어 아키텍처 및 대규모 시스템 설계 강의를 보고 정리한 내용입니다.빌딩 블록 - DNS, 로드밸런싱, GSLB로드 밸런싱시스템의 여러 서버에 트래픽 부하를 나누는 것기본적으로 클라이언트는 여러 서버에 부하를 분산하기 위해서 각 서버의 주소를 알고 있어야 함각 요청은 이 서버의 주소와 강하게 결합됨이는 클라이언트 서비스 구현 내부적으로 강한 결합이 발생하고, 이를 수정하는 건 어려운 일이 됨로드 밸런서는 여러 서버에 부하를 나누어 단일 서버에 과부하를 피하게 함대개 추가적으로 서버에 대한 추상화 기능을 제공함이는 하나의 큰 서버를 이용하는 것과 같이 보임로드 밸런스로 얻을 수 있는 품질 속성확장성부하가 증가함에 따라 인스턴스를 수평적으로 확장 가능(Scale Out)부하.. 2025. 9. 14.
소프트웨어 아키텍처 및 시스템 설계 - (2) 인터페이스 해당 시리즈는 【한글자막】 소프트웨어 아키텍처 및 대규모 시스템 설계 강의를 보고 정리한 내용입니다.API 설계 개요API란?시스템을 블랙 박스라고 했을 때, 동작 이외에도 인터페이스를 만들게 됨클라이언트나 다른 엔지니어와 협의를 통해 만든 인터페이스를 통해 호출됨이 인터페이스를 Application Programming Interface라고 함API 구별개방형 API일반 대중에게 공개된 API회원 가입을 통해 API 접근 권한이나 사용자 파악을 하게 됨Private API사내에서 접근하고 활용하는 API계약된 대상에게만 공개되는 차이가 있음파트너 API잘 정의된 API잘 정의된 API는 클라이언트가 우리 어플리케이션을 잘 몰라도 쉽게 활용할 수 있게 함API를 미리 잘 정의해두면 클라이언트는 모든 기.. 2025. 9. 14.