inblog logo
|
Gyeongwon's blog
    Springboot

    [스프링부트 #19] SSR에서 REST API로(모든 프론트엔드를 아우르는 백엔드 설계)

    도경원's avatar
    도경원
    Aug 25, 2025
    [스프링부트 #19] SSR에서 REST API로(모든 프론트엔드를 아우르는 백엔드 설계)
    Contents
    1. 브라우저 중심의 SSR(Server-Side Rendering)2. 프론트엔드 환경의 변화3. React와 같은 SPA의 등장4. REST API의 목적

    1. 브라우저 중심의 SSR(Server-Side Rendering)

    • 브라우저가 클라이언트일 때, 서버는 HTML을 생성해 보내는 SSR 방식을 사용한다.
    • 이때 서버 구조는 Controller 패키지와 Domain 패키지를 나누어 설계했다.
    • Controller는 브라우저 요청에 맞춰 HTML을 내려주기 때문에, 보통 web 패키지로 명명
      • → 이유: 브라우저 전용 로직이기 때문이다.

    2. 프론트엔드 환경의 변화

    • 예전에는 주요 프론트 클라이언트가 브라우저였지만, 지금은 훨씬 다양해졌다.
      • 키오스크
      • 자동차 LCD
      • 스마트폰/태블릿
      • 스마트워치
      • 스마트 미러 등
    • 이런 환경에서는 브라우저 전용 Controller(web 패키지)만으로 한계가 있다.
    • 따라서 app, device 등 다양한 프론트엔드 유형에 맞춘 패키지 구성이 필요해진다. (원래는 web (controller))

    3. React와 같은 SPA의 등장

    • React 같은 프론트엔드 프레임워크가 등장하며, 브라우저에서도 HTML을 서버에서 만드는 대신 JavaScript로 화면을 그리게 된다.
    • 이로 인해 서버는 HTML 대신 데이터(JSON)만 제공한다.
    • 결과적으로 서버 역할이 JSON API 제공으로 단순화했고, 이를 REST API라고 부른다.

    4. REST API의 목적

    • 직접적인 목적: JSON 데이터 제공 (Object → 문자열 변환 → 전송)이다.
    • 궁극적인 목적: 모든 프론트 디바이스(브라우저, 앱, IoT, 차량 등)에 대응 가능한 리소스 서버가 되는 것이다.
    • JSON은 전 세계의 통신 공용어와 같은 역할을 하며, 언어/플랫폼 간 호환성을 제공한다. 즉, 오브젝트를 문자열로 바꿔서 통신하기 위해서이다. 통신을 위한 중간데이터라고 보면된다.
    정리하자면,
    과거는 브라우저 중심 → SSR, HTML 제공
    현재는 디바이스 다양화 + SPA 프레임워크 → REST API, JSON 제공
     
    Share article
    Contents
    1. 브라우저 중심의 SSR(Server-Side Rendering)2. 프론트엔드 환경의 변화3. React와 같은 SPA의 등장4. REST API의 목적

    Gyeongwon's blog

    RSS·Powered by Inblog