JAVA EE 기반은 너무 복잡하고 어려웠다
객체 간 의존성 관리 자동화 -> 비즈니스 로직에 집중
테스트와 유지보수 쉬움
웹 어플리케이션, REST API 서버, 기업 및 공공 시스템, 대규모 트래픽 서비스, MSA
객체지향 설계에 최적화(IoC, DI)
유지보수성 높음
테스트 용이(Test Code)
생태계 매우 큼
대규모 프로젝트에 적합
러닝 커브가 높음
진입장벽이 높음
복잡함
객체 생성과 관리 주체가 개발자
객체 간 결함도 감소
공통 기능 분리
Bean 관리 담당
Spring이 관리하는 객체
순수 자바 객체
가독성 향상
웹 애플리케이션 구조
트랜잭션 관리
Spring 생산성 도구