의문점 공부하기/📌 Java

📌 스프링 MVC와 struts의 차이에 대하여

아리빠 2023. 8. 16. 19:28

스프링 MVC와 Struts는 둘 다 웹 애플리케이션 개발을 위한 프레임워크



아키텍처:

 

스프링 MVC: 스프링 프레임워크의 일부로, 웹 계층을 구성하는 하나의 모듈입

스프링의 IoC(Inversion of Control)와 AOP(Aspect-Oriented Programming) 개념을 기반으로하며, 컴포넌트 간의 결합도를 낮추는 구조를 제공

 

Struts: Struts프레임워크는 웹 계층과 비즈니스 계층을 분리하는 구조를 가지며,요청기반 + 웹 계층을 주로 다루는 프레임워크, 요청 핸들러, 응답 핸들러, 태그 라이브러리의 세 가지 주요 구성 요소로 구성


컨트롤러 개념:

스프링 MVC: 컨트롤러는 @Controller 어노테이션으로 표시되며, 메서드 단위로 요청을 처리

메서드에서 반환되는 뷰 이름을 기반으로 뷰를 찾아 렌더링


Struts: 액션(Action) 클래스로 요청을 처리하며, 요청 매개변수와 해당 액션 클래스의 메서드를 매핑하여 처리


설정:

스프링 MVC: XML 또는 Java Config를 사용하여 빈(Bean) 설정 및 관리를 하며, IoC 컨테이너를 통해 컴포넌트들을 관리

 

Struts: XML 파일을 사용하여 설정 및 매핑을 수행하며, 액션 클래스와 뷰 간의 매핑을 정의


유연성:

스프링 MVC: 스프링의 다양한 모듈과 통합 가능하며, 웹 계층 뿐만 아니라 서비스 및 데이터 계층과도 연동이 쉽다

 

Struts: 주로 웹 계층에 초점을 맞춘 프레임워크, 다른 계층과의 연동보다는 웹 애플리케이션 개발에 특화


간결성:

스프링 MVC: 스프링의 강력한 IoC 및 DI(Dependency Injection) 기능으로 코드의 가독성 및 유지보수성을 높일 수 있다


Struts: 초기에는 XML 설정 파일을 많이 사용하여 설정이 복잡할 수 있으나, 최근 버전에서는 간편한 애노테이션 기반의 설정도 가능

 


스프링 MVC: 스프링 프레임워크와 함께 사용되며, 스프링의 다양한 모듈과 통합하여 사용할 수 있습니다.
Struts: 단독으로 사용되거나 추가적인 라이브러리와 연동하여 사용할 수 있다.