강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

서랑님의 프로필 이미지
서랑

작성한 질문수

한 입 크기로 잘라먹는 Next.js(v15)

7.2) 리뷰 추가 기능 구현하기

백엔드 서버가 존재할 때에도 서버 액션을 사용하는 것이 바람직할까요?

해결된 질문

작성

·

77

0

안녕하세요! 서버 액션에 관해 궁금한 점이 생겨 질문드립니다.

일단 제가 강의를 보고 실습하면서 느꼈던 서버 액션의 큰 장점은 다음과 같습니다.

  1. 브라우저에서 서버 측에서 사용되는 함수를 실행할 수 있다. => 별도의 백엔드 API를 구현하지 않고도 DB에 직접적으로 접근하는 등의 작업이 가능

  2. 브라우저와의 상호작용을 하면서도 컴포넌트를 서버 컴포넌트로 유지할 수 있다.

 

하지만 1번 장점의 경우 혼자 풀스택으로 개발하지 않고 백엔드 개발자와 함께 개발하는 경우에는, 주로 이번 강의와 같이 서버 액션 함수 내에서 별도의 API를 호출하게 될 것이라 생각됩니다.

이런 경우에도 기존의 방식대로 onSubmit 등을 사용해서 API를 호출하는 것보다, 2번 장점을 위해 서버 액션을 사용하는 것이 바람직 할지 궁금해 질문드립니다!
state를 이용해 실시간 validation이 이루어져야 하는 곳이 아니라면 유용할 것 같다고 생각이 들지만, 구글링을 해봐도 최신 기술이라 그런지 실제 적용 사례를 잘 찾아볼 수 없어 질문 드립니다!

답변 1

1

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 이정환입니다.

상황에 따라 다를 것 같아요!

우선 서버 액션을 사용했을 때의 장점에는 비동기 작업이 종료된 이후 revalidatePath 혹은 revalidateTag 메서드를 이용해 특정 페이지를 갱신할 수 있다는 점도 있어요. 요 내용은 뒤에 "리뷰 갱신하기" 챕터에서 다룰거랍니다. 따라서 비동기 작업의 결과를 페이지에 즉시 반영해야 하는 경우에는 서버 액션을 활용하는게 도움이 될 수 있을 것 같아요

추가로 백엔드 API 서버에 CORS가 설정되어 브라우저 측에서 직접 호출이 불가능하거나, 보안상 민감한 정보를 계산하거나 다뤄야 하는 경우에도! 서버 액션을 활용해 API를 호출하도록 하는게 더 좋을 것 같아요 😃

그 외의 아주 일반적인 API 호출 상황이라면, 즉 그다지 특별한 이유가 없다면 굳이 서버 액션을 거쳐갈 이유는 없으니 보통은 백엔드 서버의 API를 직접 호출하는게 더 일반적이에요

서랑님의 프로필 이미지
서랑
질문자

넵, 빠르고 친절한 답변 항상 감사합니다!

서랑님의 프로필 이미지
서랑

작성한 질문수

질문하기