Server Action을 단순 "서버에서 도는 편한 함수"로만 이해하는지, 아니면 클라이언트가 호출하는 RPC라는 동작 원리와 그에 따른 보안·검증 책임까지 함께 잡고 있는지를 가른다.
Server Action은 함수 본문이나 파일 상단에 'use server'를 붙여 서버에서만 실행되도록 표시한 함수다. Next.js는 이 함수를 빌드 시점에 내부 엔드포인트로 등록해두고, 클라이언트가 그 함수를 import해서 호출하면 사실은 폼 제출이나 fetch로 서버를 때려 해당 함수를 실행한 뒤 결과를 돌려주는 RPC처럼 동작한다. 덕분에 API Route를 따로 만들지 않고 변경 작업(create/update/delete, revalidate)을 짧게 처리할 수 있고, 서버 코드가 클라이언트 번들에 새지 않으며, <form action={...}>에 직접 연결해 JS 로딩 전에도 동작한다는 이점이 있다. 단, 결국 외부에서 호출 가능한 엔드포인트이므로 권한·입력 검증은 그대로 책임져야 한다.
API Route로 만들었던 변경 엔드포인트를 Server Action으로 옮겨본 경험이 있다면 코드 경로가 어떻게 단순해졌는지 그대로 답변에 풀 수 있다
Server Action에 zod 같은 스키마 검증과 권한 체크를 묶어 둔 경험이 있다면 "외부 호출 가능 경계" 이야기와 연결할 수 있다
낙관적 UI를 Server Action과 함께 써서 실패 시 롤백을 설계해본 적이 있다면 에러 처리 흐름에 그대로 가져갈 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.