모던 웹 개발에서의 리액트 서버 컴포넌트(RSC), 프론트 개발자의 풀스택 길을 열다

no-glass-otacku·2025년 10월 12일
0

new 기술

목록 보기
1/1

📜 모놀리스를 넘어: 모던 웹 개발에서의 리액트 서버 컴포넌트(RSC)가 가져온 풀스택 개발의 역설

요즘 코딩 판에서 React Server Components (RSC) 얘기가 핫하다고 하는데 저도 잘 모르지만 주제가 재밌어서 알아봐 왔습니다~.
Next.js가 밀고 있는 이 기술은 단순한 기능 하나 툭 던져준 게 아니라, 우리 웹 개발판 자체를 뒤집어엎고 있다는데요.

RSC가 왜 등장했고, 이게 왜 '풀스택 개발의 역설'이라고 불리는지, 흥미롭게 파헤쳐 볼게요. 😉


1. 배경 지식: CSR과 '그 시절 모놀리스'를 소환합니다

RSC를 이해하려면, 우리가 '왜 이렇게까지 왔는가'를 봐야죠. 지금 우리를 괴롭혔던 두 가지 개념부터 쿨하게 정리해봅시다.

1-1. CSR (Client Side Rendering): "사용자 컴퓨터 뺑이 치는 방식"

CSR은 한때 SPA(Single Page Application)의 혁신이었지만, 요즘 들어 욕을 바가지로 먹는 방식이죠.

  • 작동 방식: 서버는 텅 빈 HTML 파일 하나 던져주고, 수많은 JavaScript 파일 뭉치(번들)를 사용자 브라우저에 배달합니다. 브라우저는 이 JS 뭉치를 전부 다운로드해서 실행하고, 그제야 화면을 완성하죠.
  • 문제점: JS 번들이 커질수록 초기 로딩이 답답해집니다. 사용자는 화면이 하얗거나 먹통인 상태(TTI 지연)를 하염없이 기다려야 해요. "아니, 왜 로딩만 하고 아무것도 안 돼?" 소리가 절로 나오죠. 🤬

1-2. 모놀리스(Monolith): "옛날 맛집의 만능 간장처럼"

모놀리스는 요즘 마이크로 서비스 아키텍처(MSA)에게 밀렸지만, 한때는 웹 서비스의 국룰이었어요.

  • 정의: 서비스의 모든 기능 (프론트엔드, 백엔드 로직, 데이터 처리, 인증 등)이 하나의 거대한 코드베이스와 하나의 애플리케이션에 몽땅 묶여 작동하는 방식입니다. 마치 김치찌개부터 삼겹살까지 다 파는 '옛날 만능 식당' 같아요.
  • 유명한 예시: 초창기 버전의 페이스북(Facebook)이나 이베이(eBay) 같은 서비스들이 이 모놀리스 구조에서 시작했어요. 물론 서비스가 커지면서 지금은 쪼개고 쪼개서 MSA로 갔지만, 처음에는 하나의 거대한 몸뚱이였죠.
  • 문제점: 코드가 엉키면 머리도 엉킵니다. 작은 기능 하나 수정해도 전체를 다시 배포해야 해서 개발 속도가 '느림보 거북이'가 됩니다. 그리고 한 군데 문제 터지면, 줄줄이 소시지처럼 전체 서비스가 터질 위험이 있죠. 😱

2. RSC의 등장과 기술적 떡상 포인트

RSC는 CSR의 느린 초기 로딩과 모놀리스의 배포/확장성 문제 사이에서 절묘한 균형점을 찾으려고 나타났습니다.

💡 RSC가 서버에서 처리하는 '핵심 미션'

RSC는 "데이터 가져오기(Data Fetching)랑 화면 그리기(Rendering)는 서버에서 해치우자"는 마인드입니다.

  1. 데이터 패칭 (Data Fetching) 혁신: Server Components는 DB에 직접 접근해서 데이터를 땡겨옵니다. 클라이언트에서 "야 서버! 데이터 줘!"라고 또 API 호출할 필요가 없어져요.
  2. JS 번들 다이어트: 서버에서 렌더링된 컴포넌트는 클라이언트로 JS 코드가 아닌 특수 포맷으로 전송됩니다. 상호작용이 없는 컴포넌트의 JS 코드는 클라이언트 브라우저로 아예 안 넘어가죠. 결과적으로 다운로드할 JS 양이 확 줄어들어 로딩 속도가 🚀 로켓처럼 빨라집니다.

📊 RSC vs. CSR vs. SSR, 뭐가 다른데?

구분CSR (Client Side Rendering)RSC (React Server Components)
렌더링 주체클라이언트 (사용자 브라우저)서버 (초기 콘텐츠 및 데이터)
JS 전송량무조건 전부 다 보냄 (느림)상호작용 컴포넌트만 선별적으로 보냄 (빠름)
데이터 접근클라이언트에서 API 별도 호출서버 컴포넌트에서 DB에 직접 접근
장점상호작용이 자유로움.초기 로딩 속도, 번들 크기, 데이터 접근 효율 최고

3. RSC가 가져온 '풀스택 개발'의 역설 🤯

RSC의 가장 재밌는 점은 개발자의 역할이 뒤섞인다는 거예요. RSC를 도입하면...

  1. 프론트엔드 개발자가 서버의 왕좌에 오르다: 프론트엔드 개발자가 Server Component에서 DB 접근 로직을 직접 짜게 됩니다. 이게 무슨 말이냐? 프론트 개발자가 곧 서버 개발자가 되는 풀스택 경계 붕괴가 일어난 거죠.
  2. API 서버의 정체성 혼란: 백엔드 팀이 힘들게 만들어 놓은 API 서버가 꿔다 놓은 보릿자루가 될 위기에 처합니다. 백엔드는 이제 "순수한 비즈니스 로직(핵심 기능)"과 "인프라 관리"라는 찐 업무에만 집중해야 합니다.

🤔 '옛날 모놀리스'로 회귀하는 거 아니야? (No!)

"어? 결국 하나로 합치는 거면 옛날 페이스북 모놀리스처럼 되는 거 아냐?"라고 생각할 수 있지만, 절대 아닙니다.

특징과거 모놀리스 (옛날 방식)RSC 기반 풀스택 (현재 방식)
코드 구조모든 기능이 엉킨 '대환장 파티'컴포넌트별로 서버/클라이언트 역할이 명확히 분리
기술 스택백엔드(Java 등) \neq 프론트엔드(JS)JS/TS 단일 언어로 통일 (개발 효율 굿)
배포 방식전체 서버를 다시 올려야 함 (무거움)서버리스(Edge Function) 형태로 빠르게 분산 배포 (가벼움)

RSC는 모놀리스의 '하나로 합쳐진 편의성'은 가져오되, 단점인 '유지보수 지옥'은 버린 '신개념 하이브리드'라고 이해하면 됩니다. 즉, 풀스택 코딩의 편리함분산 아키텍처의 확장성을 동시에 잡은 치트키인 셈이죠.


4. 이제 우리는 무엇을 준비해야 할까? (찐 개발자의 숙제)

RSC는 우리에게 설렘과 동시에 숙제를 던져줍니다.

1. '나만 아는 코드' 금지! 협업 규칙 재정립

프론트엔드 개발자가 DB 코드를 짜면, 백엔드 개발자와 코드 리뷰 및 보안 기준을 어떻게 맞출지가 핵심이에요. "이건 프론트 영역인데 건들지 마!" 하던 시대는 갔습니다.

2. 보안 지식, 선택이 아닌 필수

Server Component는 서버에서 작동합니다. 즉, 데이터베이스 접근 권한, 민감 정보 노출 방지 등 백엔드 레벨의 보안 지식이 프론트엔드 개발자에게도 필수 소양이 됩니다.

3. 경계 긋는 능력 = 고수

모든 컴포넌트를 RSC로 만들면 오히려 복잡해질 수 있어요. "여기까지는 서버 컴포넌트로 성능 잡고, 여기서부터는 클라이언트 컴포넌트로 사용자 상호작용 넣자!"라고 명확하게 경계를 그릴 줄 아는 능력이 진정한 고수의 덕목이 될 거예요.

RSC는 단순히 React의 유행이 아니라, 웹 개발의 다음 챕터를 열고 있습니다. 이 변화를 놓치지 않고 잘 탑승해서, 우리 모두 '갓생 개발자'로 레벨업 합시다! 🚀

profile
Move forward

2개의 댓글

comment-user-thumbnail
2025년 10월 13일

React가 강력한건 알고 있었는데 Next.js와 결합해서 서버 통신까지 가능하게 할 수 있는지는 몰랐네요.. JS뿐만 아니라 TS도 강력한 언어로서 자리매김하는 걸 보면 프론트에 특화된 직무가 아니더라도 관련 지식은 있어야할 것 같다는 생각이 들었습니다. 잘 읽었습니다!

답글 달기
comment-user-thumbnail
2025년 10월 14일

기술의 발달로 디자인-프론트엔드간의 경계처럼 프론트엔드-백엔드의 경계도 허물어지는 것이 요 근래의 주요 현상인 것 같아서 신기하네요..! 결국 진정으로 RSC를 활용하기 위해서는 또다른 공부가 필요해지니 이런 뉴노멀에 대비하는 자세가 필요할 것 같습니다..!

답글 달기