개발자 성장 일지

EJB JEE

NEWDODORIPYO 2022. 8. 3. 22:57

Enterprise JavaBeans(EJB)

 

개념

EJB(Enterprise Java Bean), 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 애플리케이션을 EJB라고 한다.

Enterprise JavaBeans(EJB)는 독립한 부품이 아닌, 미국 Sun Microsystems사가 제창한 규약이다. EJB는 서버 어플리케이션의 개발을 용이하게 해 다중 다양한 Platform과 제품 간의 이동성을 실현하기 위하여  비즈니스 로직과 시스템 서비스를 이용하는 로직을 분산해 그 사이의 규약을 규정하고 있다.

비즈니스 로직을 탑재한 부품을 "Enterprise Bean"이라고 불린다. Database처리, Transaction처리 등의 시스템 서비스를 이용한 로직을 감추고 있는 부품을 "컨테이너"라고 불린다.

Enterprise Bean

비지니스 로직을 실장 한 서버 컴포넌트이다. Enterprise Bean에는 이하의 2가지의 모델이 있다.

  • 세션 빈 (Session Bean) : DB 연동이 필요 없음
  • 엔티티 빈 (Entity Bean)
    • 데이터베이스의 데이터를 관리하는 객체
    • Insert(삽입), Update(수정), Delete(삭제), Select(조회)
    • DB 관련 쿼리는 자동으로 만들어지고 개발자는 고급 업무 처리에 집중할 수 있음
    • DB가 수정되면 코드 수정 없이 다시 배포(설정 문서 만들어서 복사)

일반적으로는 클라이언트가 Session Bean을 불러 Session Bean이 Entity Bean을 부르는 것으로 데이터베이스에 접근을 행한다.

Container

EJB서버와 Enterprise Bean의 중간에 위치해, 클라이언트 어플리케이션은 그 컨테이너를 경유해서 Enterprise Bean에 접근한다. 컨테이너가 데이터베이스 처리와 트랜젝션 처리 등을 숨기기 위해 개발자와 그것들을 의미하지 않는 애플리케이션을 개발하는 것이 가능하다.

EJB ServerEJB서버는 컨테이너를 관리해서 EJB로서 필요한 시스템 레벨의 서비스( 데이터베이스 처리, 트랜젝션 처리등)을 실현한다.

Client applicationEJB에 준거한 클라이언트 어플리케이션이다.Java Applet, Java Application, Servlet, JavaServer Pages(JSP) 베이스의 애플리케이션 등이 있다.

장단점

EJB 장점

  • 인스턴스 풀링: 객체를 미리 생성하여 메모리에 저장하여 사용준비 상태에 들어가도록 함, 많은 동시접속자에 대한 안정성 지원
  • 트랜잭션 처리: 자동으로 컨테이너가 모든 처리메소드에 대하여 트랜잭션을 처리해줌, 안정적인 데이터 조작
  • 퍼시스턴스 관리: 빈즈의 상태를 메모리에서 사용여부에 따라 자동으로 활성화/비활성화를 실행해 관리해줌
  • FAT Client를 Thin Client로, n-tier 시스템을 구축할 수 있다.
  • Weblogic, Webspere주로 사용, 국산은 제우스(jeus) 사용
  • EJB 컴포넌트들이 Loading되어 활동하는 서버 쪽 프로그램, 컴포넌트의 생성, 소멸, 라이프 사이클, 보안, Threading 등의 서비스를 제공

EJB단점

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

🎈참조 : https://woongsin94.tistory.com/357

 

EJB(Enterprise Java Bean)

개념 EJB(Enterprise Java Bean), 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 어플리케이션을 EJB라고 한다. Enterprise JavaBeans(EJB)는 독립한

woongsin94.tistory.com

 

Java Enterprise Edition(JEE)

자바 프로그래밍 언어 플랫폼

  1. 표준 에디션의 자바 플랫폼 (Java SE)
  2. 엔터프라이즈 에디션의 자바 플랫폼 (Java EE)
  3. 마이크로 에디션의 자바 플랫폼 (Java ME)
  4. JavaFX
  • 모든 자바 플랫폼들은 자바 가상 머신(JVM)과 어플리케이션 프로그래밍 인터페이스(API)로 구성되어 있다.
    • 자바 가상 머신(JVM): 하드웨어와 소프트웨어 플랫폼에서 자바 기술을 사용한 어플리케이션을 동작시키기위한 프로그램
    • 어플리케이션 프로그래밍 인터페이스(API): 개발자들이 직접 컴포넌트나 어플리케이션을 만들 때 사용할 수 있는 소프트웨어 컴포넌트의 집합
  • 각각의 자바 플랫폼에서는 JVM과 API를 제공함으로써 타깃 플랫폼상에서 동작되도록 작성된 어플리케이션들이 자바 프로그래밍 언어의 장점(플랫폼에 비종속적, 안정성, 개발 용이 등)들을 그대로 갖출 수 있게 한다.

Java SE (Standard Edition)

  • 가장 대중적인 자바 플랫폼
  • 흔히 자바 언어라고 하는 대부분의 패키지가 포함된 에디션
    • java.lang.*, java.util.*, java.awt.*, javax.rmi.*, javax.net.* 등
  • Java SE의 API는 자바 프로그래밍 언어의 핵심기능들을 제공
    • 기초적인 타입
    • 네트워킹
    • 보안
    • 데이터베이스 처리
    • 그래픽 사용자 인터페이스 개발
    • XML 파싱
  • 가상 머신, 개발도구, 배포 기술, 부가 클래스 라이브러리, 툴킷 등 제공

Java EE (Enterprise Edition)

  • Java EE 플랫폼은 Java SE 플랫폼을 기반으로 그 위에 탑재된다.
  • 웹 프로그래밍에 필요한 기능을 다수 포함
    • JSP, Servlet, JDBC, JNDI, JTA, EJB 등
  • 대규모, 다계층, 확장성, 신뢰성, 보안 네트워킹 API, 환경 등을 제공

Java ME (Micro Edition)

  • Java ME는 모바일 폰과 같은 자바 프로그래밍 언어 기반의 어플리케이션이 보다 조그만 가상 머신으로 동작시킬 수 있는 기능과 API 제공
  • Java EE처럼 Java SE를 기반으로 함
  • 작은 작치에서 동작하는 전용 클래스 라이브러리들 제공
  • Java EE 서비스의 클라이언트 역할을 하기도 함

Java FX

  • 경량 사용자 인터페이스 API를 사용하여 리치 인터넷 어플리케이션을 만들 때 사용됨
  • 하드웨어 수준에서 가속 기능을 사용할 수 있는 그래픽과 미디어 엔진을 갖추고 있어 클라이언트의 성능에 신경을 써야 하는 분야에서 사용됨
  • Java EE처럼 클라이언트 역할을 하기도 함

요약

  • Java EE는 Java SE에서 API(lib 디렉터리에 포함되어 있는 JAR 파일들)가 추가된 것

🎈참조:https://doozi316.github.io/java/2020/07/01/WEB20/