본문 바로가기

프로그래밍/Python

Reflex (pynecone) - Park 1(소개 : Python기반의 Full Stack Framework

Today Keys : reflex, python, pynecone, full stack, framework, NextJS, Reack, Charkra, FastAPI, wrap, 풀스택, 프레임워크


 이번 포스팅은 순수 Python으로 웹 앱을 손쉽게 만들 수 있게 해주는 Full Stack Framework 인, Reflex에 대한 소개 포스팅입니다. 2022년 11월에 Pynecone이라는 이름으로 공개된 프로젝트이며, 2023년 6월에 Reflex라는 이름으로 프로젝트 명이 변경되었습니다.

 이번 포스팅에서는 Reflex에 대한 개략적인 소개를 하게 되며, 이후 포스팅에서는 Reflex를 이용해서 Local에서 웹 앱을 만들고, 삽질 끝에 성공한 Self Hosting 하는 예제를 다룰 예정입니다.  


 

Reflex란?

  ▪ Reflex는 웹 앱을 순수 Python으로 만들 수 있게 해주는 Full Stack Framework
  ▪ Python 하나만으로 Frontend, Backend, Deploy까지 모두 처리 가능.
  ▪ React, NextJS, Charkra UI, FastAPI 등을 래핑하여, Python만으로 웹 앱을 구축
  ▪ 2022년 11월에 공개, 23년 7월 6일 현재 Github Star 9.2K
※ 참고 
  Reflex는 기존의 Pynecone이라는 프로젝트였으나,
  '23년 6월 30일부터 Reflex라는 이름으로 프로젝트 이름이 변경되었습니다
 

Reflex의 특징

1. 다양한 사용 사례
 ▪ Reflex를 이용하면 내부 도구와 데이터 앱부터 복잡한 다중 페이지 앱까지 무엇이든 만들 수 있습니다. Reflex의 홈페이지(https://reflex.dev)자체도 Reflex로 만들어졌습니다.

 

2. 순수 파이썬
  ▪ 앱의 상태는 단순히 클래스이며, 상태 업데이트는 클래스 내의 메서드입니다. 그리고 UI는 상태의 반영입니다. 이 모든 것이 Python으로 이루어집니다.

 

3. 사용자 정의 가능
  ▪ Reflex는 모든 컴포넌트를 완전히 사용자 정의할 수 있습니다. 색상, 글꼴, 스타일을 변경하여 프로젝트에 맞게 조정할 수 있습니다.

 

Reflex의 장점

1. 통합된 개발 환경
  ▪ Reflex를 사용하면 개발자는 프론트엔드와 백엔드를 모두 파이썬으로 개발할 수 있습니다. 이로 인해 언어와 프레임워크 간 전환의 번거로움 없이 전체 스택을 작업할 수 있습니다.

 

2. 빠른 시작
  ▪ Reflex는 FastAPI와 SQLAlchemy로 구축된 강력한 백엔드를 제공합니다. 이를 통해 개발자는 API 엔드포인트를 작성할 필요 없이 프론트엔드와 백엔드를 통합할 수 있습니다.

 

3. 쉬운 배포
  ▪ Reflex를 사용하면 앱을 몇 초 안에 배포할 수 있습니다. 단일 명령으로 앱을 배포하고, CDN, HTTPS, SSL 등이 자동으로 구성되어 앱이 성능을 유지하고 안전하게 동작하도록 합니다.

  ▪ Deploy 명령어만으로 이용해서, Reflex의 서버에 손쉽게 배포하고 이렇게 배포된 URL을 제공 받을 수 있으며 기본적인 Reflex 대시보드가 제공되어 사용자의 웹 앱을 모니터링 할 수도 있습니다. (현재는 기능 준비 중으로 향후 제공 예정)
  ▪ Reflex 인프라에 배포하는 것 이외에, 물론 사용자 자체 인프라에서 Self Hosting도 가능
 

Reflex를 사용한 다양한 웹 앱

▪Reflex에서는 Reflex를 사용한 다양한 웹 앱 예시를 공개 ( https://reflex.dev/docs/gallery )
▪해당 갤러리를 참고하여, Reflex를 통한 개발 시에 활용 가능