강의

멘토링

로드맵

Inflearn brand logo image

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

2Digit APP님의 프로필 이미지
2Digit APP

작성한 질문수

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

7.5) 다양한 재검증 방식 살펴보기

클라이언트 컴포넌트에서의 서버컴포넌트 재호출에 대한 질문

해결된 질문

작성

·

91

0

선생님이 이번 강의에서

서버액션을 이용한 서버컴포넌트 재검증에 대한 설명을 해주셨는데요.

 

방금 강의를 듣고나니 불현듯,

 

어? 그럼 클라이언트 컴포넌트에서, post요청을 날리면 서버컴포넌트 업데이트를 어떻게 치지?

 

방금 설명해주신것처럼 모든 post 요청을 서버액션으로 만든 후에 revalidatePath나 revalidateTag를 사용해야하는건가? 라는 의문점이 들었습니다.

 

보통 실무에서는 프론트가 다이렉트로 db에 접근하는 일이 거의 없기 때문에, 백엔드가 항상 붙어있는데

그럼 결국 클라이언트 컴포넌트에서 서버액션을 통해 post요청을 보내고, 웹서버측에서는 백엔드에 post요청을 보내는식의 2번작업이 일어나야만, post요청이 끝나고 서버컴포넌트의 업데이트가 가능한걸까요 ?

답변 2

0

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

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

이는 여러 방법으로 해결 하실 수 있습니다.

서버 액션을 사용하시지 않더라도, POST 요청 이후에 브라우저를 새로고침 시키거나, 또는 에러 핸들링 섹션에서 안내드린대로 router.refresh를 사용하셔도 됩니다. 중요한건 현재 페이지의 서버 컴포넌트를 다시 렌더링 하고 그 결과를 응답하도록 Next.js 서버에게 요청하는 거니까요 😃

그러나 이런 동작이 많이 필요하시다면 업데이트 되어야 하는 부분을 클라이언트 컴포넌트로 구현하시는 것도 고려해 봄 직 합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 2Digit APP님.

서버 액션을 통한 서버 컴포넌트의 재검증 및 업데이트 방식에 대한 질문을 주셨네요. 해당 주제는 실무에서 클라이언트 컴포넌트와 서버 컴포넌트 사이의 데이터 흐름을 이해하는데 중요한 부분입니다. 관련된 설명과 실무에서의 적용 방법을 간단히 요약해 드리겠습니다.

클라이언트에서 서버 컴포넌트 업데이트

  • 서버 액션 사용: 클라이언트에서 서버 액션을 통해 POST 요청을 보내는 경우, 서버는 해당 요청을 처리한 후 필요한 서버 컴포넌트를 업데이트하게 됩니다. 이는 revalidatePathrevalidateTag를 사용하여 특정 경로 또는 태그의 컴포넌트를 다시 불러오도록(재검증) 구성하는 방식이 맞습니다.

  • 프론트엔드와 백엔드 간의 데이터 흐름: 일반적으로 클라이언트 측에서 직접 데이터베이스와 상호작용하지 않기 때문에, 서버 액션은 프론트엔드에서 백엔드로 요청을 전달하는 중간 단계 역할을 합니다. 즉, 클라이언트에서 서버 액션으로 POST 요청을 보내고, 서버에서 그 요청을 처리한 후 데이터베이스를 갱신하거나 필요한 작업을 수행하게 됩니다.

  • POST 요청의 2단계 처리: 질문에서 언급하신 대로, 프론트에서 서버 액션을 통해 POST 요청을 보내고, 그 요청이 백엔드 서버(웹 서버)가 데이터를 처리한 후 실제로 DB에 반영하는 2단계 프로세스가 일반적입니다. 이는 보안성과 데이터 일관성을 유지하기 위해 설계된 패턴으로, 보통 이러한 방식으로 데이터를 처리합니다.

관련 유사 질문 및 자료

이해하시기에 도움이 되었기를 바라며, 추가적인 정보나 설명이 필요하시면 언제든지 질문해 주세요. 곧 지식공유자께서도 더욱 풍부한 답변을 제공해 주실 것입니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

2Digit APP님의 프로필 이미지
2Digit APP

작성한 질문수

질문하기