LabHub

블로그

노트북 환경 2026 — Jupyter / Marimo / Quarto / Observable Framework / Deepnote / Hex / Positron 심층 비교

한국어English日本語

프롤로그 — "노트북"이라는 단어가 너무 많은 것을 가리킨다

2026년 데이터 분석가, ML 엔지니어, 학생, 연구자가 모두 "노트북"이라고 부르는 것이 실은 네 개의 다른 도구다.

이 네 부류는 같은 ".ipynb" 확장자를 공유할 때도 있지만, 해결하려는 문제가 다르다. 그리고 2026년 현재, 어느 하나가 다른 것들을 흡수하지 못했다 — 오히려 각 카테고리 안에서 경쟁이 더 격렬해졌다.

이 글은 그 지도를 그린다. Jupyter 진영의 안정화, Marimo의 도전, Quarto가 만든 출판 파이프라인, Observable Framework의 정적 사이트 전략, 그리고 SaaS 두 축(Deepnote / Hex). 마지막으로 카카오·토스·Mercari·ZOZO가 실제로 어떻게 쓰는지까지.


1장 · 2026년 노트북 지도 — 4분류

분류대표 도구파일 포맷핵심 가치약점
클래식Jupyter Lab 5, Notebook 7, VSCode.ipynb (JSON)표준성, 생태계, 커널 다양성Hidden state, diff 어려움
반응형Marimo, Observable Framework, Pluto.jl.py / .md / .jl재현성, 의존성 자동 추적학습 곡선, 생태계 작음
출판Quarto, R Markdown, Curvenote.qmd / .Rmd / .mystPDF·HTML·논문 동일 소스인터랙티브 약함, 빌드 느림
SaaSDeepnote, Hex클라우드 전용협업, 스케줄, 권한락인, 가격, 오프라인 안 됨

핵심 통찰: "노트북"이라는 말로 한 카테고리를 다른 카테고리와 비교하면 항상 잘못된 결론이 나온다. Marimo가 Jupyter보다 "낫다"는 말은 반응형 vs 클래식 비교에서만 의미 있고, Hex가 Quarto보다 "낫다"는 말은 카테고리 자체가 다르다.

또 한 가지: 언어 생태계가 분류를 절반쯤 결정한다. R 사용자는 자연스럽게 RStudio → Positron / Quarto로 흐른다. Julia 사용자는 Pluto.jl. JS·D3 사용자는 Observable. Python은 모든 카테고리에 다 있다 — 그래서 Python 사용자가 가장 선택지가 많고, 가장 혼란스럽다.


2장 · Jupyter Lab 5 + Notebook 7 — 사실상 표준의 정착

2024년 Jupyter Lab 5가 정식 출시되면서 Lab 4 시절의 잔재(legacy extension system, jupyter-server 충돌)가 깔끔히 정리됐다. 2026년 현재 Lab 5는 다음을 안정적으로 제공한다.

Notebook 7은 "Classic Notebook UI를 Lab 위에 올린 것"이다. 즉, UI는 옛날 Jupyter 그대로지만 백엔드는 Lab과 같은 jupyter-server를 쓴다. 학생·교육 시장이 여전히 "Lab UI는 복잡하다"고 느끼기 때문에 살아남았다.

그래도 남는 문제 — Hidden state

Jupyter의 본질적 약점은 셀 실행 순서다. 다음을 본 적이 있을 것이다.

# 셀 1
x = 10

# 셀 2
y = x * 2

# 셀 3
x = 100  # 나중에 추가

셀 1 → 2 → 3 순서로 실행하면 y = 20이다. 하지만 노트북을 저장한 뒤 다시 열어서 셀 3 → 2 → 1 순서로 실행하면 y = 200이다. 같은 노트북, 다른 결과. 이게 Hidden state 문제다.

게다가 셀 3을 지워도 x = 100은 커널 메모리에 남는다. "Restart kernel and run all"을 누르기 전까지는 진실을 알 수 없다. 데이터 분석 보고서가 이 함정에 빠지면, 결과가 "재현되지 않는 분석"이 된다.

2018년부터 이 문제가 지적됐고, 여러 해결 시도가 있었다(papermill, nbdev, jupytext). 2024년 Marimo가 정면으로 답을 내놨다 — "그러면 반응형으로 다시 짜자."


3장 · Marimo (2024년 6월 출시) — 반응형 + .py 파일 포맷

Marimo는 Akshay Agrawal과 Myles Scolnick이 만들었다. 2024년 6월 일반 공개, 같은 해 시드 라운드를 마무리했다. 핵심 아이디어 두 개.

  1. 반응형 실행 그래프 — 셀 사이 변수 의존성을 추적, 한 셀 바꾸면 영향받는 모든 셀이 자동 재실행. Spreadsheet처럼.
  2. .py 파일 포맷 — 노트북이 순수 Python 파일이다. JSON이 아니라. git diff가 깔끔하게 나오고, IDE에서 그냥 import 가능.
# my_notebook.py — Marimo 노트북
import marimo

__generated_with = "0.10.0"
app = marimo.App()


@app.cell
def __():
    import pandas as pd
    return pd,


@app.cell
def __(pd):
    df = pd.read_csv("data.csv")
    return df,


@app.cell
def __(df):
    df.describe()
    return

이게 그대로 .py 파일로 저장된다. 셀 사이 변수가 반환값/인자로 명시되니까, 의존성 그래프가 정적으로 추적 가능하다.

Hidden state가 사라진다

추가 기능

단점

2026년 Marimo의 위치: Jupyter를 대체하지는 않았지만, 새로 시작하는 ML/데이터 프로젝트에서 점점 디폴트가 되고 있다. 특히 재현성을 신경 쓰는 연구실, MLOps 팀에서.


4장 · Quarto (Posit) — R / Python / Julia 통합 출판

Quarto는 RStudio가 2022년 회사 이름을 Posit으로 바꾸면서 내놓은 차세대 출판 시스템이다. R Markdown의 후계자로 시작했지만, 2026년 현재는 R·Python·Julia·Observable JS를 한 문서에 섞을 수 있는 출판 파이프라인이 됐다.

.qmd 파일 — 모든 것의 소스

---
title: "월별 매출 분석"
format:
  html:
    toc: true
  pdf:
    pdf-engine: xelatex
  docx: default
---

## 데이터 로딩

```{python}
import pandas as pd
df = pd.read_csv("sales.csv")
df.head()
```

## 시각화

```{r}
library(ggplot2)
ggplot(df, aes(month, revenue)) + geom_line()
```

같은 .qmd 파일에서 Python과 R 셀을 섞고, quarto render로 HTML·PDF·Word·EPUB 출력. 학술 논문(quarto-academic), 책(Quarto Book), 웹사이트(Quarto Website)까지 같은 도구로 빌드.

Pandoc + Jupyter 위에 얹은 레이어

내부적으로 Quarto는 Jupyter 커널로 셀을 실행하고, 결과를 Pandoc Markdown으로 직렬화한 뒤 Pandoc이 최종 포맷을 만든다. 즉, Quarto는 새 노트북 런타임이 아니라 출판 오케스트레이터다.

2026년 현재 위치

약점


5장 · Observable Framework — Mike Bostock의 정적 사이트 생성

Mike Bostock(D3.js 저자, Observable 창업자)이 2024년에 발표한 Observable Framework는 "노트북 = 정적 사이트 생성기"라는 모델이다. 기존 Observable Cloud(observablehq.com에서 호스팅되는 인터랙티브 노트북)와 별개의 오픈소스 프로젝트.

핵심 아이디어 — Data loaders

---
title: 매출 대시보드
---

```js
const sales = FileAttachment("data/sales.parquet").parquet();
```

# 월별 매출

```js
Plot.plot({
  marks: [
    Plot.line(sales, {x: "month", y: "revenue"})
  ]
})
```

별도 파일 data/sales.parquet.py가 빌드 시점에 실행되어 데이터를 생성.

누구를 위한 도구인가

약점

2026년 현재 Observable Framework은 데이터 시각화가 핵심인 프로젝트의 새 표준이 되고 있다. 일반 분석에는 안 쓴다.


6장 · Deepnote — 협업 클라우드 노트북

Deepnote는 체코·미국 기반 SaaS, 2019년 창업. 2024-2025년 OpenAI에서 시리즈 B 후속 투자 받음. 핵심 가치는 협업.

특징

누가 쓰나

약점


7장 · Hex — 데이터 사이언티스트 SaaS

Hex(샌프란시스코, 2019 창업)는 Deepnote의 직접 경쟁자다. 2024년 Snowflake가 일부 투자한 것으로 알려짐. 포지셔닝은 비슷한데, 강조점이 다르다.

차원DeepnoteHex
핵심 사용자데이터 사이언티스트 + 분석가데이터 사이언티스트 + BI
협업강함강함
SQL · Python 통합좋음매우 좋음 — SQL 결과를 Python df로 자동
Magic AI있음 (기본)매우 강함 (Hex Magic)
앱화Notebook → app 변환Notebook → app 변환 (앱이 1급 시민)
가격중간높음
한국·일본 시장중간낮음

Hex의 차별화

약점


8장 · Curvenote / Polars Notebook / Pluto.jl — 그 외 주목할 만한

Curvenote

과학 출판에 특화된 노트북 + 협업 도구. MyST Markdown(과학 문서용 Markdown 확장)을 기반으로, 인용·수식·figure 라벨 등 학술 논문 요구를 1급 지원. arXiv·journal에 PDF 제출용 워크플로우.

Polars Notebook

Polars(빠른 DataFrame 라이브러리) 팀이 2025년 발표한 새 노트북 프로젝트. Rust 백엔드로 인메모리 DataFrame 조작이 빠르고, SQL·Python·Polars expression이 한 노트북에서 매끄럽게 섞임. 아직 베타.

Pluto.jl

Julia 생태계의 반응형 노트북. Marimo와 같은 철학(셀 의존성 그래프, .jl 파일 포맷)을 Julia 세계에서 2019년부터 구현해온 선배. Julia 사용자라면 거의 디폴트.

Jupytext

Jupyter .ipynb를 .py / .md / .Rmd로 양방향 변환. "Jupyter는 쓰되 git diff는 깔끔하게"를 원하는 팀의 답. Marimo가 등장하기 전까지 가장 흔한 해법이었고, 지금도 많이 쓰임.


9장 · VSCode Notebooks + Positron (Posit, 2024년 5월) — IDE 노트북

VSCode Notebooks

VSCode는 2020년부터 .ipynb 1급 지원, 2026년 현재는 Jupyter Lab과 거의 동등한 기능. Python 확장 + Jupyter 확장 조합으로 셀 실행·디버깅·변수 인스펙터·플롯 뷰어 다 됨. AI 어시스턴트 통합(Copilot, Cursor, Cline 등)이 제일 자연스럽다 — 이게 VSCode를 노트북 환경으로 선택하는 가장 큰 이유.

Positron — RStudio의 후계자

Posit이 2024년 5월 공개한 차세대 IDE. RStudio가 R 중심이었다면, Positron은 R·Python을 동등하게 다룬다. 기반은 VSCode의 OSS 베이스(Code OSS)를 fork한 것.

특징:

누가 어디로 가나

사용자추천
R 사용자 (통계·역학·재무)Positron — RStudio 흐름 그대로
Python + AI 통합 중시VSCode (+ Cursor / Cline)
Python + RTC 협업 중시Jupyter Lab 5 (RTC)
R + Python 둘 다 매일Positron

10장 · "Hidden state" 문제와 반응형 노트북의 답

Hidden state는 노트북의 가장 큰 함정이다. 정리하면.

문제의 본질

  1. 셀이 임의 순서로 실행될 수 있다.
  2. 커널 메모리는 코드보다 오래 산다 — 셀을 지워도 변수는 남는다.
  3. 같은 변수명을 여러 셀에서 재정의하면, 어느 정의가 활성인지 코드로 알 수 없다.

이게 모이면 "이 노트북을 처음부터 다시 돌리면 같은 결과가 나오는가?"라는 질문에 자신 있게 답할 수 없는 상태가 된다.

해법 1 — 규율 (Jupyter 진영)

해법 2 — 반응형 런타임 (Marimo · Observable · Pluto.jl)

해법 3 — 영구적 결과물 분리 (Quarto · Papermill)

2026년 합의: 연구·분석 코드는 반응형으로, 출판은 Quarto로, 학습과 실험은 Jupyter로. 하나의 도구가 다 하지는 않는다.


11장 · R Markdown → Quarto 마이그레이션

Posit이 2022년 Quarto를 출시하면서 R Markdown은 "유지보수만 하고 신기능은 Quarto"라는 입장이 됐다. 2026년 현재 R 사용자의 Quarto 전환은 거의 끝났다.

마이그레이션 패턴

R MarkdownQuarto 대응
.Rmd.qmd
YAML output: html_documentformat: html
knitr::opts_chunk$set()execute: 옵션
bookdownQuarto Book
blogdownQuarto Website
pkgdownquartodoc (Python · 패키지 사이트는 별도 도구도 가능)
flexdashboardquarto-dashboard (2024 출시)

변환 도구

왜 옮기나


12장 · 한국 / 일본의 실제 사용 패턴

카카오 — 데이터 노트북 환경

카카오 데이터 조직은 사내 Kubernetes 위에 JupyterHub를 운영한다. 사용자별 컨테이너, GPU 요청·반납 자동화, S3 호환 객체 스토리지 통합. 2024-2025년 jupyter-ai 통합으로 셀 단위 LLM 호출이 추가됐고, 2026년부터 일부 팀이 Marimo를 파일럿.

특이점: 사내 데이터 워크플로우 시스템(Airflow + DataHub)과 노트북이 분리돼 있어서, 노트북에서 만든 분석은 따로 Airflow DAG로 옮겨야 운영. 이게 보통의 한국 대기업 패턴.

토스 — 분석 환경

토스는 데이터 분석가가 SQL 중심으로 일하고, 노트북은 한 단계 더 깊이 들어갈 때(코호트·이상치·ML 실험) 쓴다. JupyterHub + 사내 BI(Querypie 계열) 조합. 2025년 Hex를 일부 도입 검토했다는 채용 공고 흔적이 있음. Magic SQL과 협업 기능이 SQL 중심 분석가에게 매력적.

Mercari — 데이터팀

도쿄 본사의 데이터팀은 GCP 기반으로 BigQuery + Vertex AI Workbench(GCP가 제공하는 Jupyter Lab 호스팅) 조합을 오래 썼다. 2024년부터 일부 팀이 Deepnote 도입 — 협업과 스케줄 노트북이 필요한 BI 팀에서. Quarto는 사내 리서치 보고서 표준 포맷으로 채택됐다는 블로그 글이 있음.

ZOZO — 데이터·MLOps

ZOZO Research(ZOZO의 R&D 조직)는 Jupyter Lab + Kubeflow Notebooks 조합으로 ML 실험을 돌린다. 사내 GPU 클러스터 위. 논문 발표용 결과는 Quarto로 정리 — 학회 PDF 제출까지 한 파이프라인. 2026년 발표된 추천 시스템 논문 중 일부는 노트북 원본까지 함께 공개됐다.

공통 패턴 — APAC 기업의 노트북 선택


13장 · 누가 무엇을 골라야 하나 — 추천 정리

상황별로 정리.

학생 / 강의

개인 데이터 분석

ML 연구

팀 협업

데이터 저널리즘 · 인터랙티브 시각화

출판 · 논문 · 책

R 사용자

Julia 사용자

"딱 하나만 골라야 한다면"


14장 · 참고 / References

Jupyter

Marimo

Quarto / Posit / Positron

Observable

Deepnote / Hex

그 외

비교 / 해설

한국 · 일본 사례 (블로그·발표)

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다