
단일 페이지 애플리케이션으로, 서버에서 필요한 데이터만 비동기로 받아와서 동적으로 현재 화면에 다시 렌더링 하는 방식을 의미합니다. (필요한 부분만 동적으로 변경)
한 개(Single)의 Page로 구성된 Application
초기의 SPA는 AJAX(비동기적 정보 교환 기법) 통신을 활용하여 데이터를 동적으로 바인딩 하는 방식이었습니다. 하지만 모든 과정을 순수한 AJAX로 구현하기에는 비용이 많이 들어, 이를 도와주는 React, Vue, Angular와 같은 프레임워크가 대두되었습니다.
TTV (Time To View) : 사용자가 어플리케이션 화면을 보기까지 걸리는 시간
TTI (Time To Interact) : 사용자가 어플리케이션 화면과 상호작용 할 수 있기까지 걸리는 시간
SPA의 장점
SPA의 단점

여러개의 페이지로 이루어진 어플리케이션. 새로운 페이지를 요청할 때 마다 서버에서 렌더링 된 정적 리소스를 전달합니다.
다른 페이지로 이동시 또는 새로 고침 될 시, 서버에서 페이지를 다시 렌더링 해야합니다.
MPA의 장점
MPA의 단점
클라이언트(브라우저)가 렌더링을 맡아서 하는 방식
서버에서 받은 데이터를 브라우저가 화면에 그립니다.

1. 유저가 웹사이트에 방문하면, 브라우저가 서버에 콘텐츠를 요청
2. 서버는 빈 뼈대만 있는 HTML을 응답
3. 브라우저가 연결된 JavaScript 링크를 통해 서버로부터 JavaScript 파일을 다운로드
4. 동적으로 페이지를 만들어 브라우저에 띄움

CSR의 특징
서버에서 렌더링을 하여 화면을 보여주는 방식
서버로부터 완전하게 만들어진 HTML 파일을 받아와 화면을 그립니다.

1. 유저가 웹사이트에 방문하면, 브라우저가 서버에 컨텐츠를 요청
2. 서버는 페이지에 필요한 데이터를 얻어와 모두 삽입하고, CSS 까지 모두 적용해 렌더링 준비를 마친
HTML과 JavaScript코드를 브라우저에게 응답
3. 브라우저는 JavaScript 코드를 다운로드하고, HTML과 JavaScript로직을 연결

SSR의 특징
SPA VS MPA 애플리케이션 구동을 위해 페이지를 하나만 쓰는지 여러 개를 쓰는지에 대한 차이 !
CSR VS SSR 페이지의 렌더링이 클라이언트에서 일어나는 지 서버에서 일어나는지에 대한 차이 !
⇒ 사용자 경험이 우선 시 될 경우에는 SPA, 초기 로딩 속도와 SEO가 중요한 경우에는 SSR
💡Nextjs의 경우, 첫 로딩의 경우에만 SSR을 사용하고, 이후의 요청에 대해서는 CSR 방식을 사용할 수 있습니다.
🔑 기업의 입장에서는 페이지를 검색엔진에 띄어 수익창출을 해야하므로 SEO가 최적화된 MPA(SSR), 사용자 경험을 향상시킨 SPA(CSR)을 조합하여 사용할 수 있습니다. ⇒ 하이브리드 애플리케이션
Single Page Application으로,
서버에서 필요한 데이터만 비동기로 받아와서 동적으로 현재 화면에 다시 렌더링 하는 방식을 의미합니다. 페이지 전환을 할 때도 깜빡임 없이 부드럽게 넘어가 사용자 경험을 올려주는 장점이 있습니다.
Server Side Rendering으로, 서버에서 렌더링하여 화면을 보여주는 방식입니다. 서버로부터 완전하게 만들어진 HTML 파일을 받아와 화면을 그리기 때문에 첫 화면 로딩 속도가 빠르고, SEO에 유리하다는 장점이 있습니다.
https://dev-ellachoi.tistory.com/28