GN⁺: Phoenix LiveView 1.0.0 출시
(phoenixframework.org)- 첫 커밋 후 6년만에 1.0 마일스톤 달성
-
LiveView의 시작과 이유
- LiveView는 서버 렌더링 애플리케이션을 JavaScript 없이 만들기 위해 시작됨.
- 실시간 폼 검증, 쇼핑 카트 수량 업데이트, 실시간 스트리밍 업데이트 등 복잡한 문제를 간단하게 해결할 수 있음.
- Elixir와 Phoenix는 이러한 접근 방식에 적합함.
-
실시간 기반의 장점
- 모든 사용자와 UI에 실시간 양방향 기반을 제공하여 개발자가 기능 구현에 집중할 수 있게 함.
- Elixir를 통해 다른 플랫폼에서는 불가능한 기능을 구현할 수 있음.
-
LiveView의 초기 구현
- React와 유사하게 상태 변경 시 자동으로 UI가 업데이트되는 서버 기반 UI를 구현.
- Phoenix Channels를 사용하여 수백만 개의 연결을 지원할 수 있음.
-
프로그래밍 모델 최적화
- LiveView의 차별화된 엔진은 템플릿의 동적 부분만 실행하고 최소한의 데이터만 전송함.
- 정적 부분과 동적 부분을 분리하여 효율적인 업데이트를 가능하게 함.
-
최고 수준의 지연 시간
- LiveView는 작은 페이로드와 상태 유지 연결을 통해 최적의 성능을 제공함.
- 서버 메모리 사용량은 적지만, 수십만 개의 동시 연결을 지원할 수 있음.
-
HEEx를 통한 재사용 가능한 컴포넌트
- HTML 검증 및 컴파일 타임 속성 검사를 제공하는 선언적 컴포넌트 시스템을 도입함.
- 컴포넌트 호출 시 잘못된 속성 사용에 대해 컴파일 타임 경고를 제공함.
-
HEEx 문법 간소화
- 태그 본문 내에서 값을 직접 삽입할 수 있는 간소화된 문법을 도입함.
-
인터랙티브 업로드
- 파일 업로드를 위한 단일 추상화를 제공하여 클라우드 및 서버 직접 업로드를 지원함.
- 업로드 진행 상황을 반영하거나 고급 파일 작업을 쉽게 구현할 수 있음.
-
스트림과 비동기 처리
- 대량의 컬렉션을 효율적으로 처리하기 위한 스트림 프리미티브를 도입함.
- 비동기 작업을 쉽게 처리하고 결과를 렌더링할 수 있는 기능을 제공함.
-
LiveView가 메인스트림으로
- LiveView와 .NET Blazor는 비슷한 시기에 시작되어 이 프로그래밍 모델의 채택을 이끌었음.
- 다른 언어 커뮤니티에서도 이 모델을 다양한 방식으로 채택하고 있음.
-
향후 계획
- JavaScript 훅 통합, 웹 컴포넌트 통합 강화, 내비게이션 가드 지원 등을 계획 중임.
Hacker News 의견
-
Phoenix의 창시자가 Elixir/Phoenix/LiveView에 대한 질문을 받으며 새로운 설치 프로그램을 소개함
- 새로운 설치 프로그램은 Elixir와 Phoenix 프로젝트를 단일 명령어로 설치할 수 있게 함
- macOS/Linux와 Windows에 대한 설치 명령어 제공
- 공식 Elixir 설치 프로그램을 확장한 것임
- 비 |sh 설치 가이드도 제공됨
-
LiveView는 Rails의 한계를 극복한 기능으로, 초기에는 "채널" 기능으로 시작되었음
- LiveView는 정적 뷰와의 통합이 어려웠으나, 시간이 지나면서 코드 공유가 가능해짐
- Phoenix 1.7은 새로운 레이아웃과 철학을 도입하여 웹 앱 개발에 혁신적임
-
LiveView를 사용하여 스타트업을 구축했으나 실패했음
- React와의 통합이 원활했으며, 복잡한 라이브러리와의 연결도 문제없었음
- React에서 해결했던 문제들을 LiveView에서 처음부터 해결해야 했음
-
LiveView를 사용한 여러 생산 앱을 구축했으며, WebSocket 연결이 필요하지만 여러 장점이 있음
- 코드 생성이 생산성을 높이고, Elixir를 사용하여 프론트엔드를 렌더링하는 것이 효율적임
- WebSocket을 통해 실시간 기능 추가가 용이함
- 비즈니스 로직을 Contexts에 유지하여 API 제공이 용이함
-
LiveView를 사용하여 웹 개발에 대한 열정을 되찾았으며, 생산성이 매우 높음
- LiveView 학습을 위한 강좌를 제공하며, 더 많은 사람들이 이 프레임워크를 익히길 바람
-
전형적인 웹 앱에서 프론트와 백엔드 개발자 간의 조정 비용이 가장 비쌈
- LiveView는 이러한 문제를 무시하고 풀스택 개발을 가능하게 함
- 적은 개발자로 더 많은 기능을 제공할 수 있음
-
LiveView를 2019년부터 사용해왔으며, 개발이 즐거웠음
- ElixirConf EU에서 LiveView가 처음 소개되었음
-
LiveView 1.0 릴리스에 대한 의견을 블로그에 작성함
-
LiveView와 JS 기반 기술의 채택에 대한 트레이드오프에 대한 의견을 듣고 싶음
- JS의 다양한 라이브러리와 AI 기술의 채택 가능성에 대한 논의 필요
-
LiveView는 매우 생산적인 개발 경험을 제공하지만, 불안정한 연결에서의 문제를 해결하기를 바람
- 오프라인 지원은 어렵지만, 불안정한 연결에 대한 지원이 필요함