Spring 프레임워크는 Java 기반 웹 애플리케이션을 개발하기 위한 강력한 프레임워크로,
Spring Boot와 Spring Legacy(Spring MVC) 두 가지 방식으로 나누어서 볼 수 있다.
1. Spring Boot
Spring Boot는 Spring 프레임워크를 기반으로 하면서도 설정(Configuration)을 최소화하고 빠르게 개발할 수 있도록 도와주는 프레임워크이다.
Spring Boot의 특징
- 별도의 XML 설정 없이 간편한 설정 (application.properties 또는 application.yml 사용)
- 내장 웹 서버 지원 (Tomcat, Jetty, Undertow 등) → 따로 WAS를 설정하지 않아도 실행 가능
- Spring의 다양한 기능을 자동 설정(Auto Configuration)으로 제공
- Microservice 아키텍처에 적합
Spring Boot의 주요 구성 요소
- Spring Boot Starter : 필요한 라이브러리를 쉽게 추가할 수 있는 의존성 관리 기능
- Spring Boot Auto Configuration : 개발자가 별도로 설정하지 않아도 기본적인 설정을 자동으로 수행
- Spring Boot Actuator : 애플리케이션의 상태 모니터링 및 관리 기능 제공
Spring Boot의 동작 방식
- @SpringBootApplication을 사용하여 애플리케이션을 실행
- Spring Boot Starter를 통해 필요한 라이브러리를 자동으로 가져옴
- 내장 웹 서버가 자동 실행되며, API 요청을 받아 처리
- Controller에서 요청을 받아 Service를 통해 비즈니스 로직 처리 후 Repository를 통해 DB연동
2. Spring Legacy (Spring MVC)
Spring Legacy(Spring MVC)는 XML 또는 Java Config 기반의 설정을 통해 웹 애플리케이션을 개발하는 방식이다. 주로 대규모 프로젝트에서 사용되며, JSP와 함께 쓰이는 경우가 많다.
Spring Legacy의 특징
- XML 기반 설정이 많다. (Java Config 방식도 가능하기는 함)
- Spring Boot보다 설정이 복잡하다.
- Servlet 기반의 웹 애플리케이션 개발에 최적화 되어있다.
- 기존 레거시 시스템 유지보수에 유리하다.
Spring Legacy의 주요 구성 요소
- DispatcherServlet : 클라이언트의 요청을 컨트롤러로 전달
- Controller : 사용자의 요청을 처리하고 데이터를 반환
- ViewResolver : 응답을 JSP 또는 다른 뷰 템플릿으로 변환
- Service & Repository : 비즈니스 로직 수행과 데이터 처리
Spring Legacy의 동작 방식
- 사용자가 요청을 보냄 ex) http://localhost:8080/{project_name}
- DispatcherServlet이 요청을 받아 컨트롤러로 전달
- 컨트롤러는 서비스 및 DAO를 호출하여 데이터 처리
- 결과 데이터를 ModelAndView로 반환하여 JSP 뷰를 렌더링
덧붙이며...
개발하기에는 SpringBoot를 사용하는 편이 월등하게 편리하고,
보안적으로 보았을 경우에도 더 나아 보이지만,
기존 코드를 사용해서 홈페이지 제작을 찍어내는 경우와,
전자정부 표준 프레임워크를 사용해야 하는 경우의 편리함 때문에
2025년 기준 한국에서는 아직 Legacy 버전을 사용하는 곳이 많다.
결론 : SI 업체나 전자정부 표준 프레임워크를 사용하는 회사에도 관심이 있는 경우에는
Legacy 버전과 JSP를 사용 할 줄 알아야 한다.