Pyodide란?
Pyodide는 Python 인터프리터를 WebAssembly(Wasm)로 컴파일하여 웹 브라우저에서 직접 Python 코드를 실행할 수 있게 해주는 오픈소스 프로젝트입니다.
별도의 서버나 설치 없이, 웹 페이지를 열기만 하면 Python을 사용할 수 있습니다. Mozilla에서 시작되었으며 현재는 독립 프로젝트로 운영됩니다.
핵심 특징
- ✅ 설치 불필요 - 브라우저만 있으면 됨
- ✅ 인터넷만 되면 어디서든 실행
- ✅ NumPy, Matplotlib 등 과학 라이브러리 내장
- ✅ JavaScript와 양방향 연동 가능
- ✅ 완전 무료
동작 원리
Python 코드
사용자 입력
Pyodide (Wasm)
브라우저 내 Python 엔진
실행 결과
화면에 출력
모든 처리가 사용자의 브라우저에서 수행됨 (서버 전송 없음)
1. 로딩
CDN에서 Pyodide 엔진(~10MB)을 다운로드하여 브라우저 메모리에 로드
2. 실행
WebAssembly로 컴파일된 CPython이 코드를 해석·실행
3. 출력
stdout/stderr를 캡처하여 웹 페이지에 표시
지원 라이브러리
✅ 기본 내장 (즉시 사용 가능)
numpy다차원 배열, 행렬 연산, 선형대수matplotlib그래프, 차트, 데이터 시각화scipy과학 계산, 최적화, 통계pandas데이터 분석, DataFramescikit-learn머신러닝 알고리즘sympy기호 수학, 미적분networkx그래프 이론, 네트워크 분석Pillow이미지 처리 (기본)❌ 지원하지 않는 라이브러리
PyTorchC++ 확장, CUDA 의존 → Wasm 비호환TensorFlow대규모 C++ 바이너리 → Wasm 비호환OpenCV (full)C++ 기반, 카메라 접근 제한transformersPyTorch/TF 의존ultralyticsPyTorch 의존 (YOLOv8)CUDA 관련GPU 직접 접근 불가핵심: GPU 가속이나 대규모 C++ 확장이 필요한 딥러닝 프레임워크는 Pyodide에서 실행 불가 → Google Colab 사용 필요
이 플랫폼에서 Pyodide 사용하기
1️⃣
레슨 페이지 열기
Level 0~2의 레슨 페이지로 이동합니다
2️⃣
코드 블록의 "실행" 클릭
Python 코드 블록 우측 상단의 ▶ 실행 버튼 클릭
3️⃣
코드 수정 및 실행
Python 실습 창에서 코드를 수정하고 결과를 확인합니다
실습 예시 - 바로 실행 가능한 코드
import numpy as np
import matplotlib.pyplot as plt
# 퍼셉트론으로 AND 게이트 학습
X = np.array([[0,0], [0,1], [1,0], [1,1]])
y = np.array([0, 0, 0, 1]) # AND 진리표
weights = np.random.randn(2) * 0.1
bias = 0.0
lr = 0.1
for epoch in range(100):
for i in range(len(X)):
z = np.dot(X[i], weights) + bias
pred = 1 if z > 0.5 else 0
error = y[i] - pred
weights += lr * error * X[i]
bias += lr * error
print("학습 결과:")
for i in range(len(X)):
z = np.dot(X[i], weights) + bias
pred = 1 if z > 0.5 else 0
print(f" {X[i]} → {pred} (정답: {y[i]})")⚠️ 주의사항
- • 처음 실행 시 Pyodide 로딩에 약 5~10초 소요 (이후 캐시됨)
- • 대용량 데이터 처리 시 브라우저 메모리 제한에 주의
- • Matplotlib 그래프는 텍스트로 출력됨 (이미지 렌더링 제한적)
- • 무한 루프 실행 시 브라우저 탭이 멈출 수 있음
Pyodide 적용 가능 레벨
Level 0: Python 기초
✅ 완전 지원
Python 문법, NumPy, Matplotlib 모두 실행 가능
Level 1: AI 기초 이론
✅ 완전 지원
퍼셉트론 구현, 논리 게이트 등 NumPy로 실행 가능
Level 2: 수학 기초
✅ 대부분 지원
함수 그래프, 미분, 행렬 연산 등 NumPy/SymPy로 가능
Pyodide vs Google Colab 비교
| 구분 | 🐍 Pyodide | 📓 Google Colab |
|---|---|---|
| 실행 위치 | 내 브라우저 (로컬) | Google 클라우드 서버 |
| 설치 필요 | ❌ 없음 | ❌ 없음 (Google 계정 필요) |
| 인터넷 필요 | 처음 로딩 시만 | 항상 필요 |
| GPU 지원 | ❌ 불가 | ✅ 무료 T4 GPU |
| PyTorch | ❌ 미지원 | ✅ 사전 설치 |
| TensorFlow | ❌ 미지원 | ✅ 사전 설치 |
| NumPy/Matplotlib | ✅ 내장 | ✅ 사전 설치 |
| 응답 속도 | ⚡ 즉시 (로컬 실행) | 🔄 약간의 지연 (네트워크) |
| 데이터 보안 | ✅ 데이터가 외부 전송 안됨 | ⚠️ Google 서버로 전송 |
| 사용 시간 제한 | ❌ 없음 | ⚠️ ~4시간/세션, 90분 유휴 종료 |
| 파일 저장 | ❌ 브라우저 메모리만 | ✅ Google Drive 연동 |
| 협업 | ❌ 불가 | ✅ 공유 링크로 협업 |
| 비용 | 완전 무료 | 무료 (유료 옵션 있음) |
| 적합 레벨 | Level 0~2 | Level 0~9 (전체) |
💡 권장 사용법:
- • Level 0~2 (기초): Pyodide로 즉시 실행 → 빠르고 편리
- • Level 3~7 (딥러닝/심화): Colab 노트북 다운로드 → GPU 환경에서 실습
- • Level 8~9 (고급): Colab + 필요 시 로컬 환경 병행