Spring/MVC

[웹 애플리케이션 이해] - HTML, HTTP API, CSR, SSR

JWonK 2022. 7. 3. 17:38
728x90
반응형

백엔드를 공부할 때 꼭 알아야하는 지식들이다.

 

1. 정적 리소스

  • 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공
  • 주로 웹 브라우저

웹 서버에서 이미 생성되어있는 리소스 파일을 웹 브라우저에게 전달하는 방식이다.

 

 

 

 

2. HTML 페이지

  • 동적으로 필요한 HTML 파일을 생성해서 전달
  • 웹 브라우저 : HTML 해석

WAS에서 DB를 조회한 후 동적으로 HTML을 생성한다. HTML을 생성할 때는 JSP, 타임리프를 이용한 후 생성된 HTML을 웹 브라우저에게 제공한다.

 

 

 

 

 

 

3. HTTP API

  • HTML이 아니라 데이터를 전달
  • 주로 JSON 형식 사용
  • 다양한 시스템에서 호출

WAS에서 DB를 조회한 후 HTML을 생성하는 것이 아닌 조회한 데이터를 바로 웹 브라우저에게 정해진 형식으로 전달한다.

 

  • 데이터만 주고 받는다. UI 화면이 필요하면, 클라이언트가 별도로 처리한다.
  • 앱, 웹 클라이언트, 서버 to 서버

 

 

위 3가지 방식으로 웹 브라우저에게 전달하는 경우가 대부분이므로 꼭 알아야하는 방식이다.

 

 


서버사이드 렌더링, 클라이언트 사이드 렌더링

  • SSR - 서버 사이드 렌더링
    • HTML 최종 결과를 서버에서 만들어서 웹 브라우저에 전달
    • 주로 정적인 화면에 사용
    • 관련 기술 : JSP, 타임리프 ---> 백엔드 개발자
  • CSR - 클라이언트 사이드 렌더링
    • HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 사용
    • 주로 동적인 화면에 사용, 웹 환경을 마치 앱처럼 필요한 부분 부분 변경할 수 있음
    • ex) 구글 지도, Gmail, 구글 캘린더
    • 관련 기술 : React, Vue.js ---> 프론트엔드 개발자
  • 참고
    • React, Vue.js를 CSR + SSR 동시에 지원하는 웹 프레임워크도 있음
    • SSR을 사용하더라도, 자바스크립트를 사용해서 화면 일부를 동적으로 변경 가능

 

 

 

 

SSR - 서버 사이드 렌더링

서버에서 최종 HTML을 생성해서 클라이언트에 전달

서버 사이드 렌더링

 

 

 

 

CSR - 클라이언트 사이드 렌더링

클라이언트 사이드 렌더링

 

 

 


 

학습 방향

백엔드 개발자 입장에서 UI 기술

  • 백엔드 - 서버 사이드 렌더링 기술
    • JSP, 타임리프
    • 화면이 정적이고, 복잡하지 않을 때 사용
    • 백엔드 개발자는 서버 사이드 렌더링 기술 학습 필수 !
  • 프론트엔드 - 클라이언트 사이드 렌더링 기술
    • React, Vue.js
    • 복잡하고 동적인 UI 사용
    • 프론트엔드 개발자의 전문 분야
  • 선택과 집중
    • 백엔드 개발자의 웹 프론트엔드 기술 학습은 옵션
    • 백엔드 개발자는 우선적으로 서버, DB, 인프라 등 기본적인 백엔드 기술을 학습해야한다.

 

 

더보기

참고 : <인프런> 김영한 : MVC 패턴(1) - 웹 애플리케이션 이해

728x90
반응형