이 책의 구성과 대상 독자
대상 독자
이 책은 다음 조건을 갖춘 독자를 기준으로 작성했습니다.
- Python을 사용해본 경험이 있습니다. (기초 문법, 함수, 클래스 수준)
- Jupyter Notebook 또는 JupyterLab을 사용해본 경험이 있습니다.
- Pandas의 기초 데이터프레임 조작을 알고 있습니다.
marimo를 처음 접하는 독자를 가정합니다. Streamlit이나 Gradio 경험은 있어도 없어도 관계없습니다.
선행 지식 요약
| 지식 | 수준 | 필요 PART |
|---|---|---|
| Python 문법, 함수, 리스트/딕셔너리 | 기초 | 전체 |
| Pandas DataFrame 기초 | 기초 | PART 04, 06, 07, 08 |
| SQL SELECT 기초 | 기초 | PART 04 |
| scikit-learn 기초 | 기초 | PART 08 |
| git 기초 | 기초 | PART 05 |
12개 PART 구성
| PART | 제목 | 핵심 주제 |
|---|---|---|
| PART 00 | 들어가기 | marimo 소개, 도구 비교, 책 구성 |
| PART 01 | 개발 환경 준비하기 | 설치, 버전 고정, 첫 실행 |
| PART 02 | 반응형 데이터플로우의 원리 | DAG, 변수 규칙, hidden state 해소 |
| PART 03 | 인터랙티브 UI 만들기 | mo.ui 위젯, 폼, anywidget |
| PART 04 | 데이터 다루기 _ SQL과 데이터프레임 | DuckDB SQL, Polars/Pandas, 캐싱 |
| PART 05 | Jupyter에서 marimo로 마이그레이션 | convert 명령, 패턴 변환, git 협업 |
| PART 06 | 프로젝트 1 _ 재현 가능한 EDA 노트북 | 공개 데이터셋 탐색, 반응형 시각화 |
| PART 07 | 프로젝트 2 _ 인터랙티브 데이터 앱 | SQL·위젯·차트 통합, 레이아웃 |
| PART 08 | 프로젝트 3 _ ML 실험 추적 노트북 | 하이퍼파라미터 제어, 재현성 확보 |
| PART 09 | 노트북을 앱으로 배포하기 | marimo run, WASM, Docker |
| PART 10 | 실전 운영과 함정 | 디버깅, 성능, 보안, CI/CD |
| PART 11 | 마무리 | 핵심 정리, 버전 대응 전략 |
권장 학습 경로
목적에 따라 PART를 선별해 읽어도 됩니다.
처음부터 순서대로 (추천): PART 00부터 11까지 차례로 읽습니다.
빠른 시작 (기본 사용법만): PART 00, 01, 02, 03을 읽습니다.
Jupyter 마이그레이션 우선: PART 00, 01, 02를 읽은 뒤 05로 건너뜁니다.
앱 배포 우선: PART 00, 01, 02, 03을 읽은 뒤 07과 09로 이어갑니다.
ML 워크플로우 우선: PART 00, 01, 02, 03, 04를 읽은 뒤 08로 이어갑니다.
각 PART의 첫 페이지에는 해당 PART의 선행 지식과 선행 PART가 명시되어 있습니다. 중간부터 시작하려면 먼저 선행 요구사항을 확인하세요.
이 책에서 다루지 않는 것
- marimo 소스 코드 분석 및 기여(contribution) 방법
- Jupyter 이외 도구(VS Code 노트북, Google Colab 등)와의 비교
- 특정 도메인 분석 기법(시계열, NLP 등)의 심층 이론
- 운영 환경에서의 Kubernetes 오케스트레이션
예제 코드 환경
이 책의 모든 예제는 다음 환경에서 작성되었습니다.
- Python 3.11 이상
- marimo 0.23.x (PART 01 Ch 02에서 버전 고정 방법 안내)
- 주요 라이브러리: Polars, Pandas, DuckDB, anywidget
특정 버전에서 동작이 다를 경우 해당 챕터에서 별도로 안내합니다.