brunch

You can make anything
by writing

C.S.Lewis

by 최재철 Jul 01. 2024

(new) Python UI 프레임워크- Mesop

Google 의 Mesop

Mesop 은 구글이 만든 Python 기반 UI 프레임워크로써, 특히 데모와 내부 도구의 웹 애플리케이션을 빠르게 개발할 수 있게 해준다고 합니다. 기존제품으로 Streamlit 이나, Gradio 같은 UI 프레임워크랑 비슷합니다. 


이 새로운 무료 도구가 개발자에게 얼마나 도움이 되는지 살펴보겠습니다. 


메솝(Mesop)이란 무엇입니까?


Mesop은 기본적으로 이미 시장에 나왔던 타 Python UI 프레임워크에서 많은 아이디어를 리믹스한 것으로 보입니다. 프론트엔드개발에 항상 어려움을 겪는 AI 개발자라면 Streamlit 이나, Gradio처럼 Mesop 도 하나의 선택사항이 될 수 있겠습니다. 


공식사이트 : https://github.com/google/mesop?s=09

버전 0.9.3 (2024.07.01 시점) 이라서 아직 불안한것처럼 보이지만, 쓸만해 보입니다. Mesop의 특징은 다음과 같습니다.


기본 웹 앱을 매우 빠르게 빌드할 수 있습니다

앱을 구축할 수 있도록 미리 만들어진 부분이 함께 제공됩니다.

이미 가지고 있는 Python 코드와 잘 작동합니다.

간단하거나 복잡한 앱을 만들 수 있습니다. (참고 - Angular를 기반으로 제작)


바로 테스트해보기

Mesop으로 기본 UI를 구축하는 데 바로 테스트를 해 보겠습니다.

시작하기 전에 mesop 를 설치해야 합니다.


설치방법

pip install mesop

소스

import mesop as me
import mesop.labs as mel

@me.page(path="/chat")
def chat():
  mel.chat(transform)

def transform(prompt: str, history: list[mel.ChatMessage]) -> str:
  return "Hello " + prompt

me.colab_show(path="/chat")

코드를 설명하면,

텍스트 입력란에 메시지를 입력하고 "보내기" 버튼을 클릭하면 입력한 메시지가 echo 되어서 화면에 표시됩니다.


실행결과

실행 결과


실행해 본 첫 느낌은, Rest API 를 다루었던 개발자들에게 어색하지 않고 친숙하다는 느낌을 받았습니다. 

그런데,  우선 문제점이 Colab 에서 구동된다는 점입니다. 

그리고 다음으로, me.colab_show 매번 해 주어야 하는 점이 불편했습니다. 

장점은 챗봇 UI 를 단 줄만에 만들 수 있는 점이 있습니다. 미리 만들어진 부분이 있기에 개발자들이 좀 쉽게 앱을 구성할 수 있겠다라는 생각이 들었습니다. 앞으로 미리 구성된 부분이 많다면, 적극적으로 사용해볼만한라는 생각이 듭니다.



마치며...

mesop은 아직 개발 중이며, 특히 개발문서가 부족합니다. 또한, Google 클라우드에 직접 배포하지 않는 한 Mesop 애플리케이션을 배포하는 것은 간단하지 않으며 컨테이너화가 필요합니다.

비교대상인 Streamlit이 현재로써는 더 장점이 있고, 특히 데이터 시각화 영역에서 무언가를 구축하고자 하는 경우 Mesop에 비해 기본적으로 강력해 보입니다. 또한, 배포에 있어서도 Streamlit Cloud가 있어서 애플리케이션을 쉽게 배포할 수 있습니다.

 

그러나 Mesopo는 성장 가능성이 있으며, Streamlit에 비해서 가벼운 덕분에 간단한 프로토타입에 더 적합해 보입니다. 


마지막으로,  ChatGPT 도움받아서 정리한 Mesop vs Gradio vs Streamlit  기능 비교표입니다.  

간단 기능 비교표



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari