스프링의 역사?
스프링이 사용되기 전에는 EJB(Enterprise JavaBean)이라 하는 것이 사용되고 있었다. 하지만 EJB는 객체지향적이지 못하는 개발 방식으로 인해 많은 개발자들이 골을 썩이고 있었다. 하지만 로드 존슨이 하나의 책을 출간하게 되었다.
이 책의 내용은 아래와 같은 내용으로 출판되었다.
- EJB의 문제점 지적
- EJB 없이도 고품질의 코드를 설계가 가능하다.
- 현재의 Spring의 핵심기술 및 기반 코드가 작성
- BeanFactory, ApplicationContext, POJO, 제어의 역전, 의존관계 주입
릴리즈
- 2003년 스프링 프레임워크 1.0 -XML
- 2006년 스프링 프레임워크 2.0 -XML 편의 기능 지원
- 2009년 스프링 프레임워크 3.0 - 자바 코드로 설정
- 2013년 스프링 프레임워크 4.0 - 자바 8
- 2014년 스프링부트 1.0 출시
- 2017년 스프링 프레임워크 5.0, 스프링 부트 2.0 출시 - 리엑티브 프로그래밍 지원
- 2020년 9월 스프링 프레임워크 5.2.x, 스프링 부트 2.3.x
스프링이란 무엇인가?
스프링은 자바 언테프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임 워크다. 애플리케이션 프레임워크는 애플리 케이션 개발을 빠르고 효율적으로 할 수 있도록 애플리 케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API 등을 제공해 준다.
- 애플리케이션의 기본 틀 - 스프링 컨테이너 : 스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공한다.
- 공통 프로그래밍 모델 - IoC/DI, 서비스 추상화, AOP : 프레임워크는 애플리케이션을 구성하는 오브젝트가 생성되고 동작하는 방식에 대한 틀을 제공해 줄 뿐만 아니라, 애플리케이션 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해 준다.
- 기술 API : 스프링은 엔터프라이즈 애플리케이션을 개발의 다양한 영역에 바로 활용할 수 있는 방대한 양의 기술 API를 제공한다.
그렇다면 왜 스프링이라는 것이 성공할 수 있었을까?
성공 요인
스프링은 어느 날 갑자기 뿅? 하고 만들어진 게 아니다. 기존에 있던 불편함들을 계속 개선해 나가고 가 꾸준한 개선과 개발로 인해서 나타난 결과물이다. 스프링을 사용하는 개발자들이 스프링을 통해 얻게 되는 두 가지 중요한 가치가 있다면 그것은 단순함과 유연성이다.
- 단순함(simplicity)
위에서 말했듯이 스프링은 EJB라는 강한 권리를 가졌던 표준기술을 비판하면서 등장했다. 그래서 스프링이 강력히 주장하는 것은 가장 단순한 객체지향적인 개발 모델인 POJO 프로그래밍이다.
- 유연성(flexibility)
스프링은 또 유연성을 중요한 가치로 내세운다. 스프링은 유연성과 확장석이 매우 뛰어나다. 그래서 스프링은 프레임워크를 위한 프레임워크 또는 여러 프레임워크를 함께 사용하게 해주는 접착(glue) 프레임워크 라고 도 불린다.
참고
'Spring > spring' 카테고리의 다른 글
[스프링] AOP(Aspect-Oriented-Programming)이해 (0) | 2023.11.22 |
---|---|
[스프링] 트랜잭션(Transaction)이란 (0) | 2023.11.22 |
스프링 서비스 추상화 (1) | 2023.11.19 |
스프링 예외처리(Exception) (0) | 2023.11.17 |
스프링 오브젝트 와 의존관계 (1) | 2023.11.14 |