PART 03. 인터랙티브 UI 만들기
PART 02에서 marimo의 반응형 실행 원리를 이해했습니다. 셀이 변수 의존 관계로 연결되고, 한 셀의 값이 바뀌면 의존 셀이 자동으로 재실행된다는 것을 배웠습니다. 이제 그 원리를 UI와 연결할 차례입니다.
marimo의 UI 위젯은 반응형 실행의 자연스러운 연장입니다. 슬라이더를 움직이거나 드롭다운에서 값을 고르는 순간, 그 위젯의 .value를 참조하는 셀이 DAG를 따라 자동으로 재실행됩니다. 사람이 손으로 "재실행" 버튼을 누를 필요가 없습니다. 위젯도 그냥 또 하나의 DAG 노드입니다.
PART 01 Ch 04에서 ipywidgets의 interact 패턴이 marimo에서 동작하지 않는다고 언급했습니다. 그 대신 어떻게 쓰는지를 이 파트에서 본격적으로 다룹니다. mo.ui.* 위젯 생성부터 시작해, 위젯 값을 다른 셀에서 읽는 반응형 연결, mo.md()를 이용한 동적 출력, 여러 입력을 묶어 한 번에 제출하는 폼 패턴, 그리고 anywidget 생태계 통합까지 순서대로 살펴봅니다.
이 파트를 마치면
mo.ui.slider,mo.ui.dropdown,mo.ui.text등 기본 위젯을 생성하고.value로 현재 값을 읽을 수 있습니다.- 위젯을 전역 변수로 정의하고 다른 셀에서
.value를 참조해 반응형 동작을 구현할 수 있습니다. mo.state()로 공유 상태를 만들고 여러 위젯 간 상태를 동기화할 수 있습니다.mo.md()에 f-string을 결합해 동적 마크다운을 출력하고,.batch().form()패턴으로 입력 묶음을 만들 수 있습니다.- anywidget 기반 커스텀 위젯을
mo.ui.anywidget()으로 래핑해 marimo 노트북에 통합할 수 있습니다.