백엔드 개발자가 서비스를 제공할 때 고려해야할 요소
1. 정적 리소스를 어떻게 제공할 것인지?
2. 동적 HTML 페이지를 어떻게 제공할 것인지?
3. HTTP API 어떻게 제공할 것인지?
서버사이드 렌더링, 클라이언트 사이드 렌더링
1) SSR - Server Side Rendering
- HTML 최종 결과를 서버에서 만들어 웹 브라우저에 전달
즉, 동적으로 생성된 최종 결과물이 서버에서 다 생성되고, 웹브라우저는 다 생성된것을 보여주기만 한다.
- 주로 정적인 화면에 사용
- JSP, 타임리프 -> 백엔드 개발자
2) CSR - Client Side Rendering
- HTML 결과를 자바스크립트를 사용해 웹 브라우저에 동적으로 생성해 적용
- 주로 동적인 화면에서 사용
- 웹 환경을 마치 앱처럼 필요한 부분부분 변경 가능
- ex. 구글 지도, Gmail, Google Calender
- React, Vue.js -> 웹 프론트엔드 개발자
* 참고
- React , Vue.js 를 CSR + SSR 동시에 지원하는 웹 프레임워크도 있음
- SSR 을 사용하더라도, 자바스크립트를 사용해서 화면 일부 동적으로 변경 가능
그렇다면 백엔드 개발자 입장에서는 어디까지 알아야 하는가?
1. 백엔드 - SSR
- JSP , Thymeleaf
- 화면 정적이고, 복잡하지 않을 때 사용
- 백엔드 개발자는 SSR 기술 학습 필수
2. 선택과 집중
- 백엔드 개발자는 CSR 의 기술 학습은 옵션
- 서버, DB, Infra 등 수많은 백엔드 기술 공부해야함