본문 바로가기
스프링/핵심 원리

[Spring] 스프링 탄생 배경

by drCode 2021. 12. 31.
728x90
반응형
728x90

스프링 강의를 들으며 스프링 탄생 배경에 대해 배우게 되었다.

 

 

스프링은 스프링 프레임워크를 말하는데,

 

스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다.

 

프레임워크란,

컴퓨터 프로그래밍에서, 소프트웨어 프레임워크는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다.

간단히 뼈대, 골조, 프레임워크라고도 한다. 

 

스프링 프레임워크를 사용하기 이전에는 EJB를 사용하였다.

 

EJB

EJB는 스프링 프레임워크를 사용하기 이전에 쓰던 프레임워크이다.

 

반응형

 

엔터프라이즈 자바빈즈는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다.

즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. 

 

무겁고 복잡한 EJB 특성으로 인해 스프링이 등장하게 되었다.

 

Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다. 

 

스프링은 Plain Old Java Object 방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.

 

스프링은
 - EJB 컨테이너를 대체하고 있다.
 - EJB보다 단순하다
 - 현재 사실상 표준 기술로 사용되고 있다.

 

 

 

 

 

하이버네이트 ORM은 자바 언어를 위한 객체 관계 매핑 프레임워크이다. 객체 지향 도메인 모델을 관계형 데이터베이스로 매핑하기 위한 프레임워크를 제공한다.

 

하이버네이트
 - EJB 엔티티빈 기술을 대체하고,
 - JPA(Java Persistence API) 새로운 표준을 정의한다.

 

EJB 엔티티빈 --> 하이버네이트 --> JPA

 


표준 인터페이스 JPA의 구현체들로는
 <- 하이버네이트
 <- EclipseLink
 <- 기타 ...

가 있다.

 

스프링 역사

 - 2002년 로드 존슨 책 출간
 - EJB의 문제점 지적
 - EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여주고, 30,000 라인 이상의 기반 기술을 예제 코드로 선보임
 - 여기에 지금의 스프링 핵심 개념과 기반 코드가 들어가 있음
 - BeanFactory, ApplicationContext, POJO, 제어의 역전, 의존관계 주입
 - 책이 유명해지고, 개발자들이 책의 예제 코드를 프로젝트에 사용
 - 책 출간 직후 Juergen Hoeller(유겐 휠러), Yann Caroff(얀 카로프)가 로드 존슨에게 오픈소스 프로젝트를 제안
 - 스프링의 핵심 코드의 상당수는 유겐 휠러가 지금도 개발
 - 스프링 이름은 전통적인 J2EE(EJB)라는 겨울을 넘어 새로운 시작이라는 뜻으로 지음

 

릴리즈

 - 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

728x90
반응형

댓글