Programing/spring

스프링 , JPA 탄생 배경

KingBini 2022. 4. 11. 14:43

스프링, JPA의 탄생

EJB : 자바빈즈(Enterprise JavaBeans)

EJB란 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다.

  • 스프링이 생기기전 개발자들은 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)라는 서버 앱으로 개발을 했는데 아래와같은 단점이 있었다.

  • EJB 단점

    • 객체지향적이지 않음
    • 복잡한 프로그래밍 모델
    • 특정 환경, 기술에 종속적인 코드
    • 컨테이너에 안에서만 동작할 수 있는 객체구조
    • 자동화된 테스트가 매우 어렵거나 불가능
    • 부족한 개발생산성, 이동성(portablity)
    • 또 EJB가 제공하는 ORM 엔티티는 기술력이 매우 낮았다고한다

    위같은 이유로 불만이 많은 개발자들이 불편해하고 불만이있었는데 그 중 두명의 개발자가 오픈소스를 만든다.

    두 명의 개발자

1. 로드 존슨

로드존슨

  • 로드 존슨(스프링 창시자)
    • 2002년로드존슨책출간•EJB의문제점지적
    • EJB없이도충분히고품질의확장가능한애플리케이션을개발할수있음을보여주고, 30,000라인이상의기반기술을예제코드로선보임
    • 여기에지금의스프링핵심개념과기반코드가들어가있음•BeanFactory, ApplicationContext, POJO, 제어의역전, 의존관계주입
    • 책이유명해지고, 개발자들이책의예제코드를프로젝트에사용

2. 게빈 킹(하이버 네이트 창시자)

하이버네이트

하이버네이트

  • EJB 엔티티빈 기술을 대체
  • JPA(Java Persistence API)새로운 표준 정의



정리

  1. EJB에 불만을 갖던 개발자 두 명이 오픈소스 개발
  2. 그 중 한명의 개발자 "로드 존슨" ->스프링 탄생
  3. 그 중 한명의 개발자 "케빈 킹" EJB ORM 엔티티에 불만 갖음 -> 하이버네이트 개발 ->JPA 탄생