marimo edit 첫 실행과 에디터 둘러보기
첫 노트북 만들기
가상환경이 활성화된 상태에서 아래 명령을 실행합니다.
marimo edit hello.py
브라우저가 자동으로 열리고 marimo 에디터가 표시됩니다. hello.py 파일이 없으면 새 파일을 만들고 빈 노트북이 열립니다.
브라우저가 자동으로 열리지 않으면 터미널에 출력된 주소를 직접 브라우저에 입력합니다.
에디터 화면 구성
에디터는 크게 세 영역으로 나뉩니다.
상단 툴바
노트북 이름, 실행 상태, 설정 버튼이 있습니다.
셀 영역 (가운데)
코드를 작성하고 결과를 확인하는 주 작업 공간입니다. 각 셀은 독립된 카드처럼 표시됩니다. 셀 위나 아래에 마우스를 올리면 새 셀을 추가할 수 있는 버튼이 나타납니다.
왼쪽 사이드바
에디터 왼쪽 가장자리에 아이콘 버튼이 나열되어 있습니다. 각 아이콘을 클릭하면 해당 패널이 열립니다. 주요 패널은 다음과 같습니다.
- Variables: 현재 정의된 변수 목록과 각 변수의 타입, 정의한 셀 위치를 표시합니다.
- Dependencies: 셀 간 변수 의존 관계를 그래프로 시각화합니다. 어떤 셀이 어떤 셀에 의존하는지 한눈에 확인할 수 있습니다.
- Packages: 현재 환경의 패키지 목록을 확인하거나 sandbox 모드에서 패키지를 설치합니다.
- Files, Outline, Documentation, AI 패널도 같은 사이드바에서 접근합니다.
첫 번째 셀 작성
셀 영역에 첫 번째 셀이 비어 있습니다. 클릭하면 커서가 위치하고 코드를 입력할 수 있습니다.
다음 코드를 입력합니다.
x = 10x
셀을 실행하려면 셀 오른쪽 아래의 실행 버튼을 클릭합니다. 키보드 단축키도 지원하며, 에디터 안에서 Ctrl/Cmd-Shift-H를 누르면 전체 단축키 목록을 확인할 수 있습니다.
실행하면 셀 아래에 10이 출력됩니다.
두 번째 셀 추가
첫 번째 셀 아래에 새 셀을 추가합니다. 셀 하단에 마우스를 올리면 나타나는 + 버튼을 클릭하거나, 첫 번째 셀이 선택된 상태에서 단축키로 새 셀을 추가합니다.
두 번째 셀에 다음 코드를 입력하고 실행합니다.
result = x * 3result
30이 출력됩니다. 이제 x를 다른 값으로 바꿔봅니다. 첫 번째 셀에서 x = 10을 x = 5로 수정하고 실행합니다.
두 번째 셀을 실행하지 않았는데도 결과가 15로 바뀝니다. 이것이 marimo의 반응형 실행입니다. x가 바뀌자 x에 의존하는 두 번째 셀이 자동으로 재실행되었습니다.
Variables 패널 확인
왼쪽 사이드바에서 Variables 패널을 열면 x와 result가 목록에 나타납니다. 각 변수가 어떤 셀에서 정의되었는지, 현재 값이 무엇인지 확인할 수 있습니다.
Dependencies 패널 확인
왼쪽 사이드바에서 Dependencies 패널을 열면 두 셀 사이에 x를 통한 의존 관계가 표시됩니다. 첫 번째 셀이 x를 정의하고, 두 번째 셀이 x를 사용하는 흐름을 시각적으로 확인할 수 있습니다.
이 그래프가 DAG(방향성 비순환 그래프)입니다. marimo는 이 그래프를 분석해 어떤 셀이 어떤 순서로 실행되어야 하는지 결정합니다.
파일 저장 확인
에디터에서 코드를 수정하면 hello.py 파일이 자동으로 저장됩니다. 파일을 열어보면 다음과 같은 구조입니다.
import marimoapp = marimo.App()@app.celldef _(): x = 5 return (x,)@app.celldef _(x): result = x * 3 return (result,)
셀은 @app.cell 데코레이터가 붙은 함수로 저장됩니다. 함수 파라미터는 이 셀이 의존하는 변수, return은 이 셀이 정의하는 변수입니다. marimo가 자동으로 관리하므로 에디터에서는 일반 Python 코드만 작성하면 됩니다.
에디터 종료
에디터를 종료하려면 터미널에서 Ctrl+C를 누릅니다. 파일은 이미 저장되어 있으므로 데이터 손실은 없습니다.