본문으로 건너뛰기
VellumVellum 열기

페이지 안에서 바로, 25개 언어로 코드 실행.

페이지의 펜스 코드 블록은 실행할 수 있는 셀이 돼요. 코드는 일반 Markdown 그대로이고, 출력, 표, 차트는 페이지와 함께 저장돼요. 모든 것이 기기의 샌드박스에서 실행돼요.

표를 공유하는 JavaScript 셀과 그 합계를 구하는 SQL 셀이 있는 Vellum 페이지, 그 옆에 페이지의 Markdown.
표를 공유하는 JavaScript 셀과 그 합계를 구하는 SQL 셀이 있는 Vellum 페이지, 그 옆에 페이지의 Markdown.

페이지 속에 사는 코드

GitHub나 Obsidian에서처럼 언어를 붙여 펜스 코드 블록을 쓰세요. 읽기 보기나 분할 보기에서는 실행 버튼이 있는 셀이 돼요. 코드는 페이지의 Markdown에 남으니 페이지를 어디로든 옮길 수 있어요. 셀이 출력한 내용, 반환한 표, 그린 차트는 페이지와 함께 저장되고 다시 열면 그대로 돌아와요.

```python
import pandas as pd
runs = pd.DataFrame({"month": ["Jan", "Feb", "Mar"], "km": [42, 51, 63]})
runs.describe()
```

25개 언어, 내 기기에서

JavaScript, TypeScript, Python, SQL, Lua, Shell (emulated), Ruby, PHP, R, Perl, Go, Rust, C, C++, OCaml, Haskell, Zig, C#, F#, Java, Clojure, Elixir, Erlang, Scheme, Prolog.

각 언어는 처음 실행할 때 다운로드되고(Lua나 JavaScript는 수백 KB, Rust는 수십 MB), 그 뒤로는 오프라인으로 작동해요. 설정 → 코드 런타임에서 미리 다운로드해 두면 비행기나 기차에서도 쓸 수 있어요.

코드는 페이지와 언어마다 워커를 하나씩 두는 샌드박스 프레임에서 실행돼요. 앱, 다른 페이지, 네트워크를 읽을 수 없어요. 그 페이지에 허용하지 않는 한 셀은 네트워크에 접근할 수 없어요.

노트북처럼 작업하기

언어 간 데이터 공유

한 페이지의 셀들은 언어가 달라도 서로 데이터를 넘길 수 있어요. 한쪽에서 share(name, value), 다른 쪽에서 use(name)을 쓰세요. 표는 표로 도착해요. JavaScript에서 행을 공유하고 SQL로 조회해 보세요.

```js
share("runs", [{ month: "Jan", n: 4 }, { month: "Feb", n: 7 }])
```

```sql
select sum(n) as total from runs;
```

입력, 파일, 패키지

Vellum에서 첫 코드 셀 실행하기

  1. 페이지 열기

    페이지를 만들거나 이미 있는 페이지를 여세요.

  2. 코드 블록 쓰기

    백틱 세 개와 언어 이름(예: ```python)을 입력하고, 코드를 쓴 다음, 백틱 세 개로 닫으세요.

  3. 실행하기

    읽기 보기나 분할 보기로 바꾸고 셀에서 실행을 누르세요(셀 편집기에서는 Shift+Enter). 처음에는 언어를 다운로드해요.

  4. 결과 남기기

    출력은 페이지와 함께 저장돼요. 셀 메뉴를 열면 모두 실행, 변수 등 노트북 명령이 있어요.

앱에서

자주 묻는 질문

Jupyter를 대신할 수 있나요?

많은 노트북에서는 그래요. .ipynb 파일을 열고 내보내며 출력도 유지해요. 다만 각 언어의 WebAssembly 빌드를 브라우저에서 실행하기 때문에, 무거운 계산, GPU, 일부 네이티브 패키지에는 여전히 Jupyter가 필요해요. Vellum과 Jupyter를 참고하세요.

코드가 인터넷에 접근할 수 있나요?

허용하지 않으면 안 돼요. 웹에 접근하려는 셀은 먼저 물어보고(한 번, 이 페이지에서 항상, 또는 거부), 모든 요청은 셀 아래에 기록돼요.

오프라인에서도 작동하나요?

네. 각 언어는 처음 쓸 때 한 번 다운로드되고 그 뒤로는 기기에 보관돼요. 설정에서 모든 언어를 미리 다운로드할 수도 있어요.