SPA(Single Page Application)

작동방식

  1. 초기로드
    • 사용자가 애플리케이션을 처음 방문 시, 서버에서 하나의 HTML 페이지를 클라이언트로 전송한다.
    • 이 초기 HTML 페이지는 최소한의 구조만을 가지며, 실제 콘텐츠는 클라이언트 측 자바스크립트가 로드 된 후 동적으로 렌더링 된다.
  2. 클라이언트 측 렌더링
    • 초기 로드 된 자바스크립트는 어플리케이션의 루트 컴포넌트를 렌더링하고, 애플리케이션의 상태와 라우팅을 관리한다.
  3. 라우팅
    • 클라이언트 측 라우팅 라이브러리를 사용하여 URL 변화를 감지하고 이에 따라 적절한 컴포넌트를 렌더링한다.
    • 사용자가 링크를 클릭하거나 브라우저의 뒤로/앞으로가기 버튼을 누르면 전체 페이지를 새로 로드하지 않고, 필요한 부분만 업데이트한다.
  4. 데이터 페칭
    • 어플리케이션이 초기화되면, 필요한 데이터를 API 요청을 통해 가져온ㄷ다.

장단점

  1. 번들크기가 커짐
  2. 워터폴
    • 모든 data-fetching 코드가 클라이언트에 있음
    • 추가로 코드 분할, 지연로딩까지 추가
  3. 런타임 성능
  4. 상태관리
    • 이전에는 MPA (Multi-Page Application)가 DOM 에 상태를 렌더링하고 이를 참조/변경함 (템플릿 엔진 등으로)
    • 이제는 JSON으로 데이터도 받고 클라이언트 사이드 메모리 내의 상태도 최신으로 유지해야함