inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3.4) 리액트 서버 컴포넌트 이해하기

React가 서버 컴포넌트를 지원하는 이유

해결된 질문

414

메가

작성한 질문수 17

0

안녕하세요 선생님. 강의 잘 듣고 있습니다.


강의를 듣고 Next.js도 아니고 React는 CSR 방식인데 왜 서버 컴포넌트를 지원하지? 라는 의문이 생겼습니다.


React 공식문서를 보니 프레임워크와 통합하기 위해 Next.js 팀과 협력했다고 나오더라고요. React가 서버 컴포넌트를 지원하게 된 계기가 Next.js의 SSR 때문인지 궁금합니다.

공식문서 : https://react.dev/learn/start-a-new-react-project#bleeding-edge-react-frameworks

react typescript next.js

답변 2

2

이정환 Winterlood

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

우선 React.js는 CSR 방식으로 출발했지만 그렇다고 CSR 방식에만 국한된 라이브러리는 아닙니다. 따라서 Next.js의 SSR과 서버 컴포넌트의 탄생 자체는 크게 의미가 있지는 않습니다.

두 기술의 관계를 정확히 비유하자면 React.js 서버 컴포넌트를 가장 잘 지원하는 메타 프레임워크가 Next.js 정도라고 설명할 수 있을 것 같습니다.

서버 컴포넌트가 개발된 배경에 대해 더 자세히 알아보고 싶으시다면 아래 첨부드린 아티클을 참고하시면 좋을 것 같습니다. 다음은 Dan(전 React.js 코어팀 개발자)이 직접 작성한 React Server Component의 개발 배경입니다.

https://github.com/reactwg/server-components/discussions/5

0

메가

답변 감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 메가님.

React와 Next.js 간의 통합, 특히 서버 컴포넌트 지원에 관한 좋은 질문 주셨습니다. React가 서버 컴포넌트를 지원하는 이유와 그 배경에 대해 간단히 설명해 드리겠습니다.

React와 서버 컴포넌트

  • 서버 컴포넌트 (Server Components): React에서 서버 컴포넌트를 도입한 이유는 서버와 클라이언트 간의 로직 분리를 통해 애플리케이션의 효율성을 높이기 위함입니다. 이는 서버에서 데이터 처리와 무거운 연산을 하고, 브라우저에서는 최종 UI 렌더링에만 집중하게 하여 더 나은 사용자 경험을 제공하는 것을 목적으로 합니다.

  • Next.js와의 협력: React는 Next.js 팀과 협력하여 서버 컴포넌트 기능을 개발했습니다. Next.js는 이미 SSR(Server-Side Rendering) 및 SSG(Static Site Generation)를 통해 서버와 클라이언트 간의 렌더링을 조화롭게 관리하고 있으므로, React의 새로운 기능인 서버 컴포넌트를 Next.js와 자연스럽게 통합할 수 있었습니다. 이는 Next.js의 SSR을 지원하고자 하는 React의 노력 중 하나로 볼 수 있습니다.

계기와 연관성

  • SSR의 필요성: Next.js의 성공적인 SSR 구현은 서버 컴포넌트 개발에 큰 영향을 미쳤습니다. 다양한 개발자들이 서버에서의 렌더링을 통한 성능 향상을 경험하면서, React 팀도 이러한 요구에 부응하게 된 것입니다.

공식 문서에서도 React와 Next.js 팀이 협력하여 새로운 기능을 개선했다고 언급되어 있으며, 이는 Front-End 개발자에게 더 많은 선택지와 유연성을 제공하기 위한 전략적 움직임입니다. 공식문서에서 언급된 내용을 참고해주세요:
- 공식문서의 자세한 내용: React의 Bleeding Edge Frameworks

유사한 질문과 답변을 참고하시면 추가적인 이해에 도움이 될 것 같습니다:
- Next.js와 SSR/SSG 사용 원칙: Next.js와 React 간의 SSR 협력에 대해 다루고 있는 게시물입니다.
- React와 서버 컴포넌트의 중요성과 사용: 서버 컴포넌트의 도입 배경과 효과를 제시하는 게시물입니다.

React에서는 다양한 환경에서 효율적인 개발을 지원하기 위해 지속적으로 발전하고 있으며, 서버 컴포넌트의 도입은 그 방향성 중 중요한 한 부분입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

풀라우트캐시 동작 원리에서 데이터 캐시 관련 질문

0

23

2

next.js 프로젝트

0

28

1

Next.js + Tanstack Query BFF 구조 질문

0

29

2

Next.js 사전렌더링 이해하기 부분

0

34

2

모달 관련 질문

0

42

3

렌더링 관련 질문

0

80

2

중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화

0

64

2

라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.

0

65

2

SSR시 context에 params말고 query를 사용하면 안되나요?

0

75

2

npx prisma db push 시 에러가 뜹니다.

0

94

3

vercel 배포를 실패하였습니다.

0

101

3

Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?

0

57

2

getServerSideProps 함수와 SSR의 관계

0

78

6

없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다

0

61

2

실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.

0

117

2

일반적인 nextjs project architecture에 대하여..

0

90

2

2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?

0

74

2

배포 시 오류 발생

0

90

2

백엔드 서버 오류납니다.

0

83

2

취약점 제거시 nestjs 버전 문제가 생길까요?

0

93

1

eslint.config.mjs 내 rules 어떻게 설정 하나요?

0

107

1

[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.

0

63

2

빨간줄 설정

0

77

2

익스텐션 질문

0

61

1