Google 의 Mesop
Mesop 은 구글이 만든 Python 기반 UI 프레임워크로써, 특히 데모와 내부 도구의 웹 애플리케이션을 빠르게 개발할 수 있게 해준다고 합니다. 기존제품으로 Streamlit 이나, Gradio 같은 UI 프레임워크랑 비슷합니다.
이 새로운 무료 도구가 개발자에게 얼마나 도움이 되는지 살펴보겠습니다.
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 기능 비교표입니다.