파이썬 에디터 (브라우저에서 실행)
설치도, 서버도, 계정도 필요 없이 브라우저에서 진짜 파이썬을 작성하고 실행하세요. WebAssembly로 컴파일된 완전한 CPython 빌드인 Pyodide 기반입니다.
조회수 1,156회
작동 방식
이 도구는 실제 CPython 인터프리터 — 데스크톱의 python3 명령이 빌드되는 것과 동일한 레퍼런스 구현체 — 를 Pyodide를 통해 WebAssembly로 컴파일한 뒤, 브라우저에 한 번 불러와 전적으로 사용자의 기기에서 실행합니다. 작성한 코드는 이 사이트의 서버에 전혀 도달하지 않습니다 — 백엔드에서 실행되는 샌드박스 처리된 서브프로세스도, 대기열에 쌓이는 작업도, 업로드할 것도 없습니다. 처음 실행할 때는 파이썬 런타임(약 12MB)을 내려받고, 이후 브라우저가 이를 캐시하므로, 그다음부터의 모든 실행 — 그리고 다음 방문에서의 모든 실행 — 은 아무것도 다시 내려받지 않고 즉시 시작됩니다.
모의로 구현한 부분 집합이 아니라 진짜 CPython이기 때문에, 파이썬의 실제 의미론이 로컬 환경에서와 정확히 동일하게 적용됩니다. 여기에는 파이썬을 정의하는 문법 규칙도 포함됩니다. 파이썬은 함수 본문, 반복문, if-분기가 어디서 시작하고 끝나는지를 오직 들여쓰기 수준만으로 결정합니다 — 같은 목적을 위해 {} 중괄호를 쓰는 C, Java, JavaScript와는 다릅니다. 하나의 블록 안에서 탭과 공백을 섞어 쓰는 것은, 이 진짜 인터프리터가 조용히 추측하는 대신 IndentationError로 거부하는 대표적인 경우입니다. 파이썬 3은 들여쓰기가 모호한 코드의 실행을 거부하기 때문입니다.
알아두면 좋은 점
파이썬 표준 라이브러리 전체가 런타임과 함께 제공됩니다 — math, json, re, datetime 등을 포함해서요. 그래서 표준 라이브러리만 필요한 코드는 수정 없이 그대로 실행됩니다. PyPI의 서드파티 패키지는 별개의 문제입니다. 이들은 미리 로드되어 있지 않은데, 이를 번들로 포함하면 필요 여부와 상관없이 모든 방문자의 초기 다운로드 크기가 크게 늘어나기 때문입니다.
자주 묻는 질문
처음 실행할 때 왜 몇 초가 걸리나요?
브라우저가 처음에 WebAssembly 파이썬 런타임을 내려받고 초기화하기 때문입니다 — 이후에는 캐시되어 다음 방문(및 같은 페이지에서의 이후 실행)은 즉시 시작됩니다.
numpy나 requests 같은 패키지를 설치할 수 있나요?
이 도구는 표준 라이브러리만 실행합니다. Pyodide는 micropip을 통해 순수 파이썬 패키지 설치를 지원하지만, 이는 추가 다운로드 단계가 필요하며 이 경량 도구의 범위를 벗어납니다 — 이런 경우에는 Pyodide 자체 콘솔을 직접 이용하세요.
제 코드가 서버에서 실행되나요?
아니요 — 어디로도 업로드되지 않습니다. 파이썬 인터프리터는 이 페이지의 다른 자바스크립트와 마찬가지로 사용자 브라우저 탭 안에서 WebAssembly로 실행됩니다.
탭과 공백을 섞어 쓰면 왜 IndentationError가 발생하나요?
파이썬에는 블록의 시작과 끝을 표시하는 중괄호가 없습니다 — 들여쓰기 수준 자체가 블록 구조입니다. 파이썬 3은 줄 사이에 탭과 공백이 일관성 없이 섞여 있는 파일을 실행할 때, 의도를 추측하는 대신 의도적으로 실행을 거부합니다. 이것이 이 진짜 파이썬 인터프리터가 코드를 조용히 잘못 해석하는 대신 IndentationError를 발생시키는 이유입니다.
이건 정말 파이썬인가요, 아니면 제한된 자바스크립트 재구현인가요?
진짜 CPython입니다 — 서버와 데스크톱에서 파이썬을 실행하는 것과 동일한 C 기반 인터프리터를 WebAssembly로 재컴파일하여 브라우저 샌드박스 안에서 실행할 수 있게 한 것입니다. 언어 동작, 오류 메시지, 표준 라이브러리 모두 일반적인 로컬 설치와 동일합니다.
비슷한 도구
문제 신고하기
파이썬 에디터 (브라우저에서 실행)
댓글
아직 댓글이 없습니다 — 첫 댓글을 남겨보세요!