PART 07. 프로젝트 2 _ 인터랙티브 데이터 앱
PART 06에서 분석가를 위한 재현 가능한 EDA 노트북을 완성했습니다. 그 노트북은 분석 과정을 담고 있었습니다. 중간 결과와 탐색 쿼리, SQL 출력 테이블이 화면에 그대로 보였습니다. 분석가에게는 자연스러운 작업 환경이지만, 데이터에 익숙하지 않은 팀원이나 고객에게 공유하기엔 정보가 너무 많습니다.
이 파트의 목표는 다릅니다. 노트북을 코드가 숨겨진 데이터 앱으로 만드는 것입니다. 사용자는 위젯만 조작합니다. 드롭다운을 바꾸면 차트가 바뀌고, 슬라이더를 움직이면 지표가 갱신됩니다. 코드가 어떻게 돌아가는지 알 필요 없이 결과만 봅니다. 이것이 marimo run입니다.
프로젝트 파일은 app.py 하나입니다. PART 06의 합성 데이터를 그대로 재사용하되, 노트북을 처음부터 앱 용도로 설계합니다. Ch 01에서 앱 요구사항과 화면을 기획하고, Ch 02에서 SQL과 위젯과 차트를 통합하는 반응형 파이프라인을 완성합니다. Ch 03에서 mo.vstack과 mo.hstack으로 사이드바와 메인 영역을 갖춘 레이아웃을 구성합니다. Ch 04에서 marimo run app.py를 실행해 코드 없이 위젯만 보이는 앱 화면을 확인합니다.
레이아웃에 집중하는 것이 이 파트의 핵심 차이입니다. PART 06에서도 mo.hstack과 mo.vstack을 다뤘지만, 거기서는 차트를 나란히 놓는 수준이었습니다. 이 파트에서는 사이드바와 메인 영역을 나누고, 섹션 전환을 위젯으로 제어하고, 비율을 조정하는 등 레이아웃을 본격적으로 다룹니다.
선행 지식: PART 03 (mo.ui 위젯), PART 04 (데이터 다루기 _ SQL과 데이터프레임), PART 06 (프로젝트 1 _ 재현 가능한 EDA 노트북).
이 파트를 마치면
- 노트북과 앱 모드의 차이를 설명하고, 앱 목적에 맞게 화면 구역(입력 영역과 결과 영역)을 기획할 수 있습니다.
mo.hstack(widths=[1, 3])으로 사이드바와 메인 영역을 비율로 나누고 중첩 배치로 대시보드 레이아웃을 구성할 수 있습니다.mo.ui.radio또는mo.ui.dropdown으로 화면 섹션을 전환하는 패턴을 구현할 수 있습니다.- SQL 위젯 차트로 이어지는 반응형 파이프라인을 하나의
app.py에 통합할 수 있습니다. marimo run app.py로 앱 모드를 실행하고,--host와--port옵션으로 접근을 조정할 수 있습니다.- 편집 모드와 앱 모드의 차이(코드 표시 여부, URL 경로, 사용자 경험)를 설명할 수 있습니다.