왜 이 조합인가
2025년 기준으로 코드벤터가 메인 스택으로 선택한 이유를 공유합니다. Next.js + Express도, Django도 아닌 SvelteKit + FastAPI입니다.
SvelteKit의 진짜 강점
번들 크기가 작다
React의 Virtual DOM 없이 컴파일 타임에 최적화된 순수 JS를 생성합니다. 동일한 기능을 구현했을 때 React 대비 번들 크기가 30~50% 작습니다.
Svelte 5 Runes — 가장 직관적인 반응성
svelte
<script>
// 상태 선언
let count = $state(0);
// 파생 상태 (computed)
let doubled = $derived(count * 2);
// 사이드 이펙트
$effect(() => {
document.title = `Count: ${count}`;
});
</script>
<button onclick={() => count++}>
{count} (doubled: {doubled})
</button>
React의 useState, useEffect, useMemo를 하나씩 외울 필요가 없습니다.
SSR + SSG 완벽 지원
javascript
// +page.server.js — 서버에서 데이터 fetch
export async function load({ fetch, params }) {
const post = await fetch(`/api/blog/${params.slug}`);
return { post: await post.json() };
}
// 이 데이터는 서버에서 렌더링됨 → SEO 완벽
Vercel 배포가 너무 쉽다
bash
git push origin main
# → Vercel이 자동 감지 → 빌드 → 배포 완료
# Preview URL도 자동 생성
FastAPI의 진짜 강점
자동 문서가 생긴다
python
@router.post("/portfolios", response_model=PortfolioResponse)
async def create_portfolio(
data: PortfolioCreate,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db)
):
# 포트폴리오 등록 (인증 필요)
portfolio = Portfolio(**data.model_dump(), user_id=current_user.id)
db.add(portfolio)
db.commit()
return portfolio
이 코드 하나로 /docs에 Swagger UI, /redoc에 ReDoc이 자동 생성됩니다. 프론트 개발자와 협업 시 별도 API 문서 작성이 불필요합니다.
Pydantic으로 타입 안전성
python
class PortfolioCreate(BaseModel):
title: str = Field(min_length=2, max_length=100)
description: str
category_id: str
url: Optional[HttpUrl] = None
@validator('category_id')
def validate_category(cls, v):
valid = ['ai', 'web', 'erp', 'data', 'cloud', 'system']
if v not in valid:
raise ValueError(f'유효하지 않은 카테고리: {v}')
return v
잘못된 데이터가 들어오면 자동으로 422 에러와 명확한 에러 메시지를 반환합니다.
비동기 처리 성능
python
# AI API 동시 호출 — asyncio로 병렬 처리
async def analyze_portfolio(portfolio_id: int):
async with asyncio.TaskGroup() as tg:
summary_task = tg.create_task(get_ai_summary(portfolio_id))
tags_task = tg.create_task(get_ai_tags(portfolio_id))
return {
"summary": summary_task.result(),
"tags": tags_task.result()
}
# 직렬: 4초 → 병렬: 2초
실제 개발 속도 비교
| 작업 | Next.js + Express | SvelteKit + FastAPI |
|---|---|---|
| 초기 셋업 | 2시간 | 30분 |
| CRUD API + 문서 | 1일 | 3시간 |
| 인증 구현 | 2일 | 4시간 |
| 배포 파이프라인 | 4시간 | 30분 |
| **합계** | **약 6일** | **약 2일** |
언제 다른 스택을 쓰나
- React가 필요한 경우: 팀이 React에 익숙하거나, 대규모 공개 오픈소스 프로젝트
- Django가 필요한 경우: 빠른 Admin 패널이 필요하거나, ORM 중심 개발
- Go/Rust 백엔드: 극도의 성능이 필요한 경우
코드벤터는 SvelteKit + FastAPI 조합으로 개인회생 전문가 매칭 플랫폼을 약 4개월(1인)에 완성했습니다. 빠른 개발, 낮은 유지보수 비용, SEO 친화적 — 이 세 가지를 동시에 얻고 싶다면 이 스택을 추천합니다.