Jupyter에서 marimo로 오기 — 무엇이 달라지나
Jupyter에서 marimo로 오기 — 무엇이 달라지나
이미 Jupyter에 익숙한 사람이 marimo를 처음 쓰면 "셀 실행 방식이 왜 이렇게 다르지?" 하는 생각이 들어요. 사실 그 차이가 marimo의 핵심이에요. 순차 실행(위→아래) 대신 반응형 실행으로 바뀌면서, 버그의 큰 원인이던 "숨은 상태(hidden state)"가 사라져요. Jupyter에서 넘어올 때 가장 먼저 이해할 차이를 짚어볼게요.
가장 큰 차이: 실행 모델
- Jupyter: 셀을 내가 순서대로 직접 실행해요. "위에서 아래로 실행했으니 변수가 남아있다"는 걸 본인이 기억해야 해요. 중간에 셀을 빼먹거나 순서를 바꾸면 결과가 어긋나요.
- marimo: 셀을 실행하면 그 변수를 쓰는 모든 셀이 자동으로 다시 실행돼요. 실행 순서를 내가 외울 필요가 없고, 코드와 출력이 항상 일치해요.
변수 이름 규칙
Jupyter에서는 같은 이름의 변수를 여러 셀에서 다시 정의할 수 있어요. marimo는 전역 변수가 오직 하나의 셀에서만 정의되도록 요구해요. 처음엔 제약처럼 느껴지지만, "이 변수는 어디서 왔지?"를 찾는 시간을 없애줘요.
mutation 미추적
Jupyter에서는 어느 셀에서든 객체를 수정할 수 있었어요. marimo는 변수 mutation(예: my_list.append(42))을 추적하지 않아요. 그래서 한 셀에서 정의하고 다른 셀에서 수정하는 습관을 버려야 해요 — 정의한 셀 안에서 수정하거나 새 변수를 만들어요.
마이그레이션 팁
- 기존
.ipynb노트북은 marimo로 변환할 수 있어요. 명령줄에서marimo convert를 쓰면 Jupyter 노트북을 marimo 형식으로 바꿔줘요. - 셀을 순서대로 뒤섞어도 되니, 헬퍼 함수는 아래에 두고 결과 셀은 위에 두는 자유로운 구성이 가능해져요.
- 의존성이 안 맞아 실행 순서가 꼬였다고 느껴지면, 데이터플로 그래프 뷰로 셀 간 연결을 한눈에 확인하세요.
더 알아보기
다른 도구(ipywidgets·Quarto 등)에서의 전환도 공식 Coming from other tools 가이드에서 다룹니다.