스프링의 시작과 역사
스프링의 역사는 2002년 로드 존슨의 책에서 시작된다. 이 책에서는 EJB의 문제점을 지적하고, EJB 없이도 탁월한 애플리케이션을 개발할 수 있음을 보여준다. 책에는 BeanFactory, ApplicationContext, POJO, 제어의역전, 의존관계 주입 등의 기반 기술에 대한 30,000라인 이상의 예제 코드가 포함되어 있다. 책의 출간 직후 유겐 휠러와 얀 가로프가 로드 존슨에게 오픈 소스 프로젝트 제안을 하면서 스프링 프레임워크의 탄생을 위한 첫 걸음을 내딛게 된다.
스프링 릴리즈 역사
- 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.2x, 스프링 부트 2.3x
스프링 프레임워크와 그 생태계
스프링은 큰 틀에서 두 가지 주요한 요소로 나눌수 있다.
1. 스프링 프레임워크 : DI 컨테이너, AOP , 이벤트 및 웹 기술 등 당야한 핵심 기능을 제공한다. 또한, 데이터 처리를 위한 JDBC, ORM 지원, XML 처리 등의 기능도 제공한다.
2. 스프링 부트 : 스프링 프레임워크의 기능을 더 쉽게 사용하게 해주는 도구이다. 자동 설정. 내장 웹 서버, 간단한 빌드 구성 등을 통해 개발자의 생산성을 크게 향상시켜준다.
그 외에도 선택적으로 사용할 수 있는 스프링 데이터, 스프링 시큐리티, 스프링 배치, 스프링 클라우드 등 다양한 프로젝트가 스프링 생태계를 구성한다.
스프링과 객체 지향 프로그래밍
스프링은 궁극적으로 객체 지향 프로그래밍을 극대화하기 위한 도구이다. 객체 지향 프로그래밍의 주요 특징인 추상화, 캡슐화, 상속, 다형성을 기반으로 한다. 이 중 다형성은 스프링의 핵심이다. 다형성을 활용하면 역할과 구현을 분리하고, 이를 바탕으로 유연하고 확장가능한 애플리케이션 만들 수 있다.
스프링에서는 제어의 역전(IoC)과 의존관계 주입(DI)를 통해 다형성을 더욱 강조한다. 이를 통해 개발자는 코드의 유연성을 획득하며, 레고 조립이나 배우의 역할을 선택처럼 구현을 편리하게 변경할 수 있다.
출처 : 인프런 - 🔗 스프링 핵심원리 - 기본편 by 우아한형제 김영한님
'Spring > Spring 핵심 원리' 카테고리의 다른 글
싱글톤 컨테이너 (0) | 2023.08.16 |
---|---|
스프링 컨테이너와 스프링 빈 (0) | 2023.08.15 |
애자일 소프트웨어 개발 4대 선언, 12가지 원칙 (0) | 2023.08.14 |
스프링 핵심원리 기본편 - 회원,주문 도메인 설계 (0) | 2023.08.14 |
"SOLID" 객체 지향 설계 5가지 원칙 (0) | 2023.08.14 |