본문 바로가기
개발/Spring

Spring Boot vs. Spring MVC: 엄마가 아이에게 들려주는 이야기

by 쓸있쏜 2025. 2. 10.

"엄마! Spring Boot랑 Spring MVC가 뭐야?"

"오호~ 우리 똑똑한 아들이 벌써 이런 걸 궁금해하네? 좋아, 엄마가 아주 쉽게 설명해 줄게!"

옛날 옛적에...

옛날 옛적에 웹 개발자들이 웹 애플리케이션을 만들려면 Spring MVC라는 멋진 도구를 사용했어. 이건 웹 개발을 편하게 만들어 주는 도구였지. 하지만 한 가지 문제가 있었어. 개발을 시작할 때 필요한 설정이 엄청 많았단다.

마치 요리를 할 때, 불도 켜야 하고, 냄비도 올려야 하고, 물도 끓이고, 재료도 다듬고, 양념도 준비하고… 하! 이거 너무 힘들어 보이지? 😵

그러던 어느 날, Spring Boot라는 슈퍼 히어로가 등장했어! 이 친구는 개발자들이 설정 지옥에서 탈출할 수 있도록 도와주는 구원자였어.


Spring MVC: 전통적인 요리 방식

Spring MVC는 웹 애플리케이션을 만들기 위한 아주 강력한 프레임워크야. 근데 이 친구는 꽤나 깐깐해.

예를 들어, 넌 한식당을 차리고 싶어. 그럼?

  1. 가게를 구해야 하고,
  2. 주방을 세팅해야 하고,
  3. 냉장고도 사야 하고,
  4. 불도 켜야 하고,
  5. 요리할 도구도 다 구비해야 해.

그리고 메뉴판도 만들어야지?

  • 국밥을 만들려면? 국물을 끓여야 하고, 고기도 삶아야 하고, 반찬도 준비해야 해.
  • 김밥을 팔려면? 밥을 짓고, 김을 사고, 속재료를 다듬어야 해.

즉, 요리 준비가 엄청 많아!

Spring MVC도 마찬가지야. 프로젝트를 시작하려면 엄청 많은 설정을 해줘야 하지.

  • web.xml 설정
  • dispatcher-servlet.xml 설정
  • 데이터베이스 연결 설정
  • View Resolver 설정

이거 하나하나 직접 해줘야 해서 초반에 손이 많이 가는 거야.


Spring Boot: 인스턴트 라면 같은 개발 방식

근데, Spring Boot는 어때?

이건 마치 컵라면 같은 존재야! 뜨거운 물만 부으면 끝! 🍜

  1. 가게를 차리는 게 아니라, 푸드트럭을 몰고 다니는 거야.
  2. 주방 세팅 필요 없어! 자동으로 다 준비해 줘.
  3. 메뉴판? 필요 없어! 기본적으로 라면 한 그릇 나와!
  4. 불? 물? 재료? 자동으로 세팅!

즉, Spring Boot는 미리 설정된 Spring MVC라고 보면 돼.


Spring Boot가 해주는 일

Spring Boot는 개발자가 불편해하는 것들을 대신 해줘.

  • 자동 설정 → 복잡한 XML 설정? 안 해도 돼!
  • 내장 서버 → 톰캣(Tomcat) 같은 웹 서버를 따로 설치 안 해도 돼!
  • 기본적인 프로젝트 구조 → 스프링이 알아서 맞춰 줘!

즉, Spring Boot는 Spring MVC의 발전형이야. Spring MVC에서 귀찮았던 것들을 Spring Boot가 "그냥 해줄게!" 하고 해결해 준 거지.


코드 비교: Spring MVC vs. Spring Boot

Spring MVC에서 Hello World 만들기

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example")
public class AppConfig {
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}
@Controller
public class HelloController {
    @RequestMapping("/hello")
    public ModelAndView hello() {
        ModelAndView mav = new ModelAndView("hello");
        mav.addObject("message", "Hello, Spring MVC!");
        return mav;
    }
}

👉🏻 설정할 게 너무 많아! 😵


Spring Boot에서 Hello World 만들기

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

👉🏻 와우! 단 두 개의 파일로 끝! 🎉


언제 Spring Boot를 쓰고, 언제 Spring MVC를 써야 할까?

Spring MVC Spring Boot

설정을 직접 제어하고 싶을 때 빠르게 개발하고 싶을 때
대규모 엔터프라이즈 프로젝트 스타트업이나 MVP 개발
특정 설정을 직접 조정할 필요가 있을 때 기본 설정으로도 충분할 때
복잡한 아키텍처를 구성해야 할 때 단순한 API나 웹앱을 만들 때

간단히 말해, Spring Boot는 빠르고 편하게 개발할 때! Spring MVC는 직접 하나하나 컨트롤할 때!


마지막 정리

"엄마, 그러면 내가 개발자로 일하게 되면 Spring Boot랑 Spring MVC 중에 뭐 써야 해?"

"음~ 처음엔 Spring Boot가 좋아! 설정도 자동으로 해주고, 서버도 내장돼 있어서 빨리 개발할 수 있거든. 하지만 Spring MVC도 알아두면 좋아! 왜냐면 Spring Boot도 결국은 Spring MVC 기반이니까, 깊이 있게 이해할수록 실력이 더 좋아질 거야!"

"와~ 엄마 설명 짱 쉬워!"

"그럼~ 우리 아들이 똑똑해서 그래! 이제 엄마랑 같이 코딩해볼까?" 😆💻


이제 이해됐지? Spring Boot는 Spring MVC보다 훨씬 빠르고 간편해! 하지만 Spring MVC도 여전히 강력한 도구야. 상황에 맞게 잘 선택하면, 너도 멋진 개발자가 될 수 있을 거야! 🚀

🔥 끝까지 읽었다면, 한 번 Spring Boot 프로젝트 만들어보는 거 어때? 😊

댓글