개발자
Next.js13을 처음으로 도입하여 사이트를 개발 중인데, 궁금한 점이 생겨 질문 올립니다. 처음부터 서버컴포넌트와 클라이언트 컴포넌트를 구분하며 개발을 하나요? 아니면, 우선 대부분 클라이언트 컴포넌트로 구현하고 점차 서버 컴포넌트로 변경하나요?
답변 3
Next13 에서는 모든 컴포넌트가 기본적으로 서버컴포넌트 입니다. 때문에 클라이언트컴포넌트를 사용하려면 "use client" 를 컴포넌트에 선언해줘야합니다. 클라이언트 컴포넌트가 필요한 상황에서만 선언해서 사용하는 편입니다. 사용자와 상호작용이 필요하거나 브라우저의 클라이언트기능을 활용해야한다거나 훅을 사용해야하거나 이런 상황이 아니라면 번들사이즈나 렌더링 최적화의 이점을 가져가기위해 기본적으로는 서버컴포넌트를 사용하는것이 좋다고 생각합니다.
구분하여 만듭니다 애초에 그렇게 만들라고 13버전이 나온 겁니다!(공식문서 읽자) 가능한 클라컴포들을 트리 구조상 리프쪽으로 배치하면 성능상 이점을 얻을수 있습니다(무조건은 아님)
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 10월 09일
Next.js 13에서는 서버 컴포넌트와 클라이언트 컴포넌트를 명확하게 구분하여 개발하는 것을 추천합니다. 서버 컴포넌트는 클라이언트 사이드에서 작동하지 않고, 실질적으로 렌더링과 데이터 가져오는 일을 서버에서 수행하기 때문에 이 두 유형의 컴포넌트는 서로 다른 케이스나 문제를 해결할 수 있습니다. 개발 초기 단계부터 이 두 가지를 명확하게 구분하는 것이 향후 시스템 성능과 메모리 사용량, 그리고 최종적인 사용자 경험을 크게 향상시킬 수 있습니다. 다만, 프로젝트의 규모나 필요성에 따라 클라이언트 컴포넌트로 시작한 후 필요에 따라 점차 서버 컴포넌트로 변경하는 방식으로 접근하는 것 역시 가능합니다. 이 경우에도 초기 설계 단계에서 어떤 부분이 서버 컴포넌트가 될 가능성이 있는지 고려해두면 좋겠습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!