장점

  • 사용자 친화적 (빠른 반응성, 화면전환 에니메이션 등 ) : client rendering, router
  • 상대적으로 적은 전체 트래픽 양 (Ajax, 캐쉬)
  • 필요한 부분만 새로 그리고 필요한 데이터만 새로 받는다.
  • 상대적으로 유지보수가 쉽고 개발속도가 빠르다. (모듈화, 컴포넌트화)
  • 프론트앤드와 백앤드의 분리로 인한 개발업무 분업화 및 협업이 쉽다.

단점

  • 초기구동속도 => Lazy Loading으로 해결, 브라우저 캐쉬
  • 검색엔진 최적화(SEO) => SSR로 해결
  • 보안 => 핵심로직 최소화, 백앤드 화이팅
  • 레거시 브라우저 지원(IE8 이하 지원) => 닶 없음
  • 하얀 화면(개발자 버그) : Error Boundaries

결론

  • SPA 자체를 먼저보지 말고 현재 하려는 서비스의 특성을 먼저 보라. 지금 개발하려는 애플리케이션이 SPA의 사상과 일치하는지 말이다.
  • SPA는 한가지 설계 선택지가 될뿐 모든 설계에 답이 될순 없다.

..

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store