iBetter Books
수정

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 = 10x = 5로 수정하고 실행합니다.

두 번째 셀을 실행하지 않았는데도 결과가 15로 바뀝니다. 이것이 marimo의 반응형 실행입니다. x가 바뀌자 x에 의존하는 두 번째 셀이 자동으로 재실행되었습니다.

Variables 패널 확인

왼쪽 사이드바에서 Variables 패널을 열면 xresult가 목록에 나타납니다. 각 변수가 어떤 셀에서 정의되었는지, 현재 값이 무엇인지 확인할 수 있습니다.

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를 누릅니다. 파일은 이미 저장되어 있으므로 데이터 손실은 없습니다.