-
스프링 MVC와 REST API!엘리스트랙 2024. 1. 7. 00:15728x90
MVC란?
model-view-controller로 소프트웨어 아키텍쳐 디자인 패턴의 한 종류이다. 사용자 인터페이스와 비즈니스 로직을 분리하고 각각을 독립적으로 유지해 유연하고 확장 가능한 코드가 생산 가능하다.
- Model (모델): 데이터와 데이터의 상태를 관리합니다. 모델은 데이터의 저장, 검색, 갱신 등과 같은 역할을 담당하며, 비즈니스 로직을 정의합니다.
- View (뷰): 사용자 인터페이스를 나타냅니다. 데이터의 시각적 표현이나 사용자에게 정보를 보여주는 부분을 담당합니다. 뷰는 모델의 상태를 표시하고, 사용자의 입력을 받아 컨트롤러로 전달합니다.
- Controller (컨트롤러): 사용자의 입력을 처리하고 그에 따라 모델과 뷰를 업데이트합니다. 컨트롤러는 모델과 뷰 간의 통신을 조정하며, 사용자의 액션에 따라 비즈니스 로직을 수행합니다.
Spring MVC의 동작 흐름
- 클라이언트의 요청:
- 클라이언트가 웹 브라우저 등을 통해 어떤 URL을 요청합니다.
- DispatcherServlet의 동작:
- 모든 요청은 DispatcherServlet이라 불리는 특별한 서블릿에 의해 처리됩니다.
- DispatcherServlet은 클라이언트의 요청을 받고, Handler Mapping에게 어떤 컨트롤러가 해당 요청을 처리할지 물어봅니다.
- Handler Mapping:
- Handler Mapping은 클라이언트의 요청과 어떤 컨트롤러가 처리할지를 결정합니다.
- 요청된 URL을 분석하여 어떤 컨트롤러 클래스와 메서드가 처리해야 하는지를 찾습니다.
- Controller의 실행:
- 선택된 컨트롤러의 메서드가 실행됩니다. 이 메서드는 비즈니스 로직을 수행하고, 데이터를 Model에 담거나 직접 응답을 생성합니다.
- Model과 View의 반환:
- 컨트롤러는 Model과 View 정보를 담은 ModelAndView 객체를 반환합니다.
- 또는 @ResponseBody 어노테이션 등을 통해 직접 데이터를 응답으로 보낼 수 있습니다.
- View Resolver의 동작:
- 반환된 View의 이름을 실제 뷰 객체로 변환하는 데 View Resolver가 사용됩니다.
- View Resolver는 뷰의 논리적인 이름과 물리적인 위치를 연결합니다.
- View의 렌더링:
- 선택된 뷰는 데이터를 이용하여 최종 HTML 또는 다른 형태의 응답을 생성합니다.
- 응답 전송:
- 생성된 응답이 클라이언트로 전송되어 화면에 표시됩니다.
REST API란?
REST(Representational State Transfer)는 네트워크 아키텍처 원리 중 하나로, 리소스를 표현하고 상태를 전송하기 위한 아키텍처 스타일입니다. RESTful API는 이러한 REST 원리를 따르는 API를 의미하며, REST API는 HTTP를 기반으로 한 웹 서비스의 한 형태입니다.
여기서 "API"는 Application Programming Interface로, 소프트웨어 간 상호 작용을 위한 인터페이스를 의미합니다. REST API는 웹 서비스 간에 데이터를 주고받을 수 있도록 설계된 API이며, 주로 웹 애플리케이션에서 사용됩니다.
REST API 주요 특징
- 자원 (Resource):
- REST에서는 모든 것을 리소스로 표현합니다. 리소스는 고유한 식별자(URI)를 가지며, 서버에 존재하는 데이터 또는 서비스 등을 나타냅니다.
- 표현 (Representation):
- 리소스의 상태는 하나 이상의 표현을 통해 나타내어집니다. 표현은 일반적으로 JSON 또는 XML 형식으로 데이터를 표현합니다.
- 상태 전이 (Stateless):
- 클라이언트의 각 요청은 서버에 저장된 상태를 변경하지 않고 필요한 정보를 포함하여 전송됩니다. 서버는 각 요청을 독립적으로 처리하며, 클라이언트의 상태를 저장하지 않습니다.
- 연결 (Uniform Interface):
- 일관된 인터페이스를 가짐으로써 클라이언트와 서버 간의 상호 작용을 단순화합니다. 이를 통해 서버와 클라이언트는 독립적으로 진화할 수 있습니다.
- HTTP 메서드 활용:
- RESTful API에서는 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스에 대한 행위를 정의합니다. 각 메서드는 특정한 의미를 가지며, 일반적으로 CRUD(Create, Read, Update, Delete) 작업을 표현합니다.
728x90'엘리스트랙' 카테고리의 다른 글
프로젝트의 기획과 ERD 작성! (0) 2024.01.10 스프링 프로젝트 빌드! (1) 2024.01.08 스프링 시작 복습! (0) 2023.12.31 자바 람다, 스트림 복습! (1) 2023.12.30 JS DOM, Event 복습! (1) 2023.12.27