Show GN: Streamlit 대안으로 시작했던 파이썬 웹 프레임워크 'Violit' 대규모 업데이트 (ORM/Auth 내장)
(github.com/violit-dev)안녕하세요.
약 3달 전, Streamlit의 전체 재실행(Full Rerun) 병목 현상을 해결하고자, 취미로 만든 파이썬 웹 프레임워크 'Violit'을 긱뉴스에 소개했던 Engineer입니다.
감사하게도 해외 커뮤니티와 이곳 긱뉴스에서 좋은 피드백을 주신 덕분에 최근 깃허브 스타 400개를 넘기게 되었습니다. 그동안 제 지인들과 글로벌 유저들이 실제 프로젝트에 제 프레임워크를 적용하는 과정을 지켜보며 한 가지 사실을 깨달았습니다.
빠른 UI를 뚝딱 만들고 나면, 사람들은 곧바로 DB 저장과 로그인(Auth) 기능을 찾는다는 것이었습니다.
처음엔 프레임워크를 가볍게 유지하기 위해 철저히 프론트엔드 라이브러리로만 남겨두려 했습니다. 하지만 유저들이 DB와 인증 시스템을 억지로 이어 붙이느라 고생하는 모습을 보며 고민 끝에 기능들을 추가를 하는 것으로 결정을 하였습니다.
이번 대규모 업데이트를 통해 Violit을 단순한 UI 툴에서 Batteries-included 풀스택 프레임워크로 확장했습니다.
🚀 이번 업데이트의 핵심 포인트
- 내장 ORM (SQLModel) :
vl.App(db="./app.db")한 줄만 넘겨주면 별도의 세팅 없이 즉시 쿼리와 저장이 가능합니다. - 내장 Auth : 세션 기반 인증, 비밀번호 해싱, 페이지 접근 권한 보호(Role-based) 기능이 네이티브로 지원됩니다.
- 비동기 백그라운드 작업 : 무거운 AI 추론을 돌릴 때 화면이 멈추지 않도록,
app.background()를 이용해 작업을 안전하게 백그라운드로 넘길 수 있습니다. - Tailwind & Web Awesome :
cls파라미터를 통해 Tailwind 유틸리티 클래스를 그대로 사용하여 모던한 스타일링이 가능해졌습니다.
물론 뼈대가 되는 시그널 기반의 세밀한 반응성(Signal-based fine-grained reactivity) 엔진은 더 단단해졌습니다. Streamlit처럼 직관적인 스크립트 형태(API 90% 호환)로 코드를 짜지만, 클릭이나 입력 시 화면 전체가 도는 게 아니라 딱 의존성이 있는 위젯만 부분 업데이트됩니다.
이제 파이썬 스크립트 하나만으로 모던 반응형 UI부터 데이터베이스, 유저 인증까지 한 번에 처리할 수 있습니다.
다음번 사내 툴이나 데이터 앱, MVP를 만드실 때 한 번 써보시고 아키텍처에 대한 피드백과 조언 남겨주시면 정말 감사하겠습니다! :)
- GitHub : https://github.com/violit-dev/violit
- Homepage : https://violit.cloud/
- Docs : https://doc.violit.cloud