Offcanvas

개발자 / 애플리케이션

“브라우저의 파이썬” 아나콘다, ‘파이스크립트’ 공개

2022.05.03 Serdar Yegulalp  |  InfoWorld
과학 계산용 파이썬 배포판을 개발하는 아나콘다(Anaconda)가 파이콘 US 2022(PyCon US 2022)에서 ‘파이스크립트(PyScript)’ 프로젝트를 발표했다. 회사에 따르면 파이스크립트는 사용자가 파이썬과 표준 HTML을 결합하여 브라우저에서 풍부한 파이썬 애플리케이션을 만들 수 있도록 지원하는 프레임워크다. 브라우저 내 단일-포함(single-include) 방식으로 HTML 페이지에서 자바스크립트만큼 쉽게 파이썬 스크립트를 실행할 수 있도록 한다. 
 
ⓒGetty Images Bank

기존에 파이썬은 HTML 및 자바스크립트를 반환하는 애플리케이션 서버로 실행해야만 자바스크립트 또는 웹 페이지와 상호작용할 수 있었다. 하지만 파이스크립트에는 서버 구성요소가 없다. 모든 것이 브라우저에서 직접 실행된다는 게 아나콘다 측 설명이다. 파이스크립트를 사용하면 파이썬 및 자바스크립트의 유용한 구성요소를 나란히 배포할 수 있다. 일례로 NYC 택시 데이터 데모인 파이스크립트는 판다스(Pandas)를 활용하여 데이터를 분석한 다음, 자바스크립트의 웹GL(WebGL)을 통해 데이터의 인터랙티브 3D 뷰를 생성한다. 
 
뉴욕의 택시 현황을 실시간 렌더링하는 파이스크립트 데모 ⓒIDG

파이스크립트는 인라인 파이썬 코드를 실행하기 위해 웹어셈블리에 C파이썬 런타임의 전체 포트를 사용한다. 파이썬 코드를 <py-script> 태그 안에 넣고, 해당 출력을 선택한 <div>에 배치할 수 있다. <py-repl> 태그는 코드를 입력하고 실행할 수 있는 REPL 블록을 삽입하며, <py-env> 태그는 필요한 패키지를 나열하기 위해 저장소의 requirements.txt 파일과 같은 기능을 한다.  

또 파이스크립트 런타임은 아나콘다와 함께 번들로 제공되는 과학 계산용 라이브러리(예: 넘파이(NumPy), 판다스(Pandas), 사이킷런(Scikit-learn)) 등의 일반적인 파이썬 패키지를 활성화한다. 파이스크립트 저장소 데모는 이를 수행하는 다양한 방법을 제공한다. 

파이스크립트 프로젝트는 아직 초기 단계이지만 이미 파이썬과 자바스크립트를 상호 운용할 수 있는 기능을 제공하고 있다. 이를테면 파이썬이 DOM을 참조하거나 자바스크립트 객체가 파이썬 객체를 처리할 수 있다. 아울러 파이스크립트는 스크립트의 패키지 요건을 나열하는 것을 비롯하여 파이썬 배포에 필요한 많은 동작과 관련해 브라우저 내 상응 기능도 활성화한다. 

이러한 맥락의 초기 프로젝트(예: 파이어다이드(Pyodide))는 자바스크립트와 파이썬 간 파이스크립트의 원활한 통합 그리고 패키지의 광범위한 액세스가 부족했다. 파이스크립트는 파이-피-아이(PyPI)를 통해 사용 가능한 모든 패키지에 액세스할 수 있으며, 일반적으로 활용되는 판다스 및 넘파이는 이미 쓸 수 있다고 회사 측은 전했다. 

하지만 서드파티 패키지는 순수한 파이썬일 때 가장 원활하게 작동한다. 파이스크립트에는 아직 패키지용 플랫폼 바이너리를 자동으로 빌드하는 메커니즘이 없지만 이론적으로는 가능하다. 또 다른 문제는 제공되는 파이스크립트 지원 웹 페이지의 모든 구성요소를 다운로드하고 설정하는 데 필요한 시간과 대역폭이다. 핵심 파이썬 런타임은 약 3.4MB의 웹어셈블리이며, 첫 번째 로드 후에 캐시된다. 

파이썬 스트립트, 특히 종속성이 높은 스크립트를 가져와 파이썬 런타임 없이 그대로 사용할 수 있도록 번들로 묶는 것은 오랫동안 어려운 일이었다. 아나콘다는 파이스크립트의 목표가 파이썬 애플리케이션 패키징 및 배포의 오래된 문제에 한 가지 해결책을 제시하는 것이라고 밝혔다. ciokr@idg.co.kr

 
추천 테크라이브러리

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.