Cloudflare Workers에서 이제 Python을 사용할 수 있게 되었습니다. Pyodide와 WebAssembly를 통해 통합된 이 기능은 다양한 장점을 제공합니다.
직접 통합된 Python 구현체:
Pyodide가 Cloudflare의 workerd 런타임에 내장되어 있어 별도의 빌드 단계나 외부 툴체인 없이 Python 코드를 실행할 수 있습니다.
광범위한 바인딩 지원:
Vectorize, Workers AI, R2, Durable Objects 등의 바인딩을 지원합니다.
FastAPI, Langchain, Numpy 등 인기 있는 Python 패키지를 사용할 수 있습니다.
WebAssembly와의 통합:
Cloudflare Workers는 2018년부터 WebAssembly를 지원해왔으며, Pyodide는 CPython을 WebAssembly로 포팅한 것입니다. Pyodide는 대부분의 Python 표준 라이브러리를 제공하며, JavaScript API를 호출할 수 있는 FFI를 제공합니다.
동적 링킹 지원:
많은 Python 패키지가 네이티브 라이브러리를 사용하는 C FFI를 필요로 합니다.
Pyodide는 동적 링킹을 통해 이러한 패키지들을 지원합니다.
서버 및 클라이언트 라이브러리:
비동기 클라이언트 라이브러리는 Fetch API를 사용하여 요청을 수행할 수 있습니다.
HTTP 클라이언트 라이브러리(httpx, urllib3, requests 등)는 기본적으로 작동하지 않지만, 비동기 클라이언트를 사용할 수 있습니다.
패키지 관리:
requirements.txt 파일에 패키지를 추가하여 Pyodide에서 직접 제공하는 Python 패키지의 부분 집합을 사용할 수 있습니다.
메모리 스냅샷:
Pyodide를 Worker에 주입하고 Cloudflare에 업로드하는 과정에서 메모리 스냅샷을 생성하여 냉동 시작 시간을 단축할 수 있습니다.
호환성 관리:
호환성 날짜와 플래그를 사용하여 새로운 동작과 하위 호환성이 없는 변경 사항을 명시적으로 선택할 수 있습니다.
Python 코드 작성:
Wrangler.toml 파일을 통해 .py 파일을 지정하고, npx wrangler@latest dev 명령을 실행하면 Pyodide가 자동으로 주입되어 Python 코드를 실행할 수 있습니다.
JavaScript와의 상호 작용:
Pyodide는 JavaScript에 대한 FFI를 제공하여 Python 코드에서 JavaScript 객체, 메소드, 함수 등을 직접 사용할 수 있습니다.
Cloudflare의 Python Workers 지원은 서버리스 아키텍처에서 Python의 사용을 확장하는 중요한 발전입니다. 이는 다음과 같은 영향을 미칠 수 있습니다:
개발자 유연성 확대:
Python 개발자들에게 더 많은 유연성과 선택권을 제공하며, 클라우드 기반의 애플리케이션을 JavaScript 없이도 구축할 수 있는 기회를 제공합니다.
데이터 과학과 머신 러닝:
Python은 데이터 과학과 머신 러닝 분야에서 널리 사용되며, Pyodide를 통한 WebAssembly 통합은 브라우저와 서버리스 환경에서 Python 코드를 실행할 수 있는 새로운 가능성을 열어줍니다.
성능 개선:
동적 링킹과 메모리 스냅샷 기술은 초기 로딩 시간을 단축시키고, 리소스를 효율적으로 공유할 수 있게 합니다. 이는 대규모 분산 시스템에서 중요한 성능 개선을 의미합니다.
호환성 관리:
호환성 날짜와 플래그를 통해 기존 코드의 안정성을 유지하면서도 새로운 기능과 업데이트를 수용할 수 있는 유연한 방법을 제공합니다.
Cloudflare의 Python Workers 지원은 서버리스 컴퓨팅 분야에서 Python이 중요한 역할을 할 수 있음을 보여줍니다. 이는 Python 개발자들에게 클라우드 서비스 통합 및 새로운 서비스 개발 시 더 많은 옵션을 제공할 것입니다.
FastAPI 클라우드 플레이어 적용 하는 순서
- npm create cloudflear
- 프로젝트 명 입력 한후 fastapi 로 2번 선택
- 소스코드 변경
- npm run deploy
다음주에는 aws 람다를 활용한 fastapi 자료 찾아가면서 공부 해볼 생각이다.
그리고 오늘 서버 부분만 테스트 해본거라 클라우드플레어서 제공하는것들을 하나 하나 공부삼아 적용 해볼 생각이다.
공부 참고 문서 :
Cloudflare Workers · Cloudflare Workers docs
Write Cloudflare Workers in Python · Cloudflare Workers docs
'CoWithMe' 카테고리의 다른 글
전문가가 되지 못하는 비밀 타당성과 피드백의 중요성 (70) | 2024.07.15 |
---|---|
숙취가 안된 코딩 그리고 장고와 DRF: 쿼리큘럼 추측 및 개인 학습 계획 (8) | 2024.07.14 |
초보자를 위한 Flask와 FastAPI의 세션 관리 (80) | 2024.07.11 |
자기계발의 중요성 및 방법론 (85) | 2024.07.09 |
Flask vs FastAPI: 비동기 처리의 차이와 실제 적용 (85) | 2024.07.08 |