- Hotwire는 JSON 대신 HTML을 전송해 최신 웹 앱을 만드는 접근으로, 많은 JavaScript 없이도 빠른 첫 로드와 반응성을 노림
- 렌더링을 서버 템플릿에 남겨 두기 때문에, 사용하는 언어와 무관하게 개발 흐름을 단순하게 유지할 수 있음
- 37signals가 HEY를 위해 만든 프레임워크들은 함께 조합되어, 웹부터 여러 플랫폼까지 이어지는 Hotwire 생태계를 구성함
- 중심 구성요소인 Turbo는 페이지 전환, 폼 제출, 컴포넌트 분할, WebSocket 기반 부분 업데이트를 JavaScript 작성 없이 처리함
- Turbo로 부족한 맞춤형 상호작용은 Stimulus가 보완하고, Hotwire Native는 기존 웹 앱을 바탕으로 네이티브 모바일 앱을 만들 수 있게 함
HTML을 서버에서 렌더링해 보내는 접근
- Hotwire는 HTML-over-the-wire 방식으로 최신 웹 애플리케이션을 구축하는 대안적 접근임
- JSON 대신 HTML을 네트워크로 전송해 많은 JavaScript 없이 애플리케이션을 만들 수 있게 함
- 빠른 첫 페이지 로드, 서버 측 템플릿 렌더링 유지, 더 단순하고 생산적인 개발 경험을 목표로 함
- 전통적인 단일 페이지 애플리케이션에서 기대하는 속도와 반응성을 포기하지 않는 방향임
- HTML-over-the-wire는 자체 도구를 만들기 위한 참고 방식으로 쓸 수도 있고, 37signals가 HEY를 위해 만든 Hotwire 프레임워크들을 그대로 사용할 수도 있음
Turbo, Stimulus, Hotwire Native의 역할
- Turbo는 Hotwire의 중심 구성요소임
- 페이지 전환과 폼 제출을 빠르게 처리하는 보완적 기법을 제공함
- 복잡한 페이지를 컴포넌트로 나누고, WebSocket으로 부분 페이지 업데이트를 스트리밍함
- 이 기능들을 JavaScript 작성 없이 제공함
- Stimulus는 Turbo만으로 충분하지 않은 맞춤형 코드가 필요할 때 쓰임
- Turbo는 전통적으로 JavaScript가 필요했던 상호작용의 최소 80%를 보통 처리함
- Stimulus는 상태와 연결을 HTML 중심 방식으로 다룰 수 있게 함
- Hotwire Native는 네이티브 모바일 앱을 만들기 위한 웹 우선 프레임워크임
- 기존 웹 앱을 활용해 모바일 앱을 구축하는 데 필요한 도구를 제공함