iBetter Books
수정

PART 06. 프로젝트 1 _ 재현 가능한 EDA 노트북

PART 02에서 배운 반응형 DAG, PART 03에서 만든 UI 위젯, PART 04에서 익힌 SQL 탐색과 캐싱. 이 세 가지를 이제 하나의 완성된 노트북으로 조립할 시간입니다.

이 파트는 단순한 기능 실습이 아닙니다. "같은 코드를 실행하면 누구나 같은 결과를 얻는다"는 재현 가능성을 실제로 만들어보고 증명하는 프로젝트입니다. 대학원 연구실에서 분석 결과를 동료에게 공유하거나, 팀 내에서 EDA 과정을 문서화할 때 marimo가 얼마나 강력한 도구인지를 직접 체험하게 됩니다.

프로젝트 전체는 하나의 노트북 파일(eda_project.py)로 구성됩니다. 챕터마다 셀을 추가해가는 방식입니다. Ch 01에서 데이터를 적재하고 SQL로 기초 탐색을 합니다. Ch 02에서 위젯을 붙여 필터를 만들고, Ch 03에서 반응형 시각화 대시보드를 구성합니다. Ch 04에서는 이 노트북이 정말로 재현 가능한지를 검증하고 공유하는 방법을 다룹니다.

데이터셋은 코드로 생성하는 합성 데이터를 사용합니다. 외부 네트워크 없이도 동작하고, 고정 시드로 생성하기 때문에 누가 실행해도 동일한 데이터를 얻습니다. 재현 가능성을 증명하기에 이보다 적합한 출발점은 없습니다.

선행 지식: PART 02 (반응형 데이터플로우), PART 03 (mo.ui 위젯), PART 04 (데이터 다루기 _ SQL과 데이터프레임).

이 파트를 마치면

  • 고정 시드 합성 데이터를 한 번 생성하고, 나머지 셀은 그 데이터에만 의존하는 자족적 노트북을 구성할 수 있습니다.
  • mo.sql()로 Python 데이터프레임을 SQL 테이블로 참조해 기초 탐색 쿼리를 작성할 수 있습니다.
  • mo.ui.dropdown, mo.ui.slider, mo.ui.multiselect 위젯과 mo.sql()을 f-string으로 연결해 반응형 필터 파이프라인을 구성할 수 있습니다.
  • matplotlib 또는 plotly 차트를 mo.hstack()·mo.vstack()으로 배치해 대시보드 레이아웃을 만들 수 있습니다.
  • 고정 시드·변수 단일 정의·결정론적 DAG 실행이 재현성을 보장하는 원리를 설명하고, marimo check를 통해 노트북의 정적 유효성을 확인할 수 있습니다.
  • PEP 723 인라인 메타데이터 또는 requirements.txt로 의존성을 고정하고, .py 파일과 함께 git에 관리하는 공유 워크플로우를 적용할 수 있습니다.