백엔드 서버가 존재할 때에도 서버 액션을 사용하는 것이 바람직할까요?
안녕하세요! 서버 액션에 관해 궁금한 점이 생겨 질문드립니다.
일단 제가 강의를 보고 실습하면서 느꼈던 서버 액션의 큰 장점은 다음과 같습니다.
브라우저에서 서버 측에서 사용되는 함수를 실행할 수 있다. => 별도의 백엔드 API를 구현하지 않고도 DB에 직접적으로 접근하는 등의 작업이 가능
브라우저와의 상호작용을 하면서도 컴포넌트를 서버 컴포넌트로 유지할 수 있다.
하지만 1번 장점의 경우 혼자 풀스택으로 개발하지 않고 백엔드 개발자와 함께 개발하는 경우에는, 주로 이번 강의와 같이 서버 액션 함수 내에서 별도의 API를 호출하게 될 것이라 생각됩니다.
이런 경우에도 기존의 방식대로 onSubmit 등을 사용해서 API를 호출하는 것보다, 2번 장점을 위해 서버 액션을 사용하는 것이 바람직 할지 궁금해 질문드립니다!
state를 이용해 실시간 validation이 이루어져야 하는 곳이 아니라면 유용할 것 같다고 생각이 들지만, 구글링을 해봐도 최신 기술이라 그런지 실제 적용 사례를 잘 찾아볼 수 없어 질문 드립니다!
답변 1
1
안녕하세요 이정환입니다.
상황에 따라 다를 것 같아요!
우선 서버 액션을 사용했을 때의 장점에는 비동기 작업이 종료된 이후 revalidatePath 혹은 revalidateTag 메서드를 이용해 특정 페이지를 갱신할 수 있다는 점도 있어요. 요 내용은 뒤에 "리뷰 갱신하기" 챕터에서 다룰거랍니다. 따라서 비동기 작업의 결과를 페이지에 즉시 반영해야 하는 경우에는 서버 액션을 활용하는게 도움이 될 수 있을 것 같아요
추가로 백엔드 API 서버에 CORS가 설정되어 브라우저 측에서 직접 호출이 불가능하거나, 보안상 민감한 정보를 계산하거나 다뤄야 하는 경우에도! 서버 액션을 활용해 API를 호출하도록 하는게 더 좋을 것 같아요 😃
그 외의 아주 일반적인 API 호출 상황이라면, 즉 그다지 특별한 이유가 없다면 굳이 서버 액션을 거쳐갈 이유는 없으니 보통은 백엔드 서버의 API를 직접 호출하는게 더 일반적이에요
Next.js 사전렌더링 이해하기 부분
0
17
1
모달 관련 질문
0
30
3
렌더링 관련 질문
0
76
2
중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화
0
59
2
라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.
0
60
2
SSR시 context에 params말고 query를 사용하면 안되나요?
0
73
2
npx prisma db push 시 에러가 뜹니다.
0
91
3
vercel 배포를 실패하였습니다.
0
93
3
Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?
0
54
2
getServerSideProps 함수와 SSR의 관계
0
76
6
없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다
0
58
2
실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.
0
112
2
일반적인 nextjs project architecture에 대하여..
0
83
2
2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?
0
71
2
배포 시 오류 발생
0
83
2
백엔드 서버 오류납니다.
0
79
2
취약점 제거시 nestjs 버전 문제가 생길까요?
0
89
1
eslint.config.mjs 내 rules 어떻게 설정 하나요?
0
102
1
[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.
0
60
2
빨간줄 설정
0
74
2
익스텐션 질문
0
58
1
강의 들으면서 궁금한 부분 질문드립니다.
0
108
1
서버 배포 에러입니다.
1
97
2
[5.2) 풀라우트 캐시 2] fetch의 cache 옵션 기본값 질문: no-store/force-cache
1
102
2





