인프런 커뮤니티 질문&답변
7.6 createReviewAction 서버 액션 컴포넌트에 state 값을 넘기는 것에 관한 질문입니다.
해결된 질문
작성
·
156
0
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨
질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)
- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)
- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)
질문 하실때 꼭 확인하세요
- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)
- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)
- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)
- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요
- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
7.6 createReviewAction 서버 액션 컴포넌트에 state 값을 넘기는 것에 관한 질문입니다.
강의 8분 35초 쯤에, state를 넘긴다고 하셨는데, 함수 내에서 사용하지 않는데 굳이 왜 넘기는 것인가요? 감사합니다.
퀴즈
Next.js 서버 액션의 주요 목적은 무엇일까요?
클라이언트에서 백엔드 API를 직접 호출하는 라우트를 정의합니다.
클라이언트에서 서버 코드를 별도의 API 없이 직접 호출합니다.
전역 애플리케이션 상태를 관리하기 위함입니다.
서버 측 렌더링을 전담하기 위함입니다.
답변 2
0
안녕하세요 이정환입니다.
이는 React의 useActionState 훅의 내부 동작 때문에 그렇습니다.
useActionState는 dispatch 함수가 호출될 때, 액션 함수(ex. createReview 등 ...)를 호출하면서 인수로 현재의 State 값과 FormData를 전달합니다.
예시와 함께 다시 이야기 하자면, 다음 코드에서 dispatch 함수가 호출될 경우 useActionState가 자동으로 action 함수를 호출하면서 인수로 state와 formData를 넘겨준다는 말 입니다.
const [state, dispatch, pending] = useActionState(action, null)그리고 이런 동작은 React의 내장 Hook인 useActionState의 동작이므로 우리가 직접 수정할 수 없습니다 ㅠㅠ 따라서 어쩔 수 없이 useActionState와 함께 서버액션을 사용할 때에는 첫번째 매개변수로 현재의 State 값을 전달받도록 설정 해 주셔야 합니다.
쉽게 딱 한문장으로 정리하자면 호출하는 쪽에서 그렇게 호출하기 때문이라고 할 수 있겠네요 😃
0
안녕하세요, 인프런 AI 인턴입니다. wldls317님.
강의 내용을 바탕으로 한 질문 주셔서 감사합니다. createReviewAction 컴포넌트에서 state를 넘기는 이유와 그 의미에 대해 궁금하셨군요.
일반적으로, 컴포넌트에 state를 넘기는 이유는 해당 state가 그 컴포넌트에서 사용되거나 영향을 미치기 때문입니다. 그러나, 경우에 따라서는 state 자체가 직접 사용되지 않더라도, 하위 컴포넌트가 외부 변화에 대응해야 하는 상황을 만들 수 있습니다. 여기에는 다음과 같은 이유가 있을 수 있습니다:
Side Effect 관리: 특정한 state가 변경되면 서버 액션에서 부수적인 작업이 필요할 수 있습니다. 이 때 state가 변경 사항을 감지하는 트리거 역할을 할 수 있습니다.
State Propagation: 상위 컴포넌트에서 하위 컴포넌트로 state를 전달하여 데이터 흐름을 따라가는 패턴을 유지하고, 이후 해당 state를 사용하거나 추적할 수 있습니다.
코드 확장성 및 유지보수: 비록 현재 함수 내에서 직접 사용되지 않더라도, 코드가 확장되어 나중에 해당 상태를 이용할 가능성이 있다면 미리 준비해 두는 것이 보다 유연한 코드를 작성하는 방법일 수 있습니다.
관련하여 자세한 설명과 답변을 보시고 싶다면 React에서 useCallback과 React.memo의 사용 기준을 참고해보시면 좋습니다. 이 질문은 상태와 props에 관한 최적화 및 그 사용 사례에 대해 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




