Introduction

Apache Airflow에 적용 가능한 theme를 공식 repository에서 아래와 같이 확인할 수 있다.

airflow/config_templates/default_webserver_config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# ----------------------------------------------------
# Theme CONFIG
# ----------------------------------------------------
# Flask App Builder comes up with a number of predefined themes
# that you can use for Apache Airflow.
# http://flask-appbuilder.readthedocs.io/en/latest/customizing.html#changing-themes
# Please make sure to remove "navbar_color" configuration from airflow.cfg
# in order to fully utilize the theme. (or use that property in conjunction with theme)
APP_THEME = "bootstrap-theme.css" # default bootstrap
APP_THEME = "amelia.css"
APP_THEME = "cerulean.css"
APP_THEME = "cosmo.css"
APP_THEME = "cyborg.css"
APP_THEME = "darkly.css"
APP_THEME = "flatly.css"
APP_THEME = "journal.css"
APP_THEME = "lumen.css"
APP_THEME = "paper.css"
APP_THEME = "readable.css"
APP_THEME = "sandstone.css"
APP_THEME = "simplex.css"
APP_THEME = "slate.css"
APP_THEME = "solar.css"
APP_THEME = "spacelab.css"
APP_THEME = "superhero.css"
APP_THEME = "united.css"
APP_THEME = "yeti.css"
Read more »

Introduction

  • CI/CD
    • CI (Continuous Integration)
      • 개발자들이 자주 (일반적으로 하루에 여러 번) 자신의 코드 변경 사항을 메인 브랜치에 통합하는 프로세스
      • 이는 코드의 통합 문제를 조기에 견하고 해결하는 데 도움이 됩니다.
    • CD (Continuous Deployment/Delivery)
      • 자동화된 테스트를 통과한 모든 코드 변경 사항이 자동으로 프로덕션 환경에 배포되는 프로세스 (Continuous Deployment) 또는 프로덕션 환경에 배포될 준비가 되면 수동으로 배포될 수 있게 하는 프로세스 (Continuous Delivery).
  • GitHub Actions: GitHub에서 제공하는 CI/CD 플랫폼
    • Workflow를 .yml 또는 .yaml 파일로 정의하여 코드의 빌드, 테스트, 배포 등 다양한 자동화 작업 수행
  • Argo CD: Kubernetes를 위한 선언적, GitOps 연속 배포 도구
    • Git 저장소에 정의된 Kubernetes 명세를 cluster와 동기화하는 데 사용
    • Application의 배포 상태, 구성 차이 및 동기화 상태 시각화 대시보드 제공

이러한 GitHub Actions와 Argo CD를 통해 아래와 같은 CI/CD를 도전해본다.

schematic

Read more »

Introduction

Google Analytics 4 (GA4): Google의 최신 웹 및 앱 분석 플랫폼으로 GA4는 이전 버전인 Universal Analytics (UA)와 여러 가지 중요한 차이점이 있으며, 이는 기능, 보고서 구조, 데이터 모델링 및 추적 방법에 큰 변화를 불러왔습니다.

  • 이벤트 중심의 모델: 대부분의 상호작용이 이벤트로 처리되며 사용자 정의 이벤트 구현 간소화
  • 기계 학습 및 예측: 사용자 행동 분석과 예측에 기계 학습 알고리즘을 활용, 이탈률이 높거나 구매 가능성이 있는 사용자 예측
  • 세분화된 사용자 분석: 사용자의 전체 수명 주기에 기반한 분석 제공. ‘사용자’, ‘세션’, ‘액티베이션’, ‘이벤트’ 등의 보고서 확인 가능
  • 코드 없는 이벤트 추적: 인터페이스를 통해 코드 변경 없이 이벤트 생성 및 수정 가능
  • 향상된 크로스 플랫폼 추적: 웹과 앱 간 사용자 경험 추적 개선
  • 데이터 보존 및 삭제: 데이터 보존 기간 설정 및 자동 삭제 기능 제공
  • Audiences와 Segments: ‘세그먼트’ 대신 ‘Audiences’를 사용하여 사용자 그룹 정의
  • 향상된 사용자 프라이버시: GDPR, CCPA 등의 규정 대응을 위한 데이터 제거 및 조정 기능 강화
  • BigQuery 통합: 모든 속성에 대한 무료 BigQuery 연동, 원시 데이터 분석 용이
  • 새로운 보고서 및 인터페이스: 보고서와 인터페이스의 구조 변경

하지만 GA4는 여러 정보를 내포하고 있다보니 매 페이지의 로딩 시간이 매우 길다.
따라서 Apache Airflow를 통해 정기적으로 GA4의 API를 호출하고 Discord로 메시지를 보내는 DAG를 구성해보자!

Read more »

Introduction

신용카드 중 The More는 5,000원 이상의 결제 금액에 대해 1,000원 미만의 포인트가 적립된다.
이를 통신비와 같은 서비스에 분할결제로 적용하면 약 16.65%의 이득을 볼 수 있다. ($\because\frac{999}{5999}\times100$)
하지만 아래와 같은 제약이 존재한다.

동일한 가맹점의 경우 1일 1회에 한하여 포인트 적립이 되며, …

따라서 하루에 한 번만 The More 카드로 5,999원이 결제되도록 Apache Airflow의 DAG를 구성한다.
물론 논란은 많지만 개발도 연습하기 좋은 예제였다.

Read more »