EJB(Enterprise Java Bean)
위 단어에서 Enterprise는 기업을 말하는 것이고 Java Bean은 자바 객체를 재사용 가능하게 컴포넌트화 시킬 수 있는 코딩 방침을 정의한 것이다.
EJB는 Sun Microsystems사가 기업환경 개발을 단순화하기 위해 제창한 스펙이라고 말한다. Java EE의 API 중 하나이고, 주로 웹 시스템에서 JSP로 화면을 구성하고 EJB는 비즈니스 로직을 처리하는 역할을 한다. 즉, EJB는 기업환경의 시스템을 구현하기 위해 위 스펙에 따라 비즈니스 로직을 처리하는 서버 애플리케이션인 것이다.
과거 자바로 서버측 애플리케이션 개발을 할 때 아래와 같은 문제가 있었다고 한다.
위와 같은 서버 어플리케이션의 생산성과 향상과 이동성을 실현하기 위해서 생겨난 것이 EJB이다. (이동성과 부품화는 무슨 말인지 이해가 안간다..)
EJB 는 Enterprise Bean, Container, EJB Server, Client Application 으로 구성되어 있다
일반적으로 클라이언트가 Session Bean을 불러 Session Bean이 Entity Bean을 불러서 DB에 접근
Container
EJB서버와 Enterprise Bean 사이 중간에 위치해 클라이언트 애플리케이션은 이 Container를 통해 Enterprise Bean에 접근한다. 컨테이너가 데이터베이스 처리와 트랜잭션 처리 등을 숨기기 위해 개발자와 그것들을 의미 하지 않는 개발이 가능하도록 해줌
EJB Server
EJB Server는 컨테이너를 관리하여 EJB로서 필요한 시스템 레벨의 서비스(데이터베이스 처리, 트랜잭션 처리)를 실현한다.
Client Application
EJB에 준거한 클라이언트 애플리케이션
Java Applet, Java Application, Servlet, JavaServerPages(JSP) 베이스의 애플리케이션 등이 있음
장점
단점
전체적으로 Spring이 등장하게 된 배경과 연관이 있어 조사해봤으나 솔직히 EJB에 대한 내용 이해가 잘 안간다... 스프링과의 차이점을 좀 더 찾아볼 필요가 있어보인다.