가이드라인: 엔티티 Bean 식별
이 가이드라인은 J2EE 응용프로그램의 엔티티 Bean을 식별하고 모델링하는 방법에 대해 설명합니다.
관계
관련 요소
기본 설명

소개

이 가이드라인은 엔티티 Bean 식별에 초점을 둡니다. 엔티티 Bean에 대한 추가 안내는 가이드라인: 엔티티 Bean에서 제공합니다. EJB에 대한 일반 안내는 가이드라인: EJB(Enterprise JavaBean)에서 제공합니다.

엔티티 Bean 식별

엔티티 Bean은 지속적 데이터로 조정되므로 엔티티 분석 클래스(중간 산출물: 분석 클래스 참조)는 종종 엔티티 Bean의 좋은 후보입니다. 엔티티 Bean은 지속적 상태를 포함하는 비즈니스 엔티티에 대응됩니다. 비즈니스 엔티티 특정 로직을 구현하는 서비스를 제공합니다. 엔티티 Bean의 다른 특성은 여러 동시 클라이언트에 서비스를 제공할 수 있다는 것입니다. EJB 컨테이너는 관련 클라이언트 및 관련 트랜잭션의 조정을 처리합니다.

엔티티 Bean은 지속성을 제공하기 위해 사용되지만, 비즈니스 로직을 캡슐화할 수도 있습니다. 일반적으로 엔티티 Bean은 엔티티 Bean 및 종속 데이터 오브젝트에 의해 지속되는 데이터와 관련된 비즈니스 로직만을 포함해야 합니다. 일반적으로, 엔티티 Bean 내부 로직이 세션 Bean으로 풀아웃되어야 엔티티 Bean 간의 결합을 최소화합니다.

엔티티 Bean 모델링

가이드라인: EJB(Enterprise JavaBean) 식별을 참조하십시오.

세분성

세분성은 엔티티 EJB에 의해 표시되는 데이터의 크기를 나타냅니다. 적절한 세분성은 사용 중인 EJB 스펙의 버전에 의해 좌우될 수 있습니다.

EJB 2.0 이전에, 엔티티 EJB는 항상 큰 세분성(보통 다중 데이터베이스 테이블에서 그룹화된 데이터의 큰 그룹화 표시)을 가지는 것이 좋습니다. 이것은 각 엔티티 EJB가 상당한 오버헤드(특히, 원격 기능성과 관련된 오버헤드)를 갖기 때문입니다. 예를 들어, 송장의 행 항목이나 스프레드시트의 셀은 너무 세부적이므로 네트워크에서 자주 액세스되지 않아야 합니다. 대조적으로, 추가 비즈니스 로직이 데이터에 필요한 경우 송장 항목의 논리 그룹이나 스프레드시트의 셀 서브세트가 엔티티 EJB로 모델링될 수 있습니다.

이것은 EJB 2.0에서 다소 변경됩니다. 즉, 로컬 인터페이스 도입은 이 오버헤드의 일부를 줄이며 세분화된 오브젝트가 EJB로 모델링되게 합니다. 로컬 및 원격 인터페이스는 개념: J2EE(Java 2 Platform Enterprise Edition) 개요에서 설명합니다. 로컬 인터페이스는 원격 인터페이스와 연관된 오버헤드를 갖지 않으며, 단단히 결합된 Bean이 더 효과적으로 상호 작용하게 합니다. 로컬 인터페이스는 더 큰 엔티티를 구성하기 위해 사용되는 세분화된 엔티티에 특히 유용하며, 더 큰 엔티티가 파트의 작성 및 파기에 책임이 있습니다. 클라이언트는 파트와 상호 작용하기 위해 차례로 로컬 인터페이스를 사용하는 더 큰 엔티티의 원격 인터페이스를 사용합니다.

그럼에도 불구하고, 엔티티 Bean이 다른 클래스와 구성 관계를 갖는 경우 엔티티 Bean보다는 보통 Java 클래스로 다른 클래스를 모델링하도록 선택할 수 있습니다. 컨테이너 관리 지속성을 사용하는 경우, 이러한 Java 클래스를 "종속 값 클래스"라고 합니다. 종속 값 클래스는 엔티티 Bean보다 개발 및 테스트하기가 더 간단하고 더 빠르며 구성된 클래스가 엔티티 Bean 기능을 필요로 하지 않음을 가정하여 좋은 선택사항입니다. 종속 값 클래스의 일부 제한사항은 다음과 같습니다.

  • 엔티티 Bean 참조를 포함할 수 없습니다.
  • 일부 성능에 영향을 주지만 원격 인터페이스로부터의 액세스를 가능하게 하는 값에 따라 "get" 및 "set"

캡슐화

세션 Bean Facade와 관련된 엔티티 Bean 세트를 랩핑하여 엔티티 EJB에 해당하는 비즈니스 엔티티의 조작에 대한 로직 인터페이스를 제공할 수 있습니다. 가이드라인: 세션 Bean 식별을 참조하십시오.

유사한 접근 방식은 하나의 엔티티 Bean이 일반적으로 종속적인 다른 로컬 엔티티 Bean 세트를 캡슐화하게 하는 것입니다. 원격 클라이언트는 "기본" 엔티티 Bean을 통해 모든 데이터에 액세스합니다. Core J2EE 패턴 - 합성 엔티티 패턴([ALU01]이 이 대안을 설명하지만, 엔티티 Bean 관계 관리를 위해 더 용이한 메소드인 세션 Bean Facade를 권장합니다.