HTML, HTTP API, CSR, SSR 개념 정리

조아·2025년 2월 18일
0

1. 웹에서 백엔드 개발자가 고민해야 할 3가지

백엔드 개발자는 다음 세 가지 방식으로 클라이언트에 데이터를 제공하는 방법을 고려해야 한다.
1. 정적 리소스 제공: HTML, CSS, JS, 이미지 등의 파일을 그대로 제공.
2. 동적 HTML 제공: WAS가 애플리케이션 로직을 수행한 후, 동적으로 HTML을 생성하여 반환.
3. HTTP API 제공: JSON 등의 데이터를 반환하여 클라이언트가 직접 렌더링을 수행.


2. 정적 리소스 제공

  • 요청이 들어오면 웹 서버(Nginx, Apache)가 미리 저장된 HTML, CSS, JS, 이미지, 영상 등의 정적 파일을 반환.
  • 예) GET /hello.html 요청 → hello.html 파일 반환.

3. 동적 HTML 제공 (서버 사이드 렌더링, SSR)

  • 웹 서버가 아니라 WAS(Web Application Server)가 처리
  • DB 조회 후 JSP, Thymeleaf 등의 템플릿 엔진을 사용하여 HTML을 동적으로 생성하여 반환.
  • 예) GET /orders 요청 → DB에서 주문 내역 조회 → HTML 생성 → 응답 반환.

4. HTTP API 제공

HTML이 아닌 데이터를 JSON, XML 등의 형식으로 반환하여 클라이언트가 직접 렌더링을 수행하는 방식.
주로 3가지 방식으로 활용됨.

1) 모바일 및 PC 애플리케이션을 위한 API 제공

  • 안드로이드, iOS, 데스크탑 애플리케이션 등에서 UI를 자체적으로 구현하므로, 백엔드는 데이터(JSON)만 반환.
  • 예) GET /orders 요청 → { "orderId": 100, "amount": 5000 } 응답.

2) 웹 클라이언트 (자바스크립트 기반 동적 UI)에서 사용

  • 웹 페이지에서 fetch, Ajax 등의 API를 사용하여 데이터를 비동기적으로 요청하고 화면을 동적으로 업데이트.
  • 예) React, Vue.js 등의 프레임워크에서 JSON 데이터를 받아 화면을 렌더링.

3) 서버 간 통신(Server-to-Server API)

  • 백엔드 서비스 간 데이터 교환.
  • 예) 주문 서버 → 결제 서버 요청 (POST /payments), 결제 서버가 결제 결과를 JSON으로 응답.

5. 서버 사이드 렌더링(SSR) vs 클라이언트 사이드 렌더링(CSR)

1) 서버 사이드 렌더링(SSR)

  • 서버에서 HTML을 완성하여 응답을 반환.
  • WAS에서 DB 조회 → HTML 생성 → 클라이언트에게 최종 HTML 반환.
  • 장점:
    • 초기 로딩 속도가 빠름.
    • 검색 엔진(SEO) 최적화가 용이.
  • 단점:
    • 전체 페이지를 새로고침해야 하므로 사용자 경험(UX)이 제한적.

사용 기술: JSP, Thymeleaf 등


2) 클라이언트 사이드 렌더링(CSR)

  • 서버에서 HTML을 제공하지만, 실제 화면(UI)은 자바스크립트가 동적으로 생성.
  • 웹 브라우저에서 React, Vue.js 등의 프레임워크를 사용하여 화면을 조작.
  • 동작 방식:
    1. 브라우저가 빈 HTML과 함께 app.js 등의 자바스크립트 파일을 다운로드.
    2. 자바스크립트가 HTTP API를 호출하여 데이터를 가져옴.
    3. 가져온 데이터로 HTML을 생성하여 화면을 렌더링.
  • 장점:
    • 화면 일부만 동적으로 변경 가능하여 UX 개선.
    • 앱처럼 부드러운 화면 전환 가능.
  • 단점:
    • 첫 로딩이 느림 (자바스크립트 다운로드 및 실행 필요).
    • 검색 엔진 최적화(SEO)가 어려움.

사용 기술: React, Vue.js


6. 백엔드 개발자가 알아야 할 범위

1) 서버 사이드 렌더링(SSR) 기술 필수 학습

  • 백엔드 개발자는 기본적으로 서버 사이드 렌더링 기술(JSP, Thymeleaf)을 학습해야 함.
  • 간단한 웹 서비스, 관리자(Admin) 페이지 등을 개발할 때 활용 가능.
  • 학습 난이도가 낮고, 몇 일 정도만 학습해도 쉽게 적용 가능.

2) 클라이언트 사이드 렌더링(CSR) 기술은 선택 사항

  • React, Vue.js 등은 웹 프론트엔드 개발자의 영역이므로 필수 학습 대상은 아님.
  • 다만, 웹 프론트엔드 기술을 이해하면 협업이 용이하고, 복잡한 UI를 다룰 때 유용.
  • 풀스택 개발자가 되려면 학습이 필요하지만, 백엔드에 집중하는 것이 더 현실적.
profile
프론트엔드 개발자

0개의 댓글