Spring MVC vs Spring Boot

hellonayeon·2021년 11월 4일
14
post-thumbnail
post-custom-banner

📝 정리

  •   Spring  
    Java 기반의 웹 애플리케이션 개발을 위한 오픈소스 프레임워크

  •   Spring MVC  
    웹 애플리케이션 개발에 있어 MVC 패턴을 적용할 수 있도록 Spring에서 제공하는 프레임워크

  •   Spring Boot  
    Spring 설정들을 자동화하는 Spring 기반의 프레임워크

정의로 정리가 잘 안되지만.. 느낀 바로는 Spring 이라는 웹 애플리케이션 개발을 위해 제공되는 탄탄하고 거대한 프레임워크가 있는데, 이를 기반으로 개발자가 좀 더 쉽고 편리하게 사용할 수 있도록 제공되는 프레임워크들이 Spring MVC Spring Boot 이다. Spring Process 키워드로 찾아봐도 내용이 안나오고 Spring Architecture 관련 내용들만 나와서 일단은 이렇게 이해하기로 했다.

➕ 프로젝트를 생성할때 Spring MVC 라이브러리를 임포트하는데 여러 글들에서는 Spring MVC 프레임워크 라고 표현해서 혼란스럽다. 내가 보기엔 라이브러리 같은데.. 어떤 글을 봤는데 필자가 재밌게 풀어서 써주셔서 첨부해본다. 틀안에서 작업한다는 느낌이 들었으니 프레임워크로 정의할련다. 공식 문서에도 Spring MVC Framework 라고 나와있으니..

📢 쉽게 말해, 내가 무언가를 가져다가 쓴다는 느낌이 든다면 그것을 라이브러리를 사용하는 것이고(내가 갑), 내가 무언가의 틀 안에서 작업한다는 느낌이 든다면 프레임워크입니다.(프레임워크가 갑)

✒️ 본문

Spring MVC · Spring Boot 차이

Spring MVCSpring Boot 의 가장 큰 차이는 설정의 자동화 라고 생각한다. Spring MVC 구조의 경우 XML 파일들에 Dispatcher Servlet Handler Mapping View Resolver 설정들을 해줘야한다. 수업을 들으면서도 각종 XML 파일들에 설정을 하고 그 설정들을 이해하는게 가장 어려운 부분이었다. 하지만 Spring Boot 의 경우 @ 만 적절하게 명시해주면 Spring 이 알아서 다 처리해준다!

뿐만아니라 이 둘은 WAS 내장 여부 차이도 있다. Servlet 기반의 프로그램을 실행하기 위해서는 WAS 가 필요한데, Spring MVC 프로젝트의 경우 따로 Tomcat 과 같은 WAS 서버를 설치해줘야 한다. 반면 Spring Boot 에는 Tomcat 이 내장되있어 별도의 웹 애플리케이션 설치가 필요없다.

앞서 언급했듯 Spring MVCSpring Boot 모두 Spring 기반의 프레임워크다. 실제로 IntelliJ IDEA 에서 Spring Boot 프로젝트를 설정할때 초기 의존성을 설정하는 부분에서 Spring Web 을 추가해주는데, 이 과정은 Spring MVC 기반의 프로젝트를 생성함을 의미한다. 결론적으로 나는 현재 Spring MVC 구조의 프로젝트를 진행하고 있으며, 설정의 자동화를 위해 Spring Boot 프레임워크를 사용하고 있다.


최근에 Spring Boot 를 공부하면서 들게된 의문점이다. 처음에 웹프레임워크 과목을 수강할때 Eclipse 에서 Spring MVC 프로젝트를 생성해서 프로그래밍 했었고 다음 학기에도 Spring MVC 프로젝트로 수업을 듣다가 학기 마지막쯤 Spring Boot 를 잠깐 배웠었다. 그러고 약 1년 넘게 한참동안 잊고 살다가 Spring Boot 를 다시 맞이하니 너무 생소해...🤭 그리고 Spring MVC 프로젝트를 사용하던 기간이 더 길었던 터라 온갖 Annotation 이 낯설게만 느껴졌다! 다시 접했을때 이 둘은 아예 다른 프레임워크인가 까지 생각해봤는데 계속 사용하다보니 Spring Boot는 기존 Spring에서 하던 설정들을 간결하게 할 수 있는 프레임워크 결국 Spring 기반 이라는 것을 깨달았다.


🔗 참고 문서

📌 cil05265. "MVC 웹 프레임워크와 라이브러리 및 스프링 MVC", Yanagi.log, 3 Aug. 2021

📌 GeeksforGeeks. Difference between Spring and Spring Boot

📌 Spring Docs. "17. Web MVC framework Part V. The Web"

post-custom-banner

0개의 댓글