PyScript 언어: 브라우저에서 Python 직접 실행

발행: (2026년 2월 15일 오전 03:43 GMT+9)
8 분 소요
원문: Dev.to

Source: Dev.to

PyScript란 무엇인가?

PyScript는 최신 웹 기술을 사용하여 브라우저에서 Python을 실행할 수 있게 해주는 프레임워크입니다. 이를 통해 개발자는 JavaScript를 작성하지 않고도 DOM과 상호작용하고, 데이터를 처리하며, UI를 렌더링하는 Python 코드를 작성할 수 있습니다.

인기 있는 Python 배포판 및 데이터‑science 생태계를 제공하는 Anaconda가 구축하고 유지 관리합니다.

왜 PyScript가 존재하는가

PyScript 이전에 웹에서 Python을 실행한다는 것은:

  • 백엔드 API 작성 (Flask / Django / FastAPI)
  • 프런트엔드 로직을 위해 JavaScript 프레임워크 사용
  • API를 통해 Python과 JavaScript 연결

PyScript는 클라이언트‑사이드 Python 실행을 가능하게 하여 이 분리를 없애고 다음을 가능하게 합니다:

  • Python‑우선 웹 애플리케이션
  • 브라우저 기반 데이터 과학 및 시각화
  • 교육용 및 인터랙티브 Python 콘텐츠
  • 백엔드 인프라 없이 빠른 프로토타이핑

PyScript 작동 방식 (내부)

핵심 구성 요소

  1. WebAssembly 런타임

    • Python은 Pyodide를 사용하여 WebAssembly로 컴파일됩니다.
    • 보안 브라우저 샌드박스에서 실행됩니다.
  2. Pyodide

    • 웹용으로 컴파일된 Python 배포판입니다.
    • NumPy, Pandas, Matplotlib 등을 포함합니다.
  3. HTML 통합

    • 맞춤 HTML 태그 (<py-script>, <py-config>)를 통해 Python을 실행할 수 있습니다.
    • Python은 DOM 요소를 직접 조작할 수 있습니다.

기본 PyScript 예제

최소 HTML + Python

print("Hello from Python running in the browser!")

빌드 도구 없음. 백엔드 없음. JavaScript 필요 없음.

Python으로 DOM 접근하기

Submit

from js import document

def greet(event):
    name = document.getElementById("name").value
    document.getElementById("output").innerText = f"Hello, {name}"

document.getElementById("btn").addEventListener("click", greet)

이것은 JavaScript DOM 조작을 그대로 반영하지만, 완전히 Python으로 작성되었습니다.

PyScript에서 Python 패키지 설치

packages = ["numpy", "pandas"]

import numpy as np
import pandas as pd

print(np.array([1, 2, 3]) * 10)

많은 과학 라이브러리가 Pyodide 덕분에 바로 사용할 수 있습니다.

브라우저에서 데이터 과학

PyScript의 가장 강력한 장점 중 하나는 클라이언트‑사이드 데이터 과학입니다.

Pandas 예제

import pandas as pd

data = {
    "Language": ["Python", "JavaScript", "Rust"],
    "Popularity": [95, 90, 70]
}

df = pd.DataFrame(data)
df

브라우저에서 완전히 실행됩니다—서버도 없고, API 호출도 없습니다.

PyScript vs. JavaScript

기능PyScriptJavaScript
언어파이썬자바스크립트
브라우저‑네이티브
성능보통높음
생태계과학, 머신러닝웹‑우선
학습 곡선파이썬 개발자에게 쉬움표준 웹 스택

PyScript는 자바스크립트를 대체하는 것이 아니라, 보완적인 도구입니다.

일반적인 사용 사례

  1. 교육 및 학습

    • 인터랙티브 파이썬 튜토리얼
    • 브라우저에서 실시간 코딩 노트북
  2. 데이터 시각화

    • 브라우저 기반 분석 대시보드
    • 경량 데이터 탐색 도구
  3. 프로토타이핑

    • 빠른 UI 및 로직 실험
    • 개념 증명 애플리케이션
  4. 과학 출판

    • 웹 문서에서 재현 가능한 연구

PyScript의 제한 사항

강력하지만, PyScript에는 제약이 있습니다:

  • 네이티브 JavaScript보다 느린 실행
  • 큰 초기 로드 크기 (Pyodide 런타임)
  • 시스템 리소스에 대한 제한된 접근

적합하지 않은 경우:

  • 고성능 게임
  • 실시간 애플리케이션
  • 대규모 프로덕션 프론트엔드 (아직)

PyScript 프로덕션 사용: 준비됐나요?

PyScript는 특정 사용 사례에 대해 프로덕션에 적합하며, 특히:

  • 내부 도구
  • 교육 플랫폼
  • 데이터 기반 인터페이스

하지만 대규모 소비자 애플리케이션의 경우, 성능 및 생태계 성숙도 때문에 JavaScript 프레임워크가 여전히 우위를 점하고 있습니다.

PyScript의 미래

로드맵에는 다음이 포함됩니다:

  • 더 작은 런타임 번들
  • 향상된 성능 최적화
  • 웹 표준과의 더 깊은 통합
  • JavaScript 프레임워크와의 개선된 상호 운용성

WebAssembly가 계속 발전함에 따라, 브라우저에서 파이썬을 사용하는 것이 점점 더 실현 가능해질 것입니다.

언제 PyScript를 사용해야 할까요?

다음 경우에 PyScript를 사용하세요:

  • 파이썬을 최우선으로 할 때
  • 브라우저 기반 데이터 처리를 원할 때
  • 인터랙티브한 교육용 또는 분석 도구를 만들 때
  • 백엔드 복잡성을 최소화하고 싶을 때

다음 경우에는 피하세요:

  • 초저지연이 필요할 때
  • 대규모 소비자 웹 애플리케이션을 구축할 때
  • JavaScript 전용 라이브러리에 크게 의존할 때

Final Thoughts

PyScript는 브라우저 로직에 대한 JavaScript의 엄격한 의존성을 없애면서 웹 개발에서 패러다임 전환을 나타냅니다. 이는 Python 개발자에게 직접적이고, 네이티브하며, 표현력 있는 방식으로 웹을 열어줍니다. JavaScript를 완전히 대체하는 것은 아니지만, 특히 교육, 데이터 과학, 빠른 프로토타이핑에 중점을 둔 Python‑centric 프로젝트에 매력적인 옵션을 제공합니다.

JavaScript를 대체하지만, 웹에서 Python으로 할 수 있는 가능성을 크게 확장합니다.

0 조회
Back to Blog

관련 글

더 보기 »

📦Redux란 무엇인가?

프론트엔드 개발을 배우고 있다면, 특히 React와 함께라면 Redux에 대해 들어봤을 것입니다. 처음에는 혼란스러워 보일 수 있지만, 핵심 아이디어는 간단합니다....

바위 ✊ 종이 ✋ 가위 ✌️

WebForms Core란 무엇인가? WebForms Core https://github.com/webforms-core 은 Elanat https://elanat.net/ 에서 만든 새로운 멀티플랫폼 기술로, 경쟁하도록 설계되었습니다.