- 코드를 구현함에 있어 개발자에게 편한 환경을 조성. 개발시간 단축
- 코드를 구현할 때 비즈니스로직에 집중할 수 있고 해당 내용이 비즈니스 로직임을 쉽게 알 수 있음
- 기존에 제공되는 라이브러리와 외부 라이브러리 사용이 쉬움
- 의존성을 주입하여 제어가 반전되는데 의존관계를 설정해두면 스프링이 쉽게 적용이 가능함
- 기본언어로 JAVA를 이용하여 객체지향적인 코드를 작성해 유지보수가 쉬움, 객체를 재사용하여 재사용성이 높음, 확장에는 열려있으나 변경에는 막혀있음
- EJB에 비해 작고 단순하고, 모두 오픈소스로 되어있는 경량급 프레임워크
- 애플리케이션을 테스트하지 않아도 단위 테스드가 용이함
- 모듈화가 잘 되어있어 패키지와 클래스 수가 많아도 필요한 내용만 실행
- 메모리와 CPU가 제한된 컴퓨터에서 응용 프로그램을 개발, 배포하는데 유용
- 한가지 기술 분야에 집중하는 다른 프레임워크와 다르게 애플리케이션의 전 과정을 편리하고 효율적으로 진행할 수 있는 '애플리케이션 프레임워크'임
- 애플리케이션의 생명주기를 모두 관리해주기 때문에 개발자에 대한 의존도가 낮아져 개발자의 실수가 적어지고 객체를 사용하는 것이 매우 편리 (의존관계를 바탕으로 컨테이너가 자동으로 연결)
- 트랜잭션 관리 인터페이스를 제공
- MVC 패턴이나 AOP를 제공하여 핵심 비즈니스 로직에 집중할 수 있고 비즈니스로직이 아닌 작업은 따로 구현가능하다
- JAVA를 기본언어로 사용하여 객체지향언어인 JAVA 언어의 장점을 모두 갖는다 (POJO)
- 플랫폼에 독립적인 프로그래밍 언어
- 객체지향적인 코드를 구현할 수 있음
- 많은 라이브러리들을 제공, 커다란 커뮤니티 존재
- GC를 통한 불필요메모리 자체 삭제
- 기업용 애플리케이션 개발(엔터프라이즈급 애플리케이션)에 적합
- 재사용성이 높음
22-09-17