본문 바로가기

AiDAOps/개발 진행

프론트엔드 부분을 담당할 프레임워크는 무엇이 좋을까?

728x90

AiDAOps를 개발하기 위한 백엔드의 구성, 아키텍처에 대해서는 이런저런.. 여러 가지 사항들을 생각하고 있는데 프론트엔드를 위한 프레임워크에 대해서는 그다지 생각해 보지 않은 것 같습니다.

그냥 단순하게.. 요즘 많이 사용되는 React.js, Vue.js나 Svelte 같은 것을 쓰게 되겠지.. 라고 생각하고 있었습니다만...

문득 생각이 나서 Perplexity를 통해서 제안을 받아보았습니다.

특히 파이썬 환경으로 개발할 수 있는 프레임워크의 제안을 요청했습니다.

 

갑자기 프론트엔드라는 용어가 생각이 나지 않아서 장황하게 설명을 하고 말았네요. (이제 슬슬 나이가 들어서 그런가.. ㅠㅠ)

개발자 생활을 시작하고부터 지금까지 사용한 프로그래밍 언어가 15가지를 넘다보니.. 특정 개발 언어에 대한 편애 같은 것은 없습니다만.. 상황에 맞게 아무 언어나 복합적으로 사용하는 편이죠.

그래도 개발 언어가 섞이면 나중에 귀찮아지는 부분이 많기 때문에 최근에 주력으로 사용하고 있는 파이썬으로 지정해 보았습니다.

(이번 글은 Perplexity의 대답 내용은 1회 분량뿐입니다. ^^)


 AiDA 

 

Web UI, 사용자 인터페이스를 위한 CSS, HTML 등의 디자인을 적용하기 위한 라이브러리나 프레임워크를 알려줘.

파이썬 외의 예를 들면 React 같은 것 말야.

그런 것을 파이썬 용으로 개발된 것이 있으면 알려줘.

 

★ Perplexity ★

파이썬을 위한 Web UI 프레임워크와 라이브러리 중 Django와 같은 백엔드 프레임워크가 아닌, React와 유사하게 사용자 인터페이스 디자인에 중점을 둔 몇 가지 옵션을 소개해드리겠습니다.

 

  • Reflex
    • Reflex는 순수 파이썬만으로 웹 앱을 구축할 수 있는 오픈소스 프레임워크입니다.
    • 주요 특징은 다음과 같습니다.
      • 60개 이상의 내장 컴포넌트 제공
      • 테마 시스템으로 일관된 디자인 적용 가능
      • 커스터마이징 가능한 UI
      • 다크 모드 지원
      • 반응형 디자인
      • React 컴포넌트 래핑 가능
  • Pynecone
    • 파이썬 코드로 백엔드와 프론트엔드를 모두 작성할 수 있게 해주는 프레임워크입니다.
    • React 컴포넌트와 Next.js를 활용하여 편리한 개발 환경을 제공합니다.
  • JustPy
    • 웹 페이지의 요소를 프로그래밍 방식으로 구성할 수 있게 해주는 프레임워크입니다.
    • 효율적이고 직관적인 객체 모델을 특징으로 합니다.
  • Anvil
    • "Build web apps with nothing but Python"이라는 슬로건을 가진 프레임워크로, 파이썬 코드만으로 전체 웹 애플리케이션을 구축할 수 있습니다.
    • 드래그 앤 드롭 방식의 로우코드 도구도 제공합니다.
  • Streamlit
    • 데이터 과학 및 머신러닝 애플리케이션을 위한 간단한 UI 생성 도구입니다.
    • 데이터 시각화와 대화형 애플리케이션 개발에 특화되어 있습니다.
  • Dash
    • Plotly에서 개발한 프레임워크로, 대화형 분석 애플리케이션 개발에 적합합니다.
    • 데이터 시각화와 대시보드 생성에 강점이 있습니다.

 

이 중에서 가장 추천하는 프레임워크는 Reflex입니다. 

 

Reflex는 다음과 같은 장점을 가지고 있습니다.

  • 순수 파이썬으로 개발: JavaScript 없이 전체 앱을 파이썬으로 개발할 수 있어 학습 곡선이 낮습니다.
  • 풍부한 컴포넌트: 60개 이상의 내장 컴포넌트를 제공하여 빠른 개발이 가능합니다.
  • 확장성: React 컴포넌트를 래핑하여 사용할 수 있어 기존 JavaScript 라이브러리와의 호환성이 좋습니다.
  • 반응형 디자인: 모든 디바이스에서 잘 작동하는 반응형 앱을 쉽게 만들 수 있습니다.
  • 활발한 커뮤니티: 19,000개 이상의 GitHub 스타와 150명 이상의 기여자를 보유한 활발한 오픈소스 프로젝트입니다.
  • 간편한 배포: 단일 명령어로 앱을 배포할 수 있어 개발에서 배포까지의 과정이 간소화됩니다.

Reflex는 React와 유사한 컴포넌트 기반 아키텍처를 채택하면서도 파이썬의 장점을 살려 웹 UI 개발을 단순화했습니다.

특히 파이썬 개발자가 웹 애플리케이션을 만들고자 할 때 JavaScript를 배우지 않고도 쉽게 접근할 수 있는 좋은 선택이 될 것입니다.

 


 

먼저 Reflex 입니다.

어떻게.. 입맛에 딱 맞는 프레임워크가 추천되었군요.

그러나 이렇게 딱 맞는 프레임워크가 간단히 찾아오진 않겠죠.

그래서 찾아보니...

일단 오픈소스 프로젝트이긴 하지만 취미용 개인 프로젝트에는 무료로 사용할 수 있지만... 그 범위를 벗어나면 유료인 프레임워크인 것 같습니다.

오픈 소스 프로젝트에 대한 사용자의 자유도가 가장 높은 세 개의 라이센스(MIT, BSD, Apache) 중에서 Apache 라이센스를 따른다고 되어 있으면서 유료화를 진행하고 있네요.

 

https://reflex.dev/pricing/

 

 

프로토타입을 구성할 때는 사용하기 쉽겠네요.

그 이후에 실제 시스템을 구현할 때에는 프로토타입의 디자인을 참고해서 다른 프레임워크를 사용해야 할 것 같습니다.

공식사이트에 따르면 두 번째로 제안된 Pynecone이 Reflex로 바뀐거라고 하는군요.

그래서 일단 Reflex, Pynecone은 잠시 보류입니다.

 

다음은 JustPy군요.

JustPy도 Apache 라이센스를 따르고 있습니다.

공식사이트에 따로 가격 정보나 유료화 정보는 다루고 있지 않네요.

그런데 일반적인 프론트엔드 프레임워크는 아니군요.

프론트엔드에서 처리해야 할 내용을 그냥 프로그래밍 코드에서 구현하도록 한 것이 특징입니다.

어쩌면 제 경우에는 이런 방식이 더 나을지도 모르겠네요.

체크해 두겠습니다.

 

다음으로... Anvil 이네요.

Anvil도 유료 프레임워크입니다.

드래그 앤 드롭 방식의 로우코드 도구 등을 제공해서 사용 편의성은 좋아보입니다만..

일단 AiDAOps의 개발 컨셉이 인건비(개발비)를 제외하면 최대한 비용을 들이지 않는 것이기 때문에...

Anvil도 일단 보류입니다.

 

다음은 Streamlit입니다.

Streamlit도 Apache 라이센스를 따릅니다.

Streamlit은 최근 강의를 위한 자료들을 뒤적이다보면 자주 보이는 프레임워크인데 Perplexity가 설명한 그대로 데이터 분석, 시각화에 특화되어 있습니다.

그래도 최근 유행하고 있는 LLM을 이용한 다양한 서비스의 개발에 많이 활용되고 있으니 이것도 체크해 두도록 하겠습니다.

 

다음은 Dash네요.

Dash는 MIT 라이센스를 따르고 있습니다.

Dash는 조금 독특한 방식을 사용하고 있군요.

Plotly라는 회사에서 개발했는데.. 자사가 개발한 plotly.js와 React.js를 기반으로 개발되어 파이썬에서 사용하도록 만들어졌군요.

Pandas 등과 함께 데이터 처리를 하면서 그 결과를 바로 프론트엔드에 표시할 수 있도록 되어 있는 것 같습니다.

 

 

이처럼 Perplexity가 제안한 프레임워크 중에서 안심하고 사용할 수 있는 것들이 JustPy, Streamlit, Dash가 있고.. 각각이 독특한 개성을 가지고 있는 것을 알 수 있었습니다.

백엔드 기능을 개발하면서 자연스럽게 프론트엔드를 개발할 수 있는 JustPy와 Dash가 마음에 드네요.

참고 자료가 많다는 점에서 Streamlit도 괜찮은 것 같습니다.

 

맘에 드는 걸로 써보자 (그림: MS Designer Image Creator로 직접 그림)

 

 

각각을 한 번씩 사용해 보고 결정을 내려야 할 것 같네요.

 

 

728x90
반응형