• 기존 데이터 백엔드 개발의 복잡성과 느린 속도를 해결, TypeScript나 Python으로 데이터 분석 백엔드를 빠르게 개발할 수 있게 해주는 오픈소스 프레임워크
  • 기본 제공 스택(ClickHouse, Redpanda, Temporal)과 향후 다양한 클라우드 플랫폼 확장 예정
  • 로컬 개발을 단순화하여 빠른 테스트와 즉각적인 핫 리로드를 지원
  • 다양한 데이터 집약적 애플리케이션 구축에 적합하며, 실시간 분석, 데이터 이관, 이벤트 스트리밍 등에 활용 가능함

Moose

  • Moose는 TypeScript 또는 Python 코드만으로 데이터 분석 백엔드를 구축할 수 있게 해주는 프레임워크임
  • 기존 데이터 백엔드 개발 툴링이 느리고 복잡한 문제를 해결하기 위해 존재함
  • 오늘날 툴링으로 분석 백엔드를 구축하는 데 걸리는 문제

    • 툴 분산 문제
      Kafka, ClickHouse, Postgres, dbt, Airflow 등 수많은 서비스 통합에 시간을 소모하게 됨
    • 스키마 불일치 문제
      코드 모델, 데이터베이스 스키마, API 검증, 메시지 포맷이 시간이 지나며 불일치하게 됨
    • 개발 워크플로우의 어려움
      로컬 테스트 부재, 긴 배포 주기, 잦은 컨텍스트 전환으로 개발 생산성 저하 발생
    • SQL 전용 처리
      익숙한 프로그래밍 언어 대신 SQL만 사용해야 하는 불편함 존재
  • 직접 구축하는 경우 발생하는 문제

    • 단순한 필드 추가에도 다음 작업을 모두 수작업으로 처리해야 함
      • TypeScript/Python 코드 모델 수정
      • 데이터베이스 스키마 수정
      • Kafka 토픽 업데이트
      • 런타임 검증 업데이트
      • 변환 및 쿼리 업데이트
    • 매번 모든 변경을 안전하게 테스트하는 데 많은 시간과 노력이 필요함

Moose의 해결 방식

  • Moose가 제공하는 것

    • TypeScript나 Python 코드 자체가 데이터 애플리케이션 로직과 인프라의 단일 소스 역할을 함
    • 코드 기반으로 다음을 보장함
      • 완전한 타입 안전성과 검증
      • 보일러플레이트 코드 제거
      • 개발 단계에서 오류 사전 발견
  • 컨텍스트 전환 제거

    • 데이터베이스 테이블 명명 규칙, 모델/테이블 필드 동기화 여부, 필드 Nullable 여부 등을 고민할 필요 없음
  • 로컬 개발

    • 원클릭 실행
      단 하나의 명령어로 전체 데이터 인프라를 로컬에 실행 가능함
    • 제로 설정
      모든 컴포넌트가 미리 구성되어 있어 별도 세팅 불필요함
    • 프로덕션 환경과 동일한 구조
      실제 배포 환경과 동일한 기술 스택 사용
    • 실시간 피드백
      변경 사항이 스택 전체에 즉시 반영됨
  • 일반적인 개발 워크플로우

    • 모델 추가나 변경 시 저장하면 로컬 인프라에 즉시 핫 리로드됨
    • 새로운 필드를 추가하면 API, 스트림, 데이터베이스에 즉시 적용됨
    • 파이프라인 테스트도 로컬 인제스트 API로 샘플 데이터를 전송해 바로 확인 가능함
  • 핫 리로딩 워크플로우

    • 모델 수정 후 저장만 하면 변경 사항이 자동 반영됨
    • 추가된 필드는 API 검증, 데이터베이스 스키마, 스트림에 자동 적용됨
  • 모듈성

    • 필요한 컴포넌트만 선택하여 구성할 수 있음

기본 제공하는 Moose 스택

  • ClickHouse
    기본 활성화된 OLAP 데이터베이스
  • Redpanda
    Kafka 호환 이벤트 스트리밍 플랫폼 (비활성화 가능)
  • Temporal
    워크플로 오케스트레이션 툴 (비활성화 가능)
  • 계획 중인 확장

    • Snowflake, Databricks, BigQuery
      클라우드 데이터 웨어하우스 지원 예정
    • Kafka, Kinesis, Pulsar
      다양한 Kafka 호환 이벤트 스트리밍 플랫폼 지원 예정

Moose로 구축할 수 있는 것들

  • 사용자용 실시간 분석
    리더보드, 차트, 메트릭 등을 웹/모바일 앱에 통합
  • BI 및 데이터 웨어하우스
    다양한 데이터 소스를 수집하여 분석 데이터베이스 구축 및 리포트 생성
  • 데이터 마이그레이션
    레거시 시스템에서 최신 데이터 백엔드로 데이터 이동
  • 이벤트 스트리밍
    Kafka, Redpanda 등의 스트리밍 플랫폼에서 이벤트 실시간 처리
  • ETL 작업
    다양한 소스의 데이터를 정기적으로 수집하고 분석 환경에 적재