htmgo - go 와 htmx를 이용하여 간단한 웹 서비스 구축하기
(htmgo.dev)- 가볍고 순수한 Go 방식으로 go & htmx를 사용하여 스케일러블한 대화형 웹사이트/웹 애플리케이션을 구축
- go의 속도와 단순성 + 하이퍼미디어 속성(htmx)을 결합하여 웹사이트에 대화형 기능을 추가
- 자바스크립트를 건드리지 않고도 간단하고 빠른 대화형 웹사이트를 구축가능
- 모든 것은 배포가능한 단일 바이너리로 컴파일 됨
func IndexPage(ctx *h.RequestContext) *h.Page {
now := time.Now()
return h.NewPage(
h.Div(
h.Class("flex gap-2"),
h.TextF("the current time is %s", now.String())
)
)
}
핵심 기능
- 배포 가능한 단일 바이너리
- 라이브 리로드(변경 시 css, go, ent 스키마 및 경로를 다시 빌드)
- 파일 경로에 기반한 자동 페이지 및 부분 등록
- tailwindcss 지원, 기본 플러그인 아키텍처로 아무것도 구성할 필요 없음
- 플러그인 아키텍처 : 개발을 간소화하기 위한 선택적 플러그인 포함 (http://entgo.io 등)
- 공통 작업의 boilerplate를 줄이기 위한 커스텀 htmx 확장들
streamlit을 써보고 어플리케이션으로서의 웹에대한 인식이 좀 바뀌었습니다.
내가 원하는것이 아니라 그(streamlit)가 원하는 방식이면 충분히 좋은 선택이라고 말입니다.
요즘 htmx 활용한 프레임워크들이 하나씩 하나씩 보이네요.
Fasthtml... 좀 적응이 안되던데.
https://news.hada.io/topic?id=16091
Htmx가 굳이 필요한지, 저는 좀 회의적이었는데, 이참에 한번 자세히 봐야겠네요.