inblog logo
|
Gyeongwon's blog
    Springboot

    [스프링부트 #3] 스프링 MVC와 HTTP 요청/응답 정리

    HTTP 통신의 기본기와 스프링 MVC 흐름에 대해서 정리하였습니다.
    도경원's avatar
    도경원
    Aug 04, 2025
    [스프링부트 #3] 스프링 MVC와 HTTP 요청/응답 정리
    Contents
    1. HTTP 메서드별 요청/응답 방식2. 서블릿과 스프링의 관계3. HTTP 통신의 3대 구성 요소4. DispatcherServlet의 역할5. 스프링의 3계층 구조6. 통신 흐름 요약8. SSR (Server Side Rendering)

    1. HTTP 메서드별 요청/응답 방식

    GET 요청
    • 역할: 리소스를 조회(SELECT)
    • 요청 특성: Body 없음, URL + Header만 포함
    • 응답: 조회된 데이터를 Body에 담아 응답
    POST 요청
    • 역할: 리소스를 생성(INSERT)
    • 요청 특성: Body에 JSON 또는 Form 데이터 포함
    • 응답: 로그인 완료와 같은 응답 오거나 302 리다이렉션
    PUT 요청
    • 역할: 리소스를 전체 수정(UPDATE)
    • 요청 특성: 일반적으로 Body를 담아 전체 데이터를 전달
    DELETE 요청
    • 역할: 리소스를 삭제(DELETE)
    • 요청 특성: 대부분 URL에 식별자를 포함, Body는 없음

    2. 서블릿과 스프링의 관계

    Servlet
    • 자바로 HTTP 요청과 응답을 처리하는 기본 객체
    • 스프링은 이 Servlet을 기반으로 작동하면서 편의성과 구조를 더해줌
    Spring이 중요한 이유
    • 개발자가 직접 서블릿 코드를 작성하지 않아도 됨
    • 어노테이션 기반으로 선언만 하면 스프링이 객체 생성 및 주입(DI)을 해줌
    • 그래서 어노테이션 학습이 필수

    3. HTTP 통신의 3대 구성 요소

    프로세스와 프로세스가 대화하는 규칙 3가지
    • URL → 어디에 요청할 것인지
    • Body → 어떤 데이터를 보낼 것인지 (POST, PUT)
    • Query String → 검색 조건 등 (SQL의 WHERE절과 유사)

    4. DispatcherServlet의 역할

    ❓
    디스패처 서블릿이란 ?
    spring MVC 프레임워크에서 모든 클라이언트 요청을 처리하는 프론트 컨트롤러 역할을 하는 서블릿
    DispatcherServlet(디스패처 서블릿)
    • 요청 URL을 분석하여 어떤 컨트롤러를 호출할지 결정
    • 필요한 객체를 주입한 뒤 컨트롤러 메서드를 호출 (invoke)
    DispatcherServlet이 인식하는 어노테이션
    • @Controller: Controller 클래스로 인식함

    5. 스프링의 3계층 구조

    Controller
    • 요청을 받고 응답을 반환
    • 파라미터를 받아 서비스에 전달하고 결과를 받아 클라이언트에 응답
    Service
    • 비즈니스 로직 처리 담당 (예: 회원가입, 로그인, 결제 등)
    Repository
    • DB와 직접 통신
    • SQL 또는 JPA로 쿼리 실행 및 결과 반환
    Repository가 중요한 이유
    • DB와 대화하려면 SQL 또는 ORM 문법을 이해해야 함

    6. 통신 흐름 요약

    • 클라이언트 ↔ 톰캣 ↔ 스프링 계층 ↔ DB
    • 톰캣은 요청을 받고 DispatcherServlet이 컨트롤러에 전달
    • 리포지토리는 DB와 통신
    • 전체 흐름은 요청 → 비즈니스 처리 → DB → 응답

    8. SSR (Server Side Rendering)

    • 서버에서 HTML 페이지를 렌더링해서 클라이언트에 전달
    • 프론트엔드에서 화면을 만들지 않고, 백엔드에서 화면을 만들어 전달
    • JSP, Thymeleaf 등이 대표적인 SSR 템플릿 엔진
     
    Share article
    Contents
    1. HTTP 메서드별 요청/응답 방식2. 서블릿과 스프링의 관계3. HTTP 통신의 3대 구성 요소4. DispatcherServlet의 역할5. 스프링의 3계층 구조6. 통신 흐름 요약8. SSR (Server Side Rendering)

    Gyeongwon's blog

    RSS·Powered by Inblog