SPA를 뷰 트렌젝션 등으로 대체할 수 없는건 님이 제시하신 사례 중에서는 실시간 협업툴 밖에 없는데 대다수의 웹사이트는 실시간 협업툴이 아닙니다. 마케팅 사이트, 대시보드, 커머스 앱 모두 SPA 프레임워크를 배제하고 서버 렌더링, 실 페이지, CSS 기반 애니메이션, 의도적 사전 로딩, 최소한의 JS 도입이라는 조건을 지키면서 구축하는게 가능합니다. 이를 지향하는 레일즈 진영의 핫 와이어드도 있고 이건 basecamp와 hey라는 프로덕션 사례도 있습니다. 상태 관리? 실시간 협업툴 같은게 아닌 이상 URL 파라미터, 서버 세션 같은 서버 단의 방법이나 로컬 스토리지로 충분히 가능합니다. 페이지 전환 보고 SPA 도입하는 사례도 분명히 있고(AGF 공홈 같이 아스트로라도 충분한데 리액트 도입한 사례 분명히 있어요) SPA의 대표적인 이점으로 많이 거론되는 것이 페이지 전환이라는 것은 부정할 수 없어요.
해당 글의 아쉬운 점
SPA의 진짜 목적을 축소해서 해석
View Transitions API는 정말 멋지지만, 그것만으로 SPA가 필요 없는 건 아니다.
모든 웹사이트를 동일한 기준으로 본다
마케팅 사이트 ≠ 대시보드 ≠ 커머스 앱 ≠ 실시간 협업툴
모두 다른 구조적 요구를 가진다.
실전에서는 SPA + SSR + MPA가 공존 중
Next.js 같은 하이브리드 프레임워크가 이를 잘 보여주고 있다.
정적 자산은 SSG, 로그인 후 대시는 CSR/SPA, 검색엔진 대응은 SSR 등 유연한 조합이 필요하다.
SPA는 유저 경험뿐 아니라 구조 개선의 산물에 가깝다고 생각합니다.
SPA가 불필요한 페이지에는 MPA + 모던 CSS가 좋은 선택일 수 있겠지만, SPA는 구조, 상태, 확장성, 유지보수 측면에서 여전히 필수적입니다. 모던 CSS는 SPA를 “보완”할 수는 있어도 “대체”할 수는 없다고 생각합니다.