최근 웹 개발에서 뜨거운 주제로 떠오르고 있는 RSC를 보고 있자니...
요리사가 반조리 음식을 만들어서 주고, 손님이 테이블에서 간단하게 완성하는 방식으로 비유 할 수 있겠는데요... 즉, 요리사는 복잡한 일을 처리하고, 손님은 간단하게 조리만 한다는 개념... 요리사가 완전히 음식을 만들 필요도 없고, 손님이 다 직접 하지도 않아도 되는 개념인데...
기존 SSR(Server Side Rendering - 화면 렌더링을 서버에서 처리하고 완성된 HTML을 브러우저로 보내는 방식)은 같은 방식으로 비유를 하자면 레스토랑에서 주문하고 요리사가 음식을 완성해서 손님에게 바로 서빙하는 방식이라고 비교 할 수 있을 것 같아요.
그러면 CSR(Client Side Rendering - 모든 렌더링을 브라우저에서 처리하는 방식)은 손님이 직접 주방에 가서 재료를 가져다가 요리하는 셀프 서비스로 비교할 수 있을 것 같은데...
서버 컴포넌트가 서버에서 실행은 되지만, 이게 꼭 화면 렌더링(SSR)을 한다는 의미는 아니고... 서버 컴포넌트는 데이터를 처리 하거나 HTML 일부를 준비하고, 클라이언트 컴포넌트와 협업할 수 있다는 건데... 달리 이야기 하면... SSR의 장점과 CSR의 장점을 묶었다고 할 수 있는건데... 잘못하면 장점을 묶은게 아니라 단점을 묶은 것이 될 수 도 있으니... 논쟁의 상태에서 결론 나기는 쉽지 않은 주제 같네요. 개인적으로 이런 퓨전같은... 모호~한 개념을 별로 좋아하지 않지만 최근 트렌드는 이런 방향으로 흘러 가는 것 같아서 제가 노땅이 되어 가는 것을 반증하는 것 같기도 하네요. .ㅜㅜ;