URL을 검색창에 입력하면 렌더링을 위해 서버로부터 HTML, CSS, Javascript 파일을 다운로드 받아 화면에 표출한다.
렌더링을 하는 방식은 크게 2가지가 있다.
SSR은 Server Side Rendering의 약자로, 말 그대로 서버에서 렌더링을 준비해서 클라이언트(사용자)에게 보여주는 것이다.
SSR의 장단점
- 장점 : 네트워크가 느릴 때, 처음 화면에 렌더링 되는 것이 빠르다. HTML에 페이지에 대한 정보가 있기 때문에 검색엔진최적화(SEO)에 좋다.
- 단점 : 페이지 이동 시 매번 서버에 페이지를 요청하여 서버에 부하가 간다. 또한, 새로고침 되기 때문에 사용자 입장에서 좋지 않다.
CSR은 Client Side Rendering의 약자로, 클라이언트에서 렌더링을 하는 것이다.
CSR의 장단점
- 장점 : 네트워크가 빠를 때 유용하며 서버에 필요한 부분만 요청하므로 부하가 적다. 페이지 이동 시 매번 새로고침이 필요가 없고 바뀐 부분만 다시 렌더링 된다.
- 단점 : 페이지 콘텐츠가 Javascript를 사용하여 동적으로 생성되기 때문에 Javascript 실행에 의존적이다. SEO의 크롤러는 시맨틱HTML을 긁어가기 때문에 SEO에 좋지 못하다. (단, 최근 구글의 검색엔진은 자바스크립트V8엔진이기 때문에 Javascript도 크롤링할 수 있다고 한다.)
SSR, CSR 방식과 함께 대두되는 페이지 표현 방식으로 SPA와 MPA가 있다.
SPA
Single Page Application의 약자로, 한 개의 Page로 구성된 어플리케이션을 말한다.
보통 CSR 방식으로 렌더링 되는데, 그렇다고 무조건 CSR방식 = SPA라고 볼 수는 없다.
처음 단 한 번만 리소스들(HTML, CSS, Javascript)를 로딩하고 이후부터는 바뀐 부분이나 필요한 부분에 한해서만 서버에 요청한다.
결국, 한 번만 리소스를 요청하고 기존의 것을 토대로 바뀐 부분만 수정하는 형태이다.
SPA의 장단점
- 장점 : 바뀐 부분만 리렌더링 되기 때문에 새로고침이 필요 없어 사용자 경험이 좋다. 서버에 부하가 덜하다.
- 단점 : 초기 로딩 속도가 느리다. 검색엔진최적화가 어렵다.
MPA
Multiple Page Application 여러 개의 Page로 구성된 어플리케이션을 말한다.
한 페이지마다 해당 페이지를 위한 HTML, CSS, Javascript가 별도로 존재한다.
한 번 요청 했을 때, 하나의 페이지에 관한 리소스를 다운로드 받아서 화면에 보여준다.
SPA의 장단점
- 장점 : 초기 로딩 속도가 빠르다. 완성된 HTML파일을 서버로부터 받기 때문에 SEO에 유리하다.
- 단점 : 페이지 이동 시 새로고침하기 때문에 사용자 경험에서 유리하지 못하다. 서버 부하가 올 수 있다.