릴리스를 엿새 앞두고, React Core Team은 커뮤니케이션 전략을 최종 점검하고 있었다. 그들의 가장 큰 고민은, 서버 컴포넌트라는 낯선 개념을 어떻게 하면 개발자들이 오해 없이 받아들이게 할 것인가 하는 점이었다. 카나리 기간 동안 가장 흔하게 발견된 오해는 바로 ‘서버 컴포넌트는 SSR의 진화된 버전’이라는 인식이었다.
“이 오해를 바로잡지 못하면, 우리는 릴리스 첫날부터 수천 개의 똑같은 질문에 답해야 할 겁니다.”
커뮤니티 대응팀의 리더가 우려를 표했다. “‘SSR과 뭐가 다른가요?’라는 질문 말이죠.”
그 말에 앤드류 클라크는 깊이 공감했다. 그는 이 문제를 해결하기 위해, 기술적인 설명보다 더 직관적인 비유가 필요하다고 생각했다.
“우리가 만든 비유를 다시 한번 다듬어 봅시다. 기술에 익숙하지 않은 사람도 단번에 이해할 수 있도록요.”
그는 회의실 화이트보드에 ‘SSR’과 ‘Server Components’라고 적고, 팀원들과 함께 아이디어를 모으기 시작했다.
“SSR은 식당에 비유할 수 있습니다.” 한 엔지니어가 말했다. “손님(사용자)이 처음 입장했을 때, 텅 빈 테이블 대신 미리 차려진 음식 모형(HTML)을 보여줘서 식당이 비어 보이지 않게 하는 거죠.”
“좋은 시작입니다. 하지만 그 다음이 중요해요.” 앤드류가 덧붙였다. “음식 모형은 보기엔 좋지만 먹을 순 없죠. 실제 요리(자바스크립트)가 주방(클라이언트)에서 완성되어 나올 때까지 기다려야 합니다. 그리고 일단 요리가 나오면, 모든 것은 손님의 테이블 위(클라이언트)에서 일어납니다. 서버는 더 이상 관여하지 않죠.”
이 비유는 SSR의 본질, 즉 ‘초기 로딩을 위한 일회성 스냅샷’이라는 개념을 잘 설명했다.
이제 서버 컴포넌트 차례였다.
“그럼 서버 컴포넌트는 어떤 비유가 좋을까요?”
모두가 잠시 생각에 잠겼다. 그때, 조쉬 스토리가 조용히 입을 열었다.
“서버 컴포넌트는, ‘주방장(Chef)’ 그 자체에 비유할 수 있습니다.”
팀원들의 시선이 그에게 쏠렸다.
“생각해보세요.” 조쉬가 말을 이었다. “실력 좋은 주방장은 항상 자신의 주방(서버)에 머물러 있습니다. 그는 결코 홀(클라이언트)로 나오지 않아요. 그는 주방 안에서만 구할 수 있는 신선한 재료(데이터베이스, 파일 시스템)를 가지고, 자신만의 특별한 레시피(컴포넌트 로직)로 요리(렌더링)를 합니다.”
“그리고 요리가 완성되면 어떻게 하죠? 그는 요리법이나 주방 도구를 내보내는 게 아닙니다. 오직 완성된 ‘요리(HTML 결과물)’만을 웨이터를 통해 손님에게 전달하죠. 손님은 그저 맛있게 먹기만 하면 됩니다.”
완벽한 비유였다.
앤드류는 그 비유를 바탕으로 두 개념의 차이를 명확하게 정리했다.
“SSR은 식당의 음식을 ‘사진’으로 찍어 먼저 보여주는 것입니다. 사진은 즉시 볼 수 있지만, 실제 음식이 나올 때까지는 먹을 수 없죠. 그리고 결국 모든 요리는 손님의 테이블 위에서 이루어집니다.”
“반면, 서버 컴포넌트는 ‘주방장’ 자체가 주방(서버)에 영원히 머무르며, 필요할 때마다 요리만 해서 내보내는 방식입니다. 주방장은 결코 손님 앞으로 나오지 않죠.”
이 두 가지 비유는 서버 컴포넌트가 SSR의 대체재나 개선판이 아니라, 완전히 다른 차원의 개념임을 명확하게 구분해주었다.
팀은 이 비유를 공식 블로그 포스트와 컨퍼런스 발표의 핵심 메시지로 삼기로 결정했다. 이 직관적인 이야기를 통해, 개발자들은 더 이상 두 기술의 차이점을 혼동하지 않고, 각각의 역할과 가치를 올바르게 이해할 수 있게 될 터였다. 릴리스를 앞두고, 가장 큰 오해의 벽을 허물 강력한 무기가 마침내 완성되었다.


