server-architecture
4
总安装量
4
周安装量
#54119
全站排名
安装命令
npx skills add https://github.com/dev-goraebap/sveltekit-skills --skill server-architecture
Agent 安装分布
claude-code
4
cursor
2
antigravity
2
codex
2
mcpjam
1
iflow-cli
1
Skill 文档
SvelteKit Server Layer Architecture
ì¶ì² 기ì ì¤í
| ìì | ì¶ì² | ì´ì |
|---|---|---|
| ORM | Drizzle ORM | ê²½ë, íì ìì , SQL-like APIë¡ ì§ê´ì |
| ì¸ì¦ | better-auth | ì¸ì ê´ë¦¬, OTP, ìì ë¡ê·¸ì¸ ë± ë´ì¥ |
íë¡ì í¸ ìí©ì ë°ë¼ ë¤ë¥¸ ë구를 ì íí ì ìë¤. ìë ìí¤í ì² í¨í´ì ORMì 무ê´íê² ì ì©ëë¤.
ì Active Recordì¸ê°
SvelteKitì DI 컨í ì´ë를 ì ê³µíì§ ìëë¤. Active Record í¨í´ì¼ë¡ ëë©ì¸ ë¡ì§ì 모ë¸ì 캡ìííë©´:
- 모ë¸ì´ ìì²´ì ì¼ë¡ ORMì importíë¯ë¡ DI ìì´ë ìì§ë ëì ì½ëê° ëë¤.
+server.tsììë ëë©ì¸ 모ë¸ì ë©ìëë§ í¸ì¶íë¤. SQL/ORM ì½ëê° ë¼ì°í¸ íì¼ì ë ¸ì¶ëì§ ìëë¤.- í ì´ë¸ ë¨ìë¡ ì± ìì´ ë¶ë¦¬ëì´ ë³ê²½ ìí¥ ë²ìê° ëª ííë¤.
ìë² ë ì´ì´ 구조
$lib/server/
db/ â ORM ì¤ì + ìë¸ëë©ì¸ë³ ì¤í¤ë§
index.ts â DB ì°ê²° ì¸ì¤í´ì¤
{subdomain}-schema.ts â ìë¸ëë©ì¸ë³ í
ì´ë¸ ì ì
domain/ â Active Record ëª¨ë¸ (ìë¸ëë©ì¸ë³ í´ë)
{subdomain}/
{model}.ts
infra/
service/ â Query Service (ì¡°í ì ì© ë·°ëª¨ë¸)
{name}-query.service.ts
$lib/entities/ â ëë©ì¸ íì
+ ìì í¬í¼ (ìë²/í´ë¼ì´ì¸í¸ ê³µì )
ì¤í¤ë§ ì¡°ì§: ìë¸ëë©ì¸ ë¶ë¥
- í¨ê» ë³ê²½ëë í ì´ë¸ì íëì ìë¸ëë©ì¸ì¼ë¡ 묶ëë¤.
- ìë¸ëë©ì¸ ê° FKë íì©íë, ì¤í¤ë§ íì¼ì ë¶ë¦¬íë¤.
- íì¼ëª
ì
{ìë¸ëë©ì¸}-schema.tsíìì ë°ë¥¸ë¤.
Domain Model (Active Record)
- ì기 í ì´ë¸ ëì CUD + ë¨ì ì¡°íë§ ë´ë¹íë¤.
create()ë ë´ë¶ìì íìê°(sortOrder, createdAt ë±)ì ìë ê³ì°íë¤. í¸ì¶ì¸¡ì ì¸ë¶ì¬íì ë ¸ì¶íì§ ìëë¤.- ëë©ì¸ ì ì± ë¡ì§ë ì¬ê¸°ì ìì¹íë¤ (ì: ì°ì°¨ ì¼ì ê³ì°).
- ë³µì¡í ì¡°í(í¬ë¡ì¤ ëë©ì¸ ì¡°ì¸, ì§ê³ ë±)ë Query Serviceë¡ ììíë¤.
- ORMì ì§ì importíë¤. DIê° íìíì§ ìë¤.
Query Service (ì¡°í ì ì©)
- í¬ë¡ì¤ ëë©ì¸ ì¡°ì¸ íì© â ì¡°íë SQL ì¡°ì¸ì´ë¯ë¡ ëë©ì¸ ê²½ê³ë¥¼ ê°ì íì§ ìëë¤.
- ë·°ëª¨ë¸ íì
ì ê°ì íì¼ì ì ìíë¤. íë¡ í¸ìì
import typeì¼ë¡ ì¬ì©íë¤. - ë©ìëëª
ì ì©ë를 ëë¬ë¸ë¤:
listPage(),listOptions(),getDetail()ë±.
ë°ì´í° íë¦ ê·ì¹
| ìí | ìì¹ | í¸ì¶ ëì |
|---|---|---|
| ì½ê¸° (R) | +page.server.ts load / +layout.server.ts load |
Query Service |
| ì°ê¸° (CUD) | routes/api/**/+server.ts REST ìëí¬ì¸í¸ |
Domain Model |
routes/api/**/+server.tsìì ì§ì ORM ì¡°ì ê¸ì§ â ë°ëì Domain Modelì íµí´.+page.server.tsloadìì ì§ì ORM ì¡°ì ê¸ì§ â ë°ëì Query Service를 íµí´.+page.server.tsìë loadë§ ëë¤. form actionsë ì¬ì©íì§ ìëë¤.- Layout load â ê²½ë ìµì ë°ì´í° (ì ë í¸, ëë¡ë¤ì´ ë± ê³µì 참조 ë°ì´í°)
- Page load â íì´ì§ ì ì© ë·°ëª¨ë¸ (목ë¡, ìì¸, íì´ì§ ë±)
ìëí¬ì¸í¸ í¨í´
- ê²ì¦ â ëë©ì¸ ëª¨ë¸ í¸ì¶ â JSON ìëµ í¨í´ì ë°ë¥¸ë¤.
- ê°
+server.tsë ë 립ì ì´ë¤. ë¤ë¥¸ ìëí¬ì¸í¸ë¥¼ í¸ì¶íì§ ìëë¤. - ìì² ê²ì¦ ë¼ì´ë¸ë¬ë¦¬ë ìì ë¡ê² ì ííë¤ (Zod, Valibot, ArkType ë±). ì¤í¤ë§ë
+server.tsíì¼ ìë¨ì ì ìíë¤.