서버 액션은 클라이언트 측 자바스크립트가 서버에서 실행되는 함수를 직접 호출할 수 있게 만드는 기능. 기존에는 클라이언트에서 서버로 데이터를 보내기 위해 API 엔드포인트(REST API 등)를 설정하고 fetch를 사용해야 했으나, 서버 액션은 함수 정의 앞에 "use server" 지시어를 붙이는 것만으로 RPC(Remote Procedure Call) 구현 가능.
서버 액션은 파일 상단이나 함수 내부에 지시어를 선언하여 사용.
// actions.js (서버 액션 전용 파일)
"use server";
export async function createPost(formData) {
const title = formData.get("title");
// DB 저장 로직 수행
console.log("Post Created:", title);
}
// 컴포넌트 내부 사용
import { createPost } from "./actions";
export default function PostForm() {
return (
<form action={createPost}>
<input name="title" type="text" />
<button type="submit">작성</button>
</form>
);
}
핵심 요약
- 별도의 API 엔드포인트 구축 없이 서버 함수 직접 호출 가능.
- 서버 측 실행으로 인한 클라이언트 번들 크기 감소 및 보안성 향상.
- 폼 제출 및 서버 데이터 변경 작업의 생산성 극대화.
출처: 한 입 크기로 잘라먹는 Next.js(v15)