본문 바로가기

전체 글159

Astronomer CLI 로 Airflow와 dbt 통합 가이드 with Cosmos 데이터 파이프라인을 운영하다 보면 Airflow로 오케스트레이션하고, dbt로 데이터 변환 작업을 수행하는 경우가 많습니다. 하지만 dbt 모델을 Airflow DAG로 변환하는 과정은 번거롭고, 유지보수도 어렵습니다.Astronomer Cosmos는 이 문제를 해결해주는 라이브러리입니다. dbt 프로젝트를 자동으로 Airflow DAG로 변환하여, dbt 모델 간의 의존성을 Airflow Task 의존성으로 표현합니다.이 글에서는 기존 Airflow 환경을 Astro CLI 기반으로 마이그레이션하고, Cosmos를 활용해 dbt와 통합하는 전체 과정을 다룹니다.1. Astro CLI 설치 및 프로젝트 초기화1.1 Docker 설치 확인Astro CLI는 Docker를 기반으로 동작하므로 먼저 Docke.. 2025. 11. 17.
Git Remote 연결 문제 해결 가이드 로컬에서 Git 리포지토리와의 연결이 끊어진 문제가 발생했을 때, 대처 방안에 대해 알아보겠습니다.초기 증상git branch# fatal: Unable to read current working directory: Operation not permitted터미널이 현재 작업 디렉토리를 읽을 수 없는 상태가 되었습니다.해결 과정1단계: Git Remote 상태 확인먼저 현재 Git remote 설정을 확인했습니다.git remote -v결과:origin https://{개인id}@github.com/{개인id}/{Repository}.git (fetch)origin https://{개인id}@github.com/{개인id}/{Repository}.git (push)개인 계정으로 연결되어 있었고, 회사.. 2025. 11. 13.
윈도우 함수(ROWS BETWEEN, UNBOUNDED PRECEDING) 이해하기 ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING 쿼리를 문제 상황을 설정하여, 실제 실무 데이터를 예시로 시각적으로 이해해보겠습니다.문제 상황유료 서비스 이용 데이터에서 순수 이용 기간을 계산해야 하는 상황입니다. 문제는 중복되거나 겹치는 기간들이 있다는 것이죠.예시 데이터SELECT 1 AS uidx, DATE('2022-01-01') AS valid_start, DATE('2022-03-01') AS valid_endUNION ALLSELECT 1 AS uidx, DATE('2022-02-01') AS valid_start, DATE('2022-05-01') AS valid_endUNION ALLSELECT 1 AS uidx, DATE('2022-03-01') .. 2025. 11. 12.
바바라민토, 논리의 기술 (피라미드 구조 문서 작성 기법) 1. 피라미드 구조1.1. 피라미드 내부의 관련성피라미드 내의 메시지는 독자로부터 질문을 유도할 수 있도록 기술한다.메시지는 수직적으로 관련되어 질의응답 형식으로 독자와 대화를 이끌어간다.메시지는 수평적으로 관련되어 연역적, 귀납적 추론을 통해 독자의 질문에 답변한다. 그러나 이 두 가지 방법을 동시에 적용할 수는 없다.도입부에서는 독자로 하여금 질문을 유발하게 하는 메시지를 기술한다.도입부는 본문에서 답변할 수 있도록 질문을 유발하는 구조로 전개되어야한다.수직적 질의응답 형식의 대화, 수평적 연역적 추론과 귀납적 추론 그리고 스토리 형식의 도입부 구성, 이 세 가지 기본 구조를 이용하면 생각을 명확하게 정리하여 피라미드 구조를 만들 수 있다.1.2. 피라미드의 구성요소는 상호 보완 관계다피라미드 정상의.. 2025. 10. 17.
Airflow의 ti(TaskInstance) 이해하기 Airflow를 처음 접하면 Task 간 데이터 전달이 헷갈리기 마련입니다. 특히 Traditional Operators 방식에서는 PythonOperator에서 반환값을 어떻게 전달하고, 다른 태스크에서 어떻게 받아야 하는지가 중요한 포인트입니다. 이 글에서는 그 핵심인 ti (TaskInstance)와 xcom (cross-communication) 개념을 정리합니다. 1. Traditional Operators 방식이란?Airflow 2.x에서는 크게 두 가지 방식으로 DAG를 정의할 수 있습니다.Taskflow API: @task 데코레이터 기반, 함수 호출만으로 Task 간 데이터 전달 가능Traditional Operators: PythonOperator, BashOperator 등 Opera.. 2025. 10. 17.
Apache Airflow 아키텍처 완벽 이해 Apache Airflow는 “데이터 파이프라인의 오케스트레이터”로 불리며, 복잡한 데이터 워크플로우를 관리하는 표준 도구입니다.하지만 Airflow를 처음 접하면, Worker / Executor / Scheduler / Webserver / Metastore / Operator / DAG / Task 같은 용어들이 혼란스럽게 다가올 수 있습니다.이번 글에서는 각 컴포넌트가 어떤 역할을 하고, 내부적으로 어떻게 서로 연결되어 동작하는지 한 장의 그림처럼 머릿속에 그려지도록 정리해보겠습니다.1. 핵심 컴포넌트 소개1.1. Workflow정의: DAG + Task의 집합(즉, 의존성으로 연결된 작업들의 집합)이 시간 단위로 실행되는 전체 과정을 의미합니다.특징: "매일 아침 9시에 MySQL에서 데이터를 .. 2025. 9. 28.
구글 시트로 jira 형태의 계획, 목표 관리 시스템 만들기(+구글 캘린더 연동) 기껏 열심히 개인 목표와 계획을 세웠는데, 기간을 맞추지 못해서 나머지 계획들을 다 미뤄야하는 상황에 처한 경험을 한 번쯤 해보셨을 겁니다. 그러면 다시 처음부터 계획을 짜야되고, 계획을 세우는게 오히려 시간이 더 잡아먹는 것 같고, 이러한 과정이 반복되다보면 아예 계획을 세우지 않게 되어버리죠. 저도 이러한 과정이 반복되다 보니, 계속해서 여러가지 방법을 시도해보았습니다. 그러다가 아이디어를 얻은 것이 jira 티켓입니다. 저는 회사에서 업무를 할 때, jira를 통해 계획을 세우고 업무를 합니다. jira로 계획을 관리하면 거의 일정을 맞추는 경우가 대부분이고, 일정을 맞추지 못하는 경우엔 기간을 조금 더 늘리거나, 새로운 티켓을 만들어서 관리하죠. 우선순위가 밀려서 하지 못할 것같은 작업들은 보관처.. 2025. 5. 22.
구글 시트 데이터를 AI로 분석 후, 슬랙에 리포트 전송 자동화하기 꼭 봐야하는 데이터를 구글 시트에 입력하여 대시보드를 만드는 경우는 정말 많습니다. 하지만 데이터 대시보드의 경우엔 수치들이 한눈에 잘 들어오지 않는 경우가 대부분이죠. 기업의 경우, 루커나 태블로를 활용하여 시각화 된 대시보드를 만들지만, 개인의 경우엔 그러한 기술을 배우거나 도입하는데에 부담이 많을 수 있습니다. 그러한 상황에 매번 구글 시트를 접속해서 수치를 파악하는데 불편함도 있고, 데이터를 해석하는 데에도 어려움이 있다면, 이 과정을 전부 AI로 자동화 시켜서 슬랙에 리포트 전송하는 프로세스를 만들면 됩니다. 처음에 만드는게 조금 시간이 걸리겠지만, 한 번 만들어두면 모든 과정이 자동화되니 장기적으로 목표 관리도 쉽게 할 수 있고, 시간도 효율적으로 사용하실 수 있을 것입니다. 지금부터 이 프.. 2025. 5. 15.
엑셀로 살펴보는 n년 후 자산 100억 달성 시뮬레이션 거의 모든 사람들은 다 재테크를 한다. 그런데 재테크의 목적이 뚜렷하지 않은 경우에는 돈이 잘 모이지 않는 경우가 많다. 30살에 얼마를 가지고 있으면 잘 모은 걸까? 또래 평균보다 많이 모으면 잘 모은 걸까? 그렇지 않다. 잘 모았다, 못 모았다의 기준은 오로지 본인에게 있다. 누군가는 지금 월급의 70%씩 악착같이 모아야 한다, 누군가는 한 번 사는 인생 그렇게 살고 싶지 않다 지금은 즐기고 싶다. 등등 각자 원하는 삶을 말하곤 하지만, 목표가 뚜렷하지 않은 한 모두 잘못된 방법이다. 그렇다면, 목표라는 건 무엇을 말하는 걸까? 본인이 앞으로 몇 년 더 일을 하고 싶고, 몇 살까지 살고 싶으며, 남은 생애 동안 얼마가 있으면 행복하게 살 수 있을 것인지에 대한 목표를 말한 것이다. 행복의 기준은 본인.. 2025. 5. 3.