뒤로
박영현
박영현 ·

Pyodide란?

이전 포스팅에서 Pyodide라는 것에 대해 언급했었다.

Pyodide란 어떤 건지, 어떤 구조로 동작하는 지에 대해 좀 더 조사해보았다.

Pyodide가 무엇인가

Pyodide는 WebAssembly와 Emscripten에 기반한 브라우저를 위한 파이썬 배포판이다.

그렇다면 WebAssembly와 Emscripten은?

웹어셈블리는 웹 브라우저에서 실행하는 프로그래밍 언어이다.

웹어셈블리로 작성된 소스 코드를 네이티브 바이너리로 컴파일하여 브라우저 상에서 실행시킬 수 있다.

여기서 문제가 하나 있는데, 웹어셈블리의 문법은 어셈블리와 유사하기 때문에 이를 직접 작성하기는 어렵다는 것이다.

다행히 웹어셈블리를 타겟으로 하는 컴파일을 지원하는 많은 프로그래밍 언어들이 있어서, 다른 언어를 웹어셈블리로 컴파일하고 웹어셈블리를 네이티브로 컴파일하는 방식으로 쉽게 활용할 수 있다.

Emscripten이 여기서 말하는 컴파일러 중 하나로, C/C++을 웹어셈블리로 컴파일하는 컴파일러이다.

그래서, 어떻게 파이썬을 실행하나요?

우선 운영체제에서 파이썬이 실행되는 과정을 살펴보자.

파이썬으로 코드를 작성하고 이를 인터프리터에 입력하면, 이를 인터프리터가 한 줄 씩 읽고 해석하고 실행한다.

이 인터프리터라는 것은 여러 언어로 작성될 수 있는데, 파이썬의 표준 인터프리터는 C언어로 작성되어있다.

그러면 웹어셈블리와 Enscripten을 여기서 어떻게 사용할 수 있을까?

Emscripten을 사용하면 C/C++을 웹 어셈블리로 컴파일할 수 있고, 웹어셈블리를 사용하면 코드를 웹 브라우저 상에서 실행시킬 수 있다.

즉, C/C++ 언어를 브라우저 상에서 실행시킬 수 있다는 것이다.

파이썬 인터프리터는 C언어로 작성되었으므로 인터프리터를 브라우저 상에서 동작하게 하여 파이썬 코드를 입력하면, 파이썬을 브라우저에서 실행할 수 있게 되는 것이다.

파이썬 패키지는?

파이썬의 경우 여러 패키지를 이용하여 코드를 작성하는 경우가 많다.

Pyodide를 사용할 때 만약 패키지를 이용하지 못한다면 제약사항이 많을 것이다.

다행히도 pyodide에서는 pandas, matplotlib 등 여러 패키지들이 내장되어있다.

아래 링크에서 지원되는 패키지 목록을 확인할 수 있다.

2

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.