서버에서 실행되는 비동기 함수로, 폼 처리와 데이터 변경을 간단하게 처리할 수 있습니다.'use server' 디렉티브로 정의합니다.
// Server Action 정의
async function createPost(formData: FormData) {
'use server';
const title = formData.get('title');
await db.post.create({ data: { title } });
revalidatePath('/posts');
}
// 사용
<form action={createPost}>
<input name="title" />
<button type="submit">Create</button>
</form>| 특성 | Server Actions | API Routes | Client Fetch |
|---|---|---|---|
| 주 용도 | 폼 처리, Mutation | RESTful API | 클라이언트 요청 |
| 타입 안정성 | ✅ 완벽 | ⚠️ 수동 | ⚠️ 수동 |
| Progressive | ✅ 지원 | ❌ 미지원 | ❌ 미지원 |
| 재검증 | ✅ 내장 | ⚠️ 수동 | ⚠️ 수동 |