Spring은 Java EE를 대체하기 위해 나온 기술입니다. Java EE에는 JSP, JSTL, Servlet, EJB, JavaMail, JTA, JMS, JPA 등의 하위 기술들이 포함되어 있는데, 각각이 Spring Framework와 어떻게 대응되는지 궁금해져서 오랜만에 글을 쓰게 되었습니다. 추가로 Java EE와 Spring의 특징과 차이점도 함께 정리하겠습니다.
Slideshare에서 좋은 자료를 발견해서 원본 주소를 남기고 가져와 보았습니다. 2011년 자료이지만 기술의 발달 과정을 이해하는 데는 옛날 자료도 도움이 많이 된다고 생각합니다.
1. 특징 비교
2. 공통점과 차이점
Java EE | Spring |
둘 다 널리 사용되는 미들웨어 솔루션이다. | |
각 기능이 서로 일치하고, 단순한 수준의 코드는 거의 유사하다. | |
기본값 활용 및 설정 최소화 (convention over configuration) |
명시적 설정 필요(XML 또는 Java코드로) * Spring Boot는 Java EE처럼 기본값을 적극 활용 |
기능이 중복되는 구성요소 없음 (모든 구성요소들은 고유한 기능을 지님) |
다양한 구성요소들이 서로 대체 가능하나 복잡성 증대 (e.g. Hibernate vs. myBATIS) |
벤더/플랫폼 독립적 Java 표준 기술 | 공식적인 표준은 아니나 빠르게 발전함 (2009년 VMware가 인수하여 현재에 이름) |
구현 벤더에 따라 비표준 기술/추가기능을 수용함 |