프론트엔드 개발 · 중급
App Router의 Server Component에서 Client Component로 Props를 전달할 때 발생할 수 있는 직렬화(Serialization) 에러의 원인은 무엇인가요?
힌트 · 서버에서 클라이언트로 넘어가는 데이터는 JSON으로 직렬화 가능해야 하므로, 함수(Function)나 Date 인스턴스 등을 직접 Props로 넘기면 에러가 발생합니다.
직렬화클라이언트 컴포넌트서버 컴포넌트PropsJSON
모범답안
App Router에서 Server Component에서 Client Component로 Props를 전달할 때 직렬화 에러가 발생하는 주된 이유는 서버에서 클라이언트로 데이터를 전송할 때 JSON 형태로 직렬화되기 때문입니다.
JSON은 JavaScript의 모든 데이터 타입을 지원하지 않습니다. 특히 함수(Function)나 Date 객체, Symbol과 같은 JavaScript 고유의 타입은 JSON으로 변환할 수 없습니다.
따라서 Server Component에서 이러한 타입의 데이터를 Props로 Client Component에 넘기려고 하면 직렬화 과정에서 에러가 발생합니다. 해결책으로는 이러한 데이터를 문자열이나 숫자와 같이 JSON으로 표현 가능한 형태로 변환하여 Props로 전달하는 방법이 있습니다. 예를 들어 Date 객체는 toISOString() 메서드를 사용하여 문자열로 변환할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Next.js 면접 질문
- Next.js에서 Hydration(하이드레이션) 과정은 무엇인가요?
- Next.js의 기본 포트 번호는 무엇이며, 어떻게 변경하여 실행할 수 있나요?
- 프로덕션 환경을 위한 빌드 및 실행 명령어는 무엇인가요?
- Client Component 경계 내부에서 Server Component를 직접 import하여 자식으로 사용할 때 발생하는 문제는 무엇이며, 이를 우회하는 패턴은 무엇인가요?
- App Router 환경에서 fetch API를 사용할 때, 캐싱을 비활성화하고 매 요청마다 서버에서 동적으로 데이터를 가져오게 하려면 옵션을 어떻게 설정하나요?
- App Router에서 특정 경로의 동적 렌더링 여부를 파일 레벨에서 강제하기 위해 export하는 Route Segment Config 변수와 값은 무엇인가요?