프론트엔드 개발에서 ‘복잡함’을 단순히 재사용 가능한 컴포넌트를 나누는 문제로 치부하는 것은 위험하다. 진정한 기술적 난제는 데이터의 생명주기를 어떻게 관리하고, 예외 상황에서 사용자에게 어떤 경험을 제공할 것인가에 있다. 특히 실시간 협업 도구나 대규모 데이터 대시보드에서는 네트워크 지연, 데이터 불일치, 렌더링 부하와 같은 문제들이 얽혀 있으며, 이는 백엔드의 분산 시스템 설계만큼이나 깊은 고민을 요구한다.

컴포넌트 단위의 최적화보다 앞서야 하는 것은, 제품 전체를 관통하는 데이터 아키텍처의 설계다.

근거

Google Docs와 같은 협업 편집 도구는 단순한 입력창이 아니라, 고도의 데이터 동기화 알고리즘과 충돌 해결 전략이 UI와 결합된 시스템이다.

이건 “컴포넌트를 어떻게 나눌까” 만의 문제가 아니다. 상태의 원본을 어디에 둘지, 어떤 데이터는 stale해도 되는지, 어떤 화면은 SSR이 맞고 어떤 화면은 CSR로 격리해야 하는지, 문제가 생겼을 때 어떤 telemetry로 추적할지, 사용자가 이해할 수 있는 흐름으로 어떻게 구조화할지의 문제다.

연결된 생각

출처

클리핑 · linkedin.com