React SPA
SPA의 등장 배경
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/56f9217c-1a43-4fe0-8fa6-fe79e21f140f/Untitled.png)
- 전통적인 웹사이트에서는 사용자가 웹사이트 내의 다른 페이지로 이동하면, 브라우저가 페이지를 보여주기 위해 매번 HTML 파일로 된 “페이지 전체”를 불러와야만 했습니다.
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bc06bd77-8856-42f1-9c2f-7a1fe83b4570/Untitled.png)
- 위에 그림은 동일한 페이지 전환을 보여주고 있습니다. 전통적인 웹사이트는 페이지 전체를 로딩하고, SPA는 Menu와 Footer와 같이 페이지 전환 전후에 중복되는 부분은 새로 불러오지 않습니다.
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d037490b-d4a6-421a-b0c0-7608672fea5d/Untitled.png)
- 웹사이트가 보다 복잡해지고 애플리케이션의 형태를 가지게 되면서, 사용자와 서비스 사이에 더욱 많은 상호작용이 일어나게 되었습니다. 하지만 이때마다 Header나 Navigation Bar 등과 같이 중복되는 요소들을 매번 불러오는 것이 서버와의 불필요한 트래픽을 발생시켰습니다.
- 한편, 사용자 입장에서는 매번 모든 페이지를 불러옴에 따라 더 느린 반응성을 갖게 되었고, 이는 애플리케이션과 같은 사용자 경험을 제공하기 어렵게 만들었습니다.
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/599585d7-c934-4158-b316-cab1fc62dc12/Untitled.png)
- 1990년대 후반에 HTML 문서 전체가 아닌, 업데이트에 필요한 데이터만 서버에서 전달받아 이 데이터를 JavaScript가 동적으로 HTML 요소를 생성해서 화면에 보여주는 방식이 개발되어 사용되기 시작하였습니다.
2000년대 중반부터 이러한 개발 방식을 이용한 웹 애플리케이션이 보편화되었으며, 이것이 우리가 지금 배우고 있는 싱글 페이지 애플리케이션, 즉 SPA입니다.
- SPA는 서버로부터 완전히 새로운 페이지를 불러오는 것이 아니라, 화면을 업데이트하기 위해 필요한 데이터만 서버에서 전달받아 브라우저에서 해당하는 부분만 업데이트하는 방식으로 작동하는 웹 애플리케이션이나 웹 사이트를 말합니다.
SPA의 장점
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b4c2086b-fee7-4718-8cc5-688a1be84cc8/Untitled.png)