PART 02. 반응형 데이터플로우의 원리
PART 01에서 marimo를 설치하고 에디터를 열었다면, 이제 marimo가 어떻게 동작하는지 이해할 차례입니다. marimo와 Jupyter의 가장 큰 차이는 실행 모델에 있습니다. Jupyter는 사람이 셀을 하나씩 선택해서 실행하는 방식이고, marimo는 변수 의존 관계를 추적해 필요한 셀만 자동으로 재실행합니다. 이 PART는 그 원리를 구체적으로 다룹니다.
셀 사이에서 변수가 어떻게 흐르는지, 의존성 그래프(DAG)가 실행 순서를 어떻게 결정하는지, Jupyter에서 흔히 발생하던 hidden state 문제를 marimo가 어떻게 원천 차단하는지를 코드와 함께 설명합니다. 이 원리를 이해하면 왜 marimo에서 변수를 중복 정의하면 안 되는지, 왜 셀의 물리적 순서가 실행 순서와 다를 수 있는지가 자연스럽게 이해됩니다.
마지막으로 계산 비용이 큰 노트북을 위한 lazy 모드와, 실전에서 자주 만나는 두 가지 에러(MB002, MB003)의 해결 방법을 다룹니다.
이 파트를 마치면
- marimo의 전역 네임스페이스 규칙과 변수 단일 정의 원칙을 설명할 수 있습니다.
- 의존성 그래프(DAG)가 어떻게 셀 실행 순서를 결정하는지 이해하고, 셀 작성 순서와 실행 순서가 다를 수 있는 이유를 설명할 수 있습니다.
- Jupyter의 hidden state 문제가 무엇인지, marimo가 이를 어떻게 방지하는지 설명할 수 있습니다.
- lazy 모드를 설정하고 stale 상태의 셀을 수동으로 실행할 수 있습니다.
- MB002(중복 정의)와 MB003(순환 의존성) 에러가 발생하는 상황을 인식하고 수정할 수 있습니다.