데브허브 | DEVHUB | These Svelte Updates Are CrazyThese Svelte Updates Are Crazy
- Svelte는 비동기 Svelte와 원격 함수라는 두 가지 주요 제안을 통해 프레임워크의 미래를 혁신하고 있습니다. 🚀
- 비동기 Svelte는
await 키워드를 스크립트 태그, 파생 표현식, 마크업에서 직접 사용할 수 있게 하여 개발 편의성을 높입니다. 💡
SvelteBoundary 도입으로 React Suspense와 유사하게 앱의 로딩(pending) 및 에러(failed) 상태를 중앙에서 관리할 수 있게 됩니다. 🛡️
- 컴포넌트 스크립트 태그, 템플릿, 심지어 컴포넌트 프롭스에서도
await를 직접 사용하여 비동기 데이터를 더욱 직관적으로 처리할 수 있습니다. ✨
- 새로운
effect.pending 룬을 통해 복잡한 로딩 로직 없이도 UI에 로딩 상태를 간결하게 표시할 수 있습니다. ⏳
- 원격 함수(Remote Functions)는 SvelteKit의 컴포넌트 레벨 데이터 로딩 솔루션으로,
.remote.ts 파일에 정의하여 클라이언트-서버 간 RPC처럼 작동합니다. 🌐
query 원격 함수는 서버에서 데이터를 가져오는 데 사용되며, Zod와 같은 유효성 검사 스키마를 통해 데이터의 안정성을 확보합니다. 📊
command 원격 함수는 폼 없이 서버 상태를 변경(뮤테이션)할 때 유용하며, 특정 쿼리만 재실행하도록 설정하여 불필요한 데이터 새로고침을 방지합니다. ✍️
form 원격 함수는 서버 데이터 뮤테이션의 권장 방식으로, 폼에 메서드를 스프레드하여 JavaScript 비활성화 시에도 작동하는 점진적 향상 기능을 무료로 제공합니다. 🧩
form 원격 함수의 .enhance 메서드를 사용하여 낙관적 UI 업데이트(Optimistic UI Update)를 구현, 사용자에게 즉각적인 피드백을 제공하여 체감 성능을 높입니다. 💨
- 기존
onMount/effect의 비동기 콜백 문제, await 블록의 한계, SvelteKit load 함수의 비효율적인 데이터 갱신(라우트 종속성, 비세분화) 등의 문제점을 해결합니다. 📉
- 비동기 Svelte의 내장 프리미티브 강화로 SvelteKit이 더 얇은 레이어가 되어, 핵심 프레임워크에서 더 많은 기능을 직접 처리하게 됩니다. 🏗️
- Main Matter는 Svelte 5, 테스트, 인증, 웹 컴포넌트를 활용한 비Svelte 프로젝트 통합 등 다양한 Svelte 관련 기술을 배울 수 있는 워크숍을 제공합니다. 🧑💻