Turbo Morphing의 핵심 메커니즘 및 이점
-
상태 보존 기술: Morphing의 가장 큰 장점은 사용자가 폼에 입력 중인 텍스트나 현재 스크롤 위치, 포커스 상태를 그대로 유지하면서 배경에서 데이터를 갱신한다는 점입니다. 이는 사용자가 페이지가 새로고침되었다는 사실을 인지하지 못할 정도로 부드러운 전환을 제공합니다.
-
Idiomorph 라이브러리 활용: Turbo 8은 내부적으로 Idiomorph를 사용하여 DOM 트리를 효율적으로 비교(Diffing)합니다. 이를 통해 전체 페이지를 다시 그리는 대신 필요한 최소 단위의 노드만 수정합니다.
실시간 데이터 전파 전략
-
Broadcasting의 진화: Rails 모델 계층에서
broadcasts_refreshes를 설정하면, 데이터가 변경될 때마다 연결된 모든 클라이언트에게 신호를 보냅니다. 클라이언트는 이 신호를 받아 현재 페이지를 다시 요청하고 Morphing을 통해 화면을 갱신합니다. -
코드 복잡도 감소: 이전에는 실시간 기능을 위해 수많은 Turbo Stream 템플릿을 작성해야 했으나, 이제는 표준 Rails 뷰 템플릿을 그대로 재사용하면서도 실시간성을 확보할 수 있습니다.
기술적 이점
- 서버 사이드 렌더링(SSR)의 생산성과 클라이언트 사이드 렌더링(CSR)의 부드러운 사용자 경험을 동시에 확보할 수 있으며, 자바스크립트 의존도를 낮춥니다.