HTTP와 MVC 패턴

김엄지·2024년 2월 25일
0

Spring

목록 보기
5/21

웹 서버란?

웹 서버는 HTTP를 이용하여 클라이언트의 요청을 응답해주는 통신을 하는 서비스 프로그램이다.

HTTP란?

HyperText Transfer Protocol로 데이터를 주고 받는 양식을 정의한 "통신 규약" 중 하나이다.

  • 브라우저를 통해 HTTP Request로 웹서버에 요청합니다.
  • 웹서버는 요청을 승인하고 HTTP Response를 통해 웹사이트 데이터를 브라우저에 전송합니다.
  • 브라우저는 서버에서 받은 데이터로 웹사이트를 그려내는 일을 합니다.

HTTP 호출/요청 방식 메서드

일반적으로 GET, POST 가 많이 사용되며, 이 외에도 DELTE, PATCH, HEAD 등이 있다.


MVC 디자인 패턴이란?

Model-View-Controller로 소프트웨어 디자인 패턴 중 하나이다.
Model, View, Controller로 구분하여 각각의 역할을 분리한다.

Model

  • 데이터와 비즈니스 로직을 담당한다.
  • DB와 연동하여 데이터를 저장하고 불러오는 작업을 수행한다.

View

  • 사용자 인터페이스를 담당한다.
  • 사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현한다.

Controller

  • Model과 View 사이의 상호작용을 조정하고 제어한다.
  • 사용자의 입력을 받아 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트한다.

소프트웨어를 구성하는 요소들을 분리함으로써 코드의 재사용성과 유지보수성을 높이고, 개발자들 간의 협업을 용이하게 하는게 주목적이다.

Spring MVC란?

Spring Web MVC는 Servlet API를 기반으로 구축된 웹 프레임워크이다.
즉 Spring에서 MVC 디자인 패턴을 적용하여 HTTP 요청을 효율적으로 처리하고 있다

  • Servlet (서블릿)은 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양이다.

Front Controller

Spring은 DispatcherServlet을 사용하여 Front Controller 패턴 방식으로 API 요청을 효율적으로 처리하고 있다. Front Controller 패턴의 동작과정은 다음과 같다.

  • API path 즉, URL을 Controller에 작성하는 방법
    • @Controller 애너테이션이 달려있는 클래스를 생성한 뒤 @GetMapping 처럼 요청한 HTTP Method 와 일치하는 애너테이션을 추가한 메서드를 구현한다.
    • URL은 @GetMapping("/api/hello") 이처럼 해당 애너테이션의 속성값으로 전달해주면 된다.

참고 자료
스파르타 코딩클럽 Spring Master 1주차
https://blog.naver.com/ksh44820/221707768338 HTTP 요청방식 정리

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글