SvelteKit 3
SvelteKit 3 출시
Svelte의 공식 애플리케이션 프레임워크 SvelteKit 3이 출시됐습니다. 설정 파일 위치와 `$lib` 별칭 등 호환성 변경이 있으며, `sv migrate` 명령으로 코드베이스를 자동 이전하고 남은 작업 목록을 만들 수 있습니다.
- 주제
에디터 노트
기능 릴리스가 아니라 다듬기 릴리스입니다. 원문의 표현을 빌리면 같은 프레임워크에 광택을 조금 더 내고, 타입 안전성을 조금 높이고, 군더더기를 조금 덜어낸 버전입니다. HN의 @chrysoprace도 새 기능보다 기존 기능을 다듬은 점이 가장 좋다고 합니다. 논쟁은 다른 데서 붙었습니다. @scosman은 React·Shadcn 프로젝트를 LLM에 맡기면 모든 세부 사항이 정확했다고 합니다. Svelte는 손으로 코딩할 땐 좋지만 모델이 차이를 좁히길 바란다고 합니다. 다만 @pampas의 반론도 있습니다. 예전과 달리 지금은 LLM이 Svelte 5를 잘 다룬다는 겁니다. 프레임워크 경쟁의 승부처가 런타임에서 AI 도구 호환성으로 옮겨가고 있습니다.
AI 요약
Svelte의 공식 애플리케이션 프레임워크 SvelteKit 3이 출시됐습니다. 이번 버전은 기존 프레임워크의 구성과 사용 방식을 유지하면서 타입 안정성을 높이고 불필요한 요소를 줄이는 데 초점을 맞췄습니다. 주요 변경 사항은 마이그레이션 가이드에 정리돼 있습니다.
주요 변경 사항
설정은 svelte.config.js 대신 vite.config.ts에 둡니다. $lib 별칭은 표준 하위 경로 임포트를 사용하는 #lib으로 바뀝니다. 환경 변수 사용이 개선됐고 서비스 워커 설정에 필요한 보일러플레이트도 줄었습니다. 오류 처리도 전반적으로 손봤습니다.
기존 프로젝트는 npx sv migrate sveltekit-3 --tasks all --confirm 명령으로 이전합니다. 도구가 가능한 변경을 자동 적용하고, 나머지 작업은 TODO 목록으로 남깁니다. 새 프로젝트는 npx sv create my-new-app으로 시작합니다.
Remote functions
Remote functions는 클라이언트와 서버가 안전하고 효율적으로, 타입 정보를 유지하며 통신하도록 돕는 유틸리티입니다. 다만 사용하려면 현재 실험 플래그가 필요한 Async Svelte를 활성화해야 합니다. 아직 정식 기능은 아니지만 개발팀은 이를 최우선 과제로 꼽았습니다.
Hacker News 반응
- @sharktheone — Remote functions가 정식으로 준비되기를 아직 기다리고 있습니다.
- @pampas — 2.x에서 사용하는 데 아무 문제도 없었습니다.
- @chrysoprace — 안정 버전 SvelteKit에서 관용적인 데이터 가져오기 방식은
load함수입니다. 결과를 캐시하고 캐시를 무효화할 수 있지만, 컴포넌트 단위가 아니라 라우트나 레이아웃 단위로 동작합니다. Remote functions는 컴포넌트 단위 처리를 해결합니다. - @nlh — 몇 달째 프로덕션에서 사용 중인데 문제는 없었습니다. 여기저기 작은 우회 방법이 필요했지만, 그 외에는 잘 작동했습니다.
- @chrysoprace — 베타 때부터 개인 프로젝트 두 개에 SvelteKit 3을 쓰고 있는데 문제가 없었습니다. 새 기능을 많이 넣기보다 기존 기능을 다듬은 점이 가장 좋습니다.
- @jamies — React를 좋아하던 공동 창업자들을 Svelte와 SvelteKit으로 데려왔는데 모두 만족합니다. 웹사이트뿐 아니라 데스크톱과 모바일 앱에도 씁니다. Wails로 Go 백엔드를 붙이고 SvelteKit과 Svelte로 UI를 만들며, 바이너리 크기는 20MB보다 작습니다. Electron과는 다릅니다.
- @OzzyB — Wails를 최근 알게 된 뒤 Svelte를 접했습니다. Electron보다 훨씬 작은 크기로 데스크톱 앱을 만들 수 있어 인상적입니다.
- @brachkow — Svelte는 좋은 프레임워크지만, 개발 경험에 대한 칭찬 상당수는 React 사용자 관점이라고 봅니다. Vue보다 덜 다듬어졌고 작업하기도 덜 편했습니다. 다만 SSR이 필요해 Nuxt에서 SvelteKit으로 옮겼을 때는 서버 렌더링과 클라이언트·서버 코드 분리가 수월했습니다. Svelte는 채택률과 서드파티 라이브러리가 적고, 문법 변경도 잦아 도구 지원과 AI 활용에 불리합니다.
- @teg4n_ — Svelte 전용 도구를 이것저것 따로 써야 하는 점은 개발 경험을 해칩니다. Solid도 비슷한 성능을 내면서 TypeScript와 TSX 문법을 써 도구 연동이 쉽습니다. 현재 Svelte는 TypeScript 7을 쓸 수 없고 oxlint, oxfmt도 완전히 지원하지 않습니다. Storybook MCP 서버 등도 마찬가지입니다.
- @pampas — 예전에는 LLM이 Svelte, 특히 Svelte 5를 잘 다루지 못했지만 지금은 그렇지 않습니다. 학습 지식에 기대기보다 코드베이스의 패턴을 따라 하는 능력이 좋아졌습니다. 직접 평가해 보는 것도 좋습니다.
- @scosman — Svelte가 기술과 개발 경험 면에서 더 낫다고 생각하고 손으로 코딩할 때도 선호합니다. 하지만 React와 Shadcn 프로젝트를 LLM에 맡겼을 때는 모든 세부 사항이 정확해 버그를 찾거나 수정할 필요가 없었습니다. Svelte를 계속 쓰고 싶지만 모델이 차이를 완전히 좁히기를 바랍니다.
원문: Svelte / 번역·요약: Trawling