CVillain

[Spring] 스프링 역사-2 본문

Java/Spring

[Spring] 스프링 역사-2

CVillain 2021. 8. 22. 00:59

스프링 프레임워크의 역사 및 J2EE와의 관계

스프링 프레임워크의 역사

 

로드 존슨(Rod Johnson)이 2002년에 출판한 저서 Expert One-on-One J2EE Design and Development에서 선보인 소스 코드를 시작으로 점점 발전하게 되었다.

 

EJB의 문제점을 지적하며 EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여주고, 30,000 라인 이상의 기반 기술을 예제 코드로 선보였다. 여기에 지금의 스프링 핵심 개념과 기반 코드가 들어가 있다. 책 출간 직후 유겐 휠러(Juergen Hoeller), 얀 카로프(Yann Caroff)가 로드 존슨에게 오픈소스 프로젝트를 제안했고, 스프링의 핵심 코드의 상당수는 지금도 유겐 휠러가 개발중이다.

 

여담으로 스프링이라는 이름은 전동적인 J2EE(EJB)라는 겨울을 넘어 새로운 시작이라는 뜻으로 지었다고 한다.

 

 

J2EE(Java 2 Enterprise Edition)

 

J2EE는 웹 기반의 엔터프라이즈 애플리케이션을 구축하기 위한 플랫폼이다. JSP, Java Servlet, 분산 애플리케이션을 지원하는 컴포넌트 기반의 객체 EJB(Enterprise Java Beans), 비동기 메시징 처리를 위한 JMS(Java Message Service), 데이터베이스 처리를 위한 JDBC(Java Database Connectivity) 등의 기능을 포함하고 있다. 이 J2EE가 훗날 우리가 알고있는 Java EE로 명명법이 바뀐다.

 

이 중에서도 EJB는 Java EE의 핵심 기술이라고 한다. Servlet이나 JSP가 웹 GUI를 만들기 위해 필요한 기술인 반면, EJB는 Java EE가 대체하는 미들웨어에서 구동되던 기업의 핵심 서비스를 만들기 위한 분산처리, 트랜잭션, 보안 등을 지원하는 컴포넌트 모델을 제공하는 기술이기 때문이다. 그래서 많은 개발자들의 주목을 받으며 널리 쓰이게 되었지만, 시간이 지남에 따라 몇 가지 심각한 문제들로 인해 비판 받게 되었다고 한다. 예를 들어, ORM 기능을 제공하기도 했는데 2.x 버전이 나올 때까지 결과값을 정렬할 수 있는 표준적인 방법 조차 제공하지 않았다고 한다. 그래서 표준에서 정의하지 않은 이런 기능들은 모두 Java EE서버를 판매하던 기업들이 각자 다른 방식으로 구현해서 제공할 수 밖에 없었고, 미들웨어 제품에 종속적인 기존 환경을 극복하기 위해 만든 Java EE를 사용하면서 특정 자바 EE 서버 제품에 종속되어 버리는 이상한 상황까지 되어버렸다고 한다.

 

J2EE 구조도

 

 

참고

 

 

 

Comments