Pluto.jl 1.0 릴리스 노트 / 새로운 기능

Pluto.jl 1.0은 6년간의 개발 끝에 Julia 반응형 노트북 환경을 안정적인 릴리스로 전환합니다. 이번 릴리스는 과학 계산 및 리터러트 프로그래밍(literate programming)을 위한 신뢰할 수 있고 접근하기 쉬우며 재현 가능한 환경을 제공하는 데 중점을 둡니다.

Core Functionality and Design Philosophy

Pluto는 고급 사용자보다 초보자를 위한 접근성을 우선시하는 Julia 언어를 위한 인터랙티브 노트북입니다. 전통적인 노트북과 달리, Pluto는 스프레드시트와 유사하게 셀을 변경하면 즉시 모든 종속된 셀이 업데이트되는 반응형 실행 모델을 활용합니다.

주요 설계 목표는 다음과 같습니다:

  • Interactivity: 버튼, 슬라이더, 반응형 셀에 대한 네이티브 지원.
  • Reproducibility: 노트북이 서로 다른 사용자에게서도 동일하게 실행되도록 실행 순서와 패키지 환경을 엄격하게 관리.
  • Accessibility: MIT의 Computational Thinking과 같은 교육 과정을 지원하도록 특별히 설계됨.

Reproducibility and Package Management

Pluto 1.0은 UI 기반 브라우저 테스트를 포함하여 약 2,500개의 자동 테스트 케이스를 통해 높은 신뢰성을 보장합니다.

Automatic Environment Handling

모든 노트북은 격리된 패키지 환경 내에서 작동합니다. 패키지는 필요에 따라 자동으로 추가되거나 제거됩니다. 다양한 Julia 버전 간의 재현성을 더욱 향상시키기 위해, Pluto는 GracefulPkg.jl을 사용하며 정밀한 버전 관리를 위한 전용 Project.toml 에디터를 제공합니다. 또한 GitHub에서 재현 가능한 패키지 임포트를 위한 Julia [sources] 기능을 지원합니다.

Sharing and Exporting Work

Pluto 노트북은 Julia 소스 코드, PDF, HTML로 내보보낼 수 있습니다. HTML 내보내기는 Julia 소스 코드와 패키지 환경을 포함하여 내보낼 당시의 노트북 상태를 정확히 렌더링하는 자기 완결형(self-contained) 방식입니다. 2025년 현재, 이러한 웹 자산들도 자기 완결형이므로 HTML 내보내기를 인터넷 연결 없이도 열 수 있습니다.

Web Publishing Tools

  • pluto.land: Pluto HTML 내보내기를 공유하기 위한 무료 웹 서비스.
  • static-export-template: 노트북 저장소로부터 웹사이트를 생성하는 도구.
  • PlutoSliderServer.jl: 방문자가 인터랙티브하게 사용할 수 있는 Pluto 기반 웹사이트를 호스팅하는 서비스.

Reactivity and Execution Control

Pluto의 반응형 특성은 빠른 실험을 가능하게 하지만, 이번 릴리스에서는 실행 시간이 긴 계산을 관리하기 위한 도구를 도입합니다:

  • Cell Disabling: 사용자는 특정 셀을 비활성화할 수 있습니다. 시스템이 반응형이기 때문에, 비활성화된 셀에 종속된 모든 셀 또한 자동으로 비활성화되어 사용자가 단 한 번의 동작으로 노트북의 큰 섹션을 종료할 수 있습니다.
  • Runtime Confirmation: Pluto는 이제 이전 실행 이력을 바탕으로 실행 시간이 오래 걸릴 것으로 예상되는 반응형 셀 체인을 트리거하기 전에 확인을 요청합니다.

Interactivity and UI Components

PlutoUI.jl은 슬라이더, 스위치, 버튼, 드롭다운, 멀티셀렉트, 텍스트 필드를 포함한 포괄적인 입력 위젯 세트를 제공합니다. 고급 사용자를 위해, 커스텀 위젯을 구축하기 위한 전용 Widgets API를 통해 JavaScript 런타임과 고성능 Julia-JS 연결을 사용할 수 있습니다.

교육용 목적을 위해, PlutoTeachingTools.jl은 학생의 입력에 반응하는 인터랙티브 강의 및 실시간 숙제 과제를 만드는 데 특화된 도구를 제공합니다.

Educational Features and Error Handling

Pluto는 학생들을 위해 대폭 최적화되었습니다. 환경은 학생들의 좌절감을 줄이기 위해 설계된 개선된 오류 경험을 제공합니다:

  • Simplified Stack Traces: 내부 Julia 함수는 흐릿하게 처리되며, 스택 트레이스는 클릭을 통해 확장하거나 축소할 수 있습니다.
  • Contextual Previews: 에디터는 오류 메시지 내에 사용자의 코드를 미니 프리뷰로 제공합니다.
  • PlutoTurtles.jl: 인터랙티브한 드로잉을 통해 기초 프로그래밍을 가하는 데 특화화된 패키지.

또한, computational-thinking-template는 검색 기능과 GitHub Actions 통합이 내장된 코스 웹사이트를 구축하기 위한 저장소 템플릿을 제공합니다.

Editor Tools and AI Integration

Pluto는 이제 CodeMirror 6에서 실행되는 새로운 Julia 파서(parser)를 활용하여 더 성능이 뛰어난 구문문법 매칭을을 가능하게 합니다.

Code Editing Enhancements

  • Autocomplete: 정적 JS 분석, 스코프 분석, 그리고 Julia REPL 결과가 결합된 시스템.
  • Developer Tools: jump-to-definition 지원, 혼합 언어 파싱(Julia 내부의 Python/SQL/HTML), 그리고 ANSI 색상 렌더링 지원.
  • Rich Object Viewer: LaTeX, SVG, PNG를 위한 고성능 디스플레이와 복잡한 데이터 구조를 위한 인터랙티브 트리 뷰어를 제공합니다.

AI Capabilities

Pluto의 AI 접근 방식은 보수적입니다.

Sources