AI 탐구노트

FastHTML 본문

기술 팁

FastHTML

42morrow 2024. 8. 14. 13:57

FastHTML은 Python으로 웹 개발을 단순화하는 프레임워크입니다. Javascript와 CSS의 의존성을 줄이고 python을 이용해 처리할 수 있도록 하여 간단한 웹 어프리케이션을 빠르고 손쉽게 개발할 수 있도록 해 줍니다. Kaggle, FastAI 등 다수 기업의 공동 창업자인 Jeremy Howard가 만든 프로젝트에서 개발을 하고 있죠. 그가 개발해서 공개한 FastAI 와 이름만 비교해 봐도 유사하죠? (참고로 FastAPI는 전혀 관련이 없습니다)

 

잘 아시는 바와 같이 Python 기반으로 웹 어플리케이션을 개발할 경우, 많은 제약사항이 따랐습니다. python 에코시스템에서는 주로 Django나 Flask, FastAPI등을 이용하는 경우가 많을텐데 그때도 여전히 HTML, CSS, Javascript에 대한 지식이 필요했기 때문이죠. 특히 복잡한 UI나 동적 상호작용을 구현할 때는 더 그랬습니다. 이런 부분들을 Python 객체로 구현함으로써 좀 더 손쉽고 간단하게 만들었다고 보면 됩니다.

 

FastHTML은 다음과 같은 차별점이 있습니다. 

  • Pythonic 디자인
    HTML 요소를 Python 객체로 표현해 Python 개발자에게 친숙하고 자연스러운 개발 환경을 제공합니다.
  • HTMX 통합
    무거운 JavaScript 없이도 동적 상호작용을 가능하게 하여 코드베이스를 깔끔하게 유지합니다.
  • 성능 및 확장성
    Uvicorn과 Starlette를 기반으로 만들어져 기본적으로 높은 어플리케이션 성능을 보장합니다. 
  • 사용자 정의 구성 요소 지원
    사용자 정의 구성 요소를 만들어 재사용 가능하고 모듈식으로 코드를 개발할 수 있습니다. 

다만, 제가 이런 시도를 해 온 많은 솔루션들을 봐 와서 그런지, FastHTML이 웹에서 필요한 것들을 다 완벽하게 제공할 것이라 기대하지는 않으며, 그래서 당장은 FastHTML 또한 빠른 기능 구현, 프로토타이핑을 원하는 Python 기반 개발자를 대상으로 한다 여기고 있습니다. 그것만으로도 많은 도움이 될테죠. 처음 Streamlit이나 Gradio가 소개됐을 때 사람들은 그냥 간단한 웹 개발 프레임워크가 하나 나왔구나 했었지만 지금은 AI 기능을 제공하는 대표적인 기술이 된 것을 보면 FastHTML 또한 그렇게 발전한 가능성도 있다고 생각되므로 계속 지켜볼 생각입니다. 

 

참고) 사이트, 코드, 소개영상, 비교영상


* AI 관련 기술은 아니지만, AI 서비스를 포장해 MVP나 프로토타이핑할 때 사용하기 용이한 기술인 것 같아 

 

사진 : FastHTML 소개 (출처 : 홈페이지)