기존에 파이썬은 HTML 및 자바스크립트를 반환하는 애플리케이션 서버로 실행해야만 자바스크립트 또는 웹 페이지와 상호작용할 수 있었다. 하지만 파이스크립트에는 서버 구성요소가 없다. 모든 것이 브라우저에서 직접 실행된다는 게 아나콘다 측 설명이다. 파이스크립트를 사용하면 파이썬 및 자바스크립트의 유용한 구성요소를 나란히 배포할 수 있다. 일례로 NYC 택시 데이터 데모인 파이스크립트는 판다스(Pandas)를 활용하여 데이터를 분석한 다음, 자바스크립트의 웹GL(WebGL)을 통해 데이터의 인터랙티브 3D 뷰를 생성한다.
파이스크립트는 인라인 파이썬 코드를 실행하기 위해 웹어셈블리에 C파이썬 런타임의 전체 포트를 사용한다. 파이썬 코드를 <py-script> 태그 안에 넣고, 해당 출력을 선택한 <div>에 배치할 수 있다. <py-repl> 태그는 코드를 입력하고 실행할 수 있는 REPL 블록을 삽입하며, <py-env> 태그는 필요한 패키지를 나열하기 위해 저장소의 requirements.txt 파일과 같은 기능을 한다.
또 파이스크립트 런타임은 아나콘다와 함께 번들로 제공되는 과학 계산용 라이브러리(예: 넘파이(NumPy), 판다스(Pandas), 사이킷런(Scikit-learn)) 등의 일반적인 파이썬 패키지를 활성화한다. 파이스크립트 저장소 데모는 이를 수행하는 다양한 방법을 제공한다.
파이스크립트 프로젝트는 아직 초기 단계이지만 이미 파이썬과 자바스크립트를 상호 운용할 수 있는 기능을 제공한다. 이를테면 파이썬이 DOM을 참조하거나 자바스크립트 객체가 파이썬 객체를 처리할 수 있다. 아울러 파이스크립트는 스크립트의 패키지 요건을 나열하는 것을 비롯하여 파이썬 배포에 필요한 많은 동작과 관련해 브라우저 내 상응 기능도 활성화한다.
이러한 맥락의 초기 프로젝트(예: 파이어다이드(Pyodide))는 자바스크립트와 파이썬 간 파이스크립트의 원활한 통합 그리고 패키지의 광범위한 액세스가 부족했다. 파이스크립트는 파이-피-아이(PyPI)를 통해 사용 가능한 모든 패키지에 액세스할 수 있으며, 일반적으로 활용되는 판다스 및 넘파이는 이미 쓸 수 있다고 회사 측은 전했다.
하지만 서드파티 패키지는 순수한 파이썬일 때 가장 원활하게 작동한다. 파이스크립트에는 아직 패키지용 플랫폼 바이너리를 자동으로 빌드하는 메커니즘이 없지만 이론적으로는 가능하다. 또 다른 문제는 제공되는 파이스크립트 지원 웹 페이지의 모든 구성요소를 다운로드하고 설정하는 데 필요한 시간과 대역폭이다. 핵심 파이썬 런타임은 약 3.4MB의 웹어셈블리이며, 첫 번째 로드 후에 캐시된다.
파이썬 스트립트, 특히 종속성이 높은 스크립트를 가져와 파이썬 런타임 없이 그대로 사용할 수 있도록 번들로 묶는 것은 오랫동안 어려운 일이었다. 아나콘다는 파이스크립트의 목표가 파이썬 애플리케이션 패키징 및 배포의 오래된 문제에 한 가지 해결책을 제시하는 것이라고 밝혔다. ciokr@idg.co.kr