스프링 부트와 스프링 MVC의 이해

김우진·2026년 2월 17일

Spring

목록 보기
7/17
post-thumbnail

[Spring] 07. 스프링 부트와 스프링 MVC의 이해

스프링을 사용해 실제 웹 애플리케이션을 만들 때 가장 많이 접하게 되는 스프링 부트(Spring Boot)스프링 MVC의 핵심 원리를 정리했습니다.


1. 웹 애플리케이션의 구조

웹 앱은 크게 두 영역으로 나뉩니다.

  • 클라이언트 측 (Frontend): 사용자가 보는 화면 (브라우저 등).
  • 서버 측 (Backend): 데이터 처리 및 로직 실행.
    • 서블릿 컨테이너 (Servlet Container): 서블릿의 생명주기를 관리하는 그릇 (예: 톰캣).
    • 서블릿 (Servlet): 서버에서 실행되는 작은 자바 프로그램 (컴포넌트).

2. 스프링 부트(Spring Boot)의 마법

스프링 부트는 복잡한 설정을 자동화하여 개발자가 비즈니스 로직에만 집중하게 해줍니다.

  • 🚀 간소화된 프로젝트 생성: Spring Initializr를 통해 클릭 몇 번으로 기본 구조가 생성됩니다.
  • 📦 의존성 스타터 (Starters): spring-boot-starter-web처럼 기능별로 필요한 라이브러리들을 묶어서 제공합니다. 버전 호환성 고민을 끝내줍니다.
  • ⚙️ 자동 구성 (Auto-configuration): "구성보다 관례(Convention over Configuration)"를 따릅니다. 필요한 의존성이 추가되면 스프링이 알아서 설정을 잡아주고, 커스텀이 필요할 때만 설정을 변경하면 됩니다.

3. 스프링 MVC 아키텍처와 요청 흐름

스프링 MVC는 클라이언트의 요청을 받아 응답하기까지 체계적인 단계를 거칩니다. 개발자는 이 과정 중 컨트롤러(Controller)만 잘 구현하면 됩니다.

🔄 요청 처리 6단계

  1. 클라이언트: HTTP 요청을 보냄.
  2. 톰캣(Tomcat): 요청을 받아 디스패처 서블릿(Dispatcher Servlet)에 전달.
  3. 디스패처 서블릿: "누가 이 일을 처리할까?"를 찾기 위해 핸들러 매핑(Handler Mapping)에 위임.
    • @RequestMapping 등을 통해 매칭되는 컨트롤러 액션을 찾음.
  4. 컨트롤러(Controller): 로직을 실행한 후, 보여줄 뷰(HTML 페이지)의 이름을 반환.
  5. 뷰 리졸버(View Resolver): 컨트롤러가 준 이름에 맞는 실제 뷰 파일을 찾아 콘텐츠를 가져옴.
  6. 응답: 디스패처 서블릿이 렌더링된 뷰를 톰캣을 통해 HTTP 응답으로 반환.


4. 컨트롤러 구현 요약

웹 앱을 만들기 위해 개발자가 해야 할 일은 아주 간단합니다.

  1. 클래스에 @Controller 붙이기.
  2. @RequestMapping으로 어떤 URL 경로를 처리할지 연결하기.
  3. 화면에 보여줄 HTML 문서의 이름을 반환하기.

💡 결론: 복잡한 HTTP 요청-응답 흐름은 스프링 MVC가 다 알아서 해줍니다. 우리는 비즈니스 로직과 HTML 문서 연결만 신경 쓰면 됩니다!

#Spring #SpringBoot #SpringMVC #백엔드 #개발공부

0개의 댓글