# HTML, HTTP API, CSR, SSR

백엔드 개발자는 다음과 같은 3가지 경우에 대해 어떻게 처리할 지 생각해봐야한다!

1. 정적리소스 : 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공
2. 동적 HTML : 동적으로 HTML 생성해서 전달(JSP, **타임리프**)
3. HTTP API\
   \- HTML이 아니라 데이터를 전달\
   \- 주로 JSON 형식 사용\
   \- **다양한 시스템에서 호출**\
   **-** 데이터만 주고 받기 때문에 UI 화면이 필요하면, 클라이언트가 별도 처리

![](https://4059345879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MdtAbfiAnzkPUNovpHX%2F-MdtZa9o5ySjAR8W5kXc%2F-MdtZiP8lSplIVE5_MLO%2FScreen%20Shot%202021-07-06%20at%2011.08.06%20AM.png?alt=media\&token=1bc7893f-c19a-45e0-b38f-960c077d1a9e)

* UI 클라이언트 접점\
  앱 클라이언트(아이폰, 안드로이드, PC 앱)\
  웹 브라우저에서 자바스크립트를 통한 HTTP API 호출\
  React, Vue.js 같은 웹 클라이언트
* 서버 to 서버\
  주문 서버 -> 결제 서버\
  기업 간 데이터 통신

SSR - 서버 사이드 렌더링(백엔드 개발자)

* HTML 최종 결과를 서버에서 만들어서 웹 브라우저에 전달
* 주로 정적인 화면에 사용
* 관련기술: JSP, 타임리프
* SSR을 사용하더라도, 자바스크립트를 사용해서 화면 일부를 동적으로 변경 가능

CSR - 클라이언트 사이드 렌더링(웹 프론트엔드 개발자)

* HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용
* 주로 동적인 화면에 사용, 웹 환경을 마치 앱 처럼 필요한 부분부분 변경할 수 있음
* 관련기술: React, Vue.js
* ex) 구글 지도, Gmail, 구글 캘린더&#x20;
* React, Vue.js를 CSR + SSR 동시에 지원하는 웹 프레임워크도 있음
