본문으로 건너뛰기
피드

줄리아 반응형 노트북 Pluto가 6년 만에 1.0을 찍었다

open-source 약 7분
vote
0
댓글
북마크

줄리아용 반응형 노트북 환경 Pluto.jl이 6년 개발 끝에 1.0을 공개했다. 이번 1.0 자체는 제거된 deprecated 기능 정도로 조용하지만, 재현성, 공유, 반응형 실행, 교육용 기능, 접근성, 편집기 도구까지 지난 몇 년의 누적 개선을 정리한 릴리스에 가깝다.

  • 1

    Pluto는 셀 변경이 자동으로 의존 셀에 반영되는 줄리아용 반응형 노트북 환경이다

  • 2

    노트북마다 격리된 패키지 환경을 갖고 HTML 내보내기에는 소스와 패키지 환경까지 포함된다

  • 3

    100명 이상 수업에서도 설치와 실행 문제가 거의 없었다는 사례와 약 2500개 자동 테스트를 내세운다

  • 4

    AI 기능은 문법 오류 자동 수정 정도로 제한하고, 코드 작성 학습 도구라는 정체성을 유지한다

  • 줄리아(Julia)용 반응형 노트북 Pluto.jl이 6년 만에 1.0을 공개함

    • 1.0.0 자체는 ‘deprecated 기능 제거’ 한 건짜리 PR이라 화려한 릴리스는 아님
    • 대신 지난 몇 년 동안 쌓인 재현성, 공유, 반응형 실행, 교육 기능, 편집기 개선을 한 번에 정리한 선언에 가까움
  • Pluto의 핵심은 ‘노트북인데 스프레드시트처럼 반응한다’는 점임

    • 셀 하나를 바꾸면 의존하는 다른 셀이 즉시 다시 계산돼서 모델 실험이나 시각화 튜닝이 빠름
    • 버튼, 슬라이더, 드롭다운 같은 입력 위젯을 붙이기 쉬워서 강의 자료나 인터랙티브 글로 쓰기 좋음
  • 재현성에 꽤 집착하는 노트북 환경이라는 게 제일 큰 차별점임

    • 각 노트북이 독립된 Pkg 환경을 갖고, 필요한 패키지는 자동으로 추가·제거됨
    • 다른 사람이 노트북을 열면 같은 패키지 버전을 쓰도록 설계돼 있음
    • GracefulPkg.jl로 줄리아 버전이 섞일 때의 재현성도 보완했고, Project.toml 편집기로 패키지 버전 제어도 더 세밀해짐

중요

> Pluto 팀은 약 2500개의 자동 테스트를 돌리고, 브라우저에서 실제 UI를 클릭하고 타이핑하는 테스트까지 포함한다고 밝힘. 노트북 도구에서 이 정도로 ‘수업 전체가 같은 방식으로 실행되는가’를 강조하는 건 꽤 실용적인 포인트임.

  • 공유 기능도 단순 PDF 저장 수준이 아님

    • Julia, PDF, HTML로 바로 내보낼 수 있음
    • HTML export는 노트북이 보이던 모습뿐 아니라 줄리아 소스 코드와 패키지 환경까지 담는 self-contained 파일임
    • 2025년부터는 Pluto 웹 자산도 자체 포함돼서 인터넷 없이 HTML export를 열 수 있음
  • Pluto 기반 웹사이트를 만드는 경로도 꽤 정리됨

    • static-export-template로 노트북 저장소를 웹사이트로 자동 생성할 수 있음
    • PlutoSliderServer.jl을 쓰면 Pluto 기반 사이트를 즉시 인터랙티브하게 제공할 수 있음
    • pluto.land라는 무료 공유 서비스도 나왔는데, Pluto HTML export 전용 pastebin 같은 포지션임
  • 반응형 실행이 강력한 만큼, 긴 실행 시간을 제어하는 기능도 추가됨

    • 셀을 비활성화하면 해당 셀은 의존성이 바뀌어도 자동 실행되지 않음
    • 더 중요한 건 이 비활성화도 반응형이라, 비활성화된 셀에 의존하는 셀들도 같이 멈춤
    • 이전 실행 시간을 바탕으로 오래 걸릴 반응형 실행 체인이 감지되면 실행 전 확인을 띄우는 기능도 생김
  • 교육용 도구로서의 방향이 꽤 선명함

    • Pluto는 MIT의 Computational Thinking 수업을 가르치기 위해 설계된 배경이 있음
    • 에러 메시지는 초보자가 겁먹지 않도록 스택트레이스를 설명하고, 내부 줄리아 함수는 흐리게 처리하고, 필요한 부분만 클릭해 펼치는 식으로 다듬음
    • PlutoTeachingTools.jl, computational-thinking-template, PlutoTurtles.jl 같은 교육용 생태계도 같이 커졌음
  • 접근성과 현지화도 ‘있으면 좋은 기능’ 정도가 아니라 꽤 넓게 챙김

    • 키보드만, 마우스만, 터치만 쓰는 환경을 개선했고 시각 접근성, 스크린리더 지원도 다뤘음
    • 중국어, 독일어, 프랑스어, 일본어, 페르시아어, 폴란드어 등 16개 언어를 지원함
  • AI 기능은 의도적으로 좁게 잡았다는 점이 흥미로움

    • Pluto 팀은 ‘vibe coding 도구가 될 계획은 없다’고 선을 그음
    • 현재 AI 기능은 빠진 end나 따옴표 같은 문법 오류 자동 수정 정도임
    • 코드를 대신 써주는 도구가 아니라, 사용자가 줄리아 코드를 더 잘 쓰게 돕는 도구라는 입장을 유지함
  • 편집기 쪽도 노트북치고는 꽤 진지하게 발전함

    • CodeMirror 6에서 동작하는 새 줄리아 파서를 만들었고, 이를 기반으로 문법 패턴 매칭 기반 기능을 다시 작성함
    • 자동완성은 자바스크립트 파서의 정적 분석, 스코프 분석, 줄리아 REPL 자동완성 결과를 조합함
    • 정의로 이동, 키보드 단축키, Python·SQL·HTML을 줄리아 안에서 쓰는 mixed language parser, ANSI 컬러 렌더링, rich object viewer도 개선됨
  • 생태계 기여도 제법 큼

    • Malt.jl, HypertextLiteral.jl, GracefulPkg.jl, MIMEs.jl, ExpressionExplorer.jl, PlutoDependencyExplorer.jl 같은 패키지를 만들거나 키움
    • 저장소도 개인 중심에서 JuliaPluto 조직으로 옮기고, 거버넌스와 아키텍처 문서도 정비함

기술 맥락

  • Pluto가 재현성을 강하게 미는 이유는 노트북이 원래 공유에 약하기 때문이에요. 코드와 설명은 한 파일에 있어도, 패키지 버전이나 실행 순서가 조금만 달라지면 결과가 깨지기 쉽거든요.

  • 그래서 Pluto는 노트북마다 격리된 패키지 환경을 두고, 실행 순서도 반응형 의존성 그래프로 관리해요. 사용자가 위에서 아래로 순서대로 실행했는지에 기대지 않고, 어떤 셀이 어떤 셀에 의존하는지를 도구가 추적하는 방식이에요.

  • HTML export에 소스 코드와 패키지 환경까지 넣는 것도 같은 맥락이에요. 결과 화면만 예쁘게 저장하는 게 아니라, 읽을 수 있으면 다시 실행할 수 있게 만들겠다는 쪽에 가까워요.

  • AI 기능을 문법 오류 수정으로 제한한 것도 제품 철학과 이어져요. Pluto는 학습자가 코드를 이해하고 고쳐보는 환경을 지향하니까, 모델이 통째로 코드를 대신 짜는 방향보다는 막히는 지점을 작게 풀어주는 쪽을 택한 거예요.

데이터 과학 노트북은 편한 만큼 재현성이 자주 무너지는데, Pluto는 그 문제를 제품 철학의 한가운데에 둔 쪽이다. 줄리아 생태계를 쓰는 팀이라면 ‘노트북을 문서이자 실행 가능한 산출물로 어떻게 공유할 것인가’에 대한 꽤 좋은 참고 사례다.

댓글

댓글

댓글을 불러오는 중...

open-source

러스트로 다시 만든 로컬 코딩 에이전트 ‘파이’, 자동화까지 노린다

파이는 기존 pi 코딩 에이전트를 러스트로 다시 만든 터미널 기반 AI 코딩 에이전트다. 프로젝트 안에서 파일을 읽고 수정하고, 셸 명령을 실행하고, 세션을 이어가며, 로컬 모델과 여러 모델 제공자를 쓸 수 있다. 단순 채팅 UI가 아니라 트리거, 크론, MCP 알림, 에이전트 간 허브 메시징까지 넣은 로컬 에이전트 런타임을 지향한다.

open-source

윈도우 95 시절 쉘 API로 만든 명령줄 도구, WinUtils 회고

글쓴이가 1996~1997년에 만든 WinUtils는 윈도우 95의 쉘 API를 감싼 얇은 명령줄 도구 모음이었다. 직접 파일 입출력을 구현하는 대신 탐색기와 같은 복사, 이동, 삭제, 휴지통, 확인창 동작을 그대로 활용한 점이 핵심이다.

open-source

Paseo, 여러 코딩 에이전트를 한 화면에서 돌리는 오픈소스 인터페이스 공개

Paseo는 Claude Code, Codex, Copilot, OpenCode, Pi 같은 코딩 에이전트를 한 인터페이스에서 실행하고 관리하는 오픈소스 도구다. 로컬 daemon이 에이전트 프로세스를 관리하고, 데스크톱·모바일·웹·CLI 클라이언트가 여기에 연결되는 구조라 자기 개발 환경 위에서 병렬 작업을 돌릴 수 있다.

open-source

리눅스에서 놀고 있는 엔비디아 VRAM을 스왑 공간으로 쓰는 오픈소스 프로젝트

하이브리드 그래픽 노트북에서 유휴 엔비디아 GPU의 VRAM을 리눅스 스왑 공간으로 활용하는 프로젝트가 공개됐다. CUDA 드라이버 API로 VRAM을 할당하고, 이를 NBD 블록 디바이스로 노출해 일반 스왑처럼 쓰는 방식이다. 순차 처리량은 NVMe보다 느리지만, 드문드문 발생하는 스왑 접근에서는 평균 지연 시간이 335마이크로초로 NVMe의 9.05밀리초보다 27배 빠르다는 결과가 흥미롭다.

open-source

괄호가 싫어도 한 번은 봐야 할 작은 리스프, 재닛

글쓴이는 취미 프로젝트용 언어로 작은 리스프 계열 언어인 재닛을 몇 년째 쓰고 있고, 무료 책까지 쓸 정도로 꽂혔다. 핵심은 문법 장난이 아니라 작은 런타임, 네이티브 실행 파일 배포, 파싱 표현 문법, 셸 스크립팅, 매크로, 컴파일 타임 실행이 한데 묶인 실용성이다.