[Spring] Spring MVC vs Struts2
Spring 관련 포스팅 목록
Spring Framework vs Spring MVC
Spring MVC vs 스프링 부트(Spring Boot)
Spring 공부를 하다보니 회사에서 사용했던 Struts와 Spring의 공통점과 차이점에 대해 문득 궁금해져서 찾아보았습니다.
Struts2 와 Spring Framework 을 비교하려고 찾아봤으나
Struts2 와 비교대상은 Spring MVC 였습니다 (Struts 와 Spring Framework 는 비교대상이 아니다)
Struts와 Spring은 모두 Java 웹 어플리케이션 을 개발하는 데 사용됩니다. Spring MVC와 Structs2는 매우 유사합니다.
Struts 는 Spring보다 이전에 개발되었지만, Struts 프레임 워크가 향상되어 현재는 둘다 Java를 사용하여 웹 애플리케이션을 개발하는 데 사용되고 있습니다.
하지만 실제 업무에서 Struts를 사용하며 구글링등 에러에 대한 정보를 찾으려고하면 Spring에 비해 정보가 확실히 부족한것을 알수 있습니다.
Spring Framework
- 오픈 소스 어플리케이션 프레임 워크
- 경량 프레임워크로 시스템 리소스를 효율적으로 활용합니다. 코딩 생산성을 높이고 전체 애플리케이션 개발 시간을 단축합니다.
- 웹 앱 개발을 위한 표준이며 J2EE(Java to Enterprise Edition)를 통해 사용
- 제어 IoC 및 종속성 주입 개념의 반전에서 작동
- POJO(Plain Old Java Object)로 고성능 애플리케이션을 설계할 수 있도록 도움
- 유연한 확장성
- IOC, DAO, AOP, ORM, Context, WEB MVC 등과 같은 여러 모듈이 있다.
- AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍( 재활용성이 극대화)
Struts Framework
- 오픈 소스 어플리케이션 프레임 워크
- Java Servlet API를 활용하고 확장하여 MVC 아키텍처를 기반으로하는 프레임워크 (web MVC Framework)
- Java로 작성된 크로스 플랫폼 오픈 소스 프레임 워크로, Java EE 웹 애플리케이션(J2EE)을 개발
- Struts는 REST 응용 프로그램과 SOAP, AJAX 등과 같은 다양한 기술을 지원합니다.
- 운영해보면서 느낀 단점 : 규모가 커질수록 struts-config.xml이 방대해지고, 무수히 많은 액션클래스가 생긴다.
- POJO 기반의 동작(Action)
- 다양한 표현식 언어 EL 지원
- JSTL 사용 가능
Spring MVC vs Struts2 비교
| Spring MVC | Struts2 | |
| 가벼운 프레임워크입니다. | 헤비급 프레임워크입니다. | |
| 웹 뿐만 아니라 자바 어플리케이션에도 특화된 프레임워크 (외부 인터페이스에 확장까지 고려한 프레임워크) |
웹에 특화된 프레임워크 | |
| 태그 라이브러리 |
태그 라이브러리를 지원하지 않습니다. | 태그 라이브러리 지시문을 지원합니다. (EL, JSTL) |
| 모듈 | 느슨하게 결합된 모듈이 있습니다.(재사용성 높음) | 밀접하게 연결된 프로그래밍 모듈을 가지고 있습니다. |
| 테스트 | 단위 테스트하기가 더 쉽다 | 테스트 하기 어렵다 |
| 계층 구조 | 모델링, 보기 및 컨트롤러를 위한 3개의 계층을 포함하는 계층화된 MVC 아키텍처가 있습니다. (MVC모델의 명확한 분리) |
계층 구조가 없습니다. |
| 전반적 흐름 | 스트럿츠가 xml 설정에 따라서 움직인다면 스프링은 xml뿐만 아니라 자바 기반 어노테이션을 활용하여 자바 빈을 등록할 수 있음. |
웹 브라우저 사용자의 요청 > 서블릿에서 해당 요청 받음 > xml 설정에 따라 알맞은 액션으로 연결. |
| 통합 | 메인 로직 전후에 더 적은 코딩이 필요한 ORM 기술과 통합됩니다. | 수동 코딩을 지원합니다. |
| 장점 | 유연성 쉬운 통합 쉬운 코드 테스트 |
심플한 디자인 다양한 보기 옵션 좋은 태그 기능 |
| 단점 | 안전성? | 부실한 문서 호환성 문제가 자주 있음 |
태그 라이브러리 관련 내용참고
Struts2 와 Spring Framework 을 비교하려고 찾아봤으나 Struts2 와 비교대상은 Spring MVC 였습니다
이에 다음 포스팅에서는 Spring Framework 와 Spring MVC 의 차이점에 대해 찾아보겠습니다.
Spring Framework vs Spring MVC
연관된 글:
참고 :
https://dev-jwblog.tistory.com/87
https://www.javaassignmenthelp.com/blog/spring-vs-struts/
https://www.holaxprogramming.com/2012/01/12/struts-and-spring-mvc/
https://themach.tistory.com/66
https://ko.strephonsays.com/struts-and-vs-spring-mvc-15200