본문으로 바로가기

RestAPI 전환

category Spring boot 2024. 11. 6. 12:39

 

REST API와 웹 MVC의 차이점

 

  • 기존 웹 MVC
    • 웹 애플리케이션에서 서버는 클라이언트(브라우저)에 HTML을 렌더링하여 응답합니다. 이때 주로 머스태치(Mustache), JSP와 같은 템플릿 엔진을 사용했습니다.
    • MVC(Model-View-Controller)는 애플리케이션의 구조를 나누는 디자인 패턴입니다. 주로 웹 애플리케이션에서 사용자 인터페이스와 비즈니스 로직을 분리하기 위해 사용됩니다.
    • Model: 애플리케이션의 데이터나 상태를 나타내며, 데이터베이스와의 상호작용을 처리합니다.
    • View: 사용자에게 보여지는 UI 요소를 나타내며, 사용자 인터페이스를 생성합니다.
    • Controller: 사용자의 요청을 처리하고, Model과 View를 연결하는 역할을 합니다. 사용자의 입력을 처리하고, 필요한 데이터를 가져와서 View에 전달합니다.
  • REST API로 전환
    • REST API는 서버가 데이터를 JSON 형식으로 응답하고, 클라이언트(React, Vue.js, 모바일 앱 등)가 해당 데이터를 받아 UI를 구성하는 방식입니다.
    • 서버는 순수한 데이터를 제공하는 역할만 수행하고, 클라이언트는 UI를 처리하는 역할을 담당합니다.
    • REST(Representational State Transfer)는 웹 아키텍처 스타일로, 웹 서비스를 설계하는 데 사용됩니다.
    • REST API는 HTTP 프로토콜을 기반으로 하는 클라이언트-서버 아키텍처에서 데이터를 주고받는 방법을 정의합니다.
    • REST는 상태를 저장하지 않으며, 각 요청은 독립적입니다. 즉, 클라이언트에서 보내는 요청은 이전의 요청과 관계없이 독립적으로 처리됩니다.
    • 리소스(예: 사용자, 상품, 주문 등)에 대한 CRUD (Create, Read, Update, Delete) 작업을 HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 수행합니다.

왜 하는 걸까?

  • 더 많은 클라이언트(웹, 모바일, 데스크탑 등)와 통신할 수 있기 때문에, 데이터와 UI를 분리하여 더 유연한 시스템을 만들 수 있습니다.

특징REST API웹 MVC

특징 REST API 웹 MVC
목적 클라이언트와 서버 간의 데이터 전송 및 상호작용에 초점 사용자 인터페이스(UI)와 비즈니스 로직을 분리하고, 요청에 대한 응답을 처리
프로토콜 HTTP (또는 HTTPS) 프로토콜을 사용 주로 HTTP 프로토콜을 사용
데이터 처리 방식 HTTP 메서드를 통해 리소스에 대한 CRUD 작업 (예: GET, POST, PUT, DELETE) HTTP 요청을 처리하고, 사용자가 요청한 페이지를 렌더링 (주로 HTML을 반환)
응답 형식 일반적으로 JSON 또는 XML 형식으로 데이터를 반환 HTML, JSON, XML 등의 응답을 반환 (웹 페이지 렌더링)
상태 관리 무상태 (Stateless): 각 요청은 독립적으로 처리됨 상태 유지 (Stateful): 사용자의 상태를 세션을 통해 관리
URL 구조 리소스 기반 URL 구조 (예: /users, /products) URL은 주로 페이지나 액션을 나타냄 (예: /home, /products/view)
클라이언트-서버 클라이언트와 서버는 독립적으로 동작하며, 서버는 데이터와 상태만 관리 클라이언트와 서버가 페이지 렌더링과 비즈니스 로직을 함께 처리
클라이언트 역할 클라이언트는 서버에서 제공하는 데이터를 가져와서 표시 클라이언트는 주로 HTML을 요청하고, 서버는 이를 렌더링하여 반환
응답 처리 서버는 주로 데이터만 반환하고, 클라이언트가 UI를 렌더링 서버가 요청을 처리하고, 전체 HTML 페이지를 렌더링하여 클라이언트에 반환
사용 예시 모바일 앱, AJAX 기반 웹 애플리케이션, 마이크로서비스 전통적인 서버-클라이언트 웹 애플리케이션 (예: Spring, Django, Rails)