"여기 있습니다."

"나는 그것에 대해 생각하고 당신에게 매우 도움이 될 작은 교훈을 하나 더 가르치기로 결정했습니다. 프로그래머로 일하기 전에는 특별한 용어를 접할 수 없기 때문에 몇 가지 일반적인 개념을 지금 소개하고 싶습니다."

"약 10년 전에 Enterprise  J ava  Beans ( EJB ) 가 널리 사용되었습니다. "

"자바빈은 무엇을 의미합니까?"

"JavaBeans는 기본적으로 커피 원두를 의미합니다(Java는 커피의 일종입니다). IT 유머입니다."

"프로그램의 비즈니스 로직은 메시지를 교환하고, 자신을 저장하고, 이름으로 서로를 찾는 등의 많은 작업을 수행할 수 있는 상위 개체 또는 빈 그룹의 형태를 취했습니다. 일반적으로 이것은 특별한 수퍼 다른 접근 방식이 있었지만 멋진 부모 클래스. 그러한 개체의 동작은 고도로 규제되었습니다."

"가장 유명한 세 가지 유형의 EJB bean은 다음과 같습니다."

" 엔티티 빈은 특정 데이터를 저장하는 것이 목적인 빈입니다. 이 유형의 빈에는 자신과 해당 필드를 데이터베이스에 저장하기 위한 기본 제공 메커니즘이 있습니다. 이 유형의 개체는 삭제한 다음 나중에 데이터베이스에서 다시 만들 수 있습니다. 하지만 데이터를 저장하는 것 외에는 논리가 없습니다."

" 세션 빈 은 기능적 빈입니다. 각 세션 빈은 자체 기능을 가지고 있습니다. 하나는 한 가지 일을 하고 다른 하나는 다른 일을 합니다. 이러한 빈은 자체 데이터가 아니라 다른 개체 및 빈과 함께 작동합니다."

" Session Bean은 두 가지 범주로 나뉩니다."

" 상태 비저장 세션 빈은 작동에 필요한 중요한 데이터를 내부 변수에 저장하지 않는 빈입니다. 이러한 유형의 빈은 파괴되었다가 다시 생성될 수 있으며 이전과 동일하게 기능을 수행합니다."

" Statefull Session Bean은 작동할 때 사용하는 데이터를 내부적으로 저장하는 bean입니다. 이러한 bean에서 메소드를 호출하면 각 후속 호출은 이전 호출에서 bean에 전달된 데이터 중 일부를 사용할 수 있습니다. 그래도 이 bean은 일반 객체와 다릅니다."

"하지만 콩을 사용하는 것도 그다지 좋지 않았기 때문에 곧 진자가 반대 방향으로 흔들렸습니다. 그리고 개발자는 일반 개체를 더 자주 사용하기 시작했습니다. 그들은 심지어 특별한 이름을 생각해 냈습니다."

" POJO 는 평범한 오래된  Java 객체 입니다 . 이러한 객체에는 수퍼 기능 없고 수퍼 객체를 상속하지 않았습니다. 그냥 일반적인 Java 객체 였습니다  .

"실제로 EJB를 알게 되면 그 차이를 이해하게 될 것입니다. 대략적으로 말하면 POJO는 칼이고 EJB는 전화를 걸 때도 사용할 수 있는 스위스 군용 칼입니다."

"재미있는 비교."

"네, 그리고 한 가지 더 있습니다."

"시간이 지남에 따라 개체와 클래스가 전문화되기 시작했습니다. 그 결과 개발자는 특정 역할을 식별하고 해당 개체에 새 이름을 부여했습니다."

"데이터 전송 개체( DTO )는 데이터를 전송하기 위해 생성된 개체입니다. 이러한 개체에는 일반적으로 두 가지 요구 사항이 있습니다. a) 데이터를 저장할 수 있어야 합니다. b) 직렬화할 수 있어야 합니다. 즉, 데이터 전송에만 사용됩니다. ."

"개체를 생성하고, 비즈니스 로직에서 필요한 데이터를 여기에 쓰고, JSON 또는 XML로 직렬화하고, 필요한 곳으로 보냅니다. 또는 그 반대로 메시지가 도착하면 DTO 개체로 역직렬화합니다. , 여기에서 데이터를 추출합니다."

" 엔터티는 데이터베이스에 저장되는 개체입니다. 그러나 비즈니스 논리는 포함하지 않습니다. 이것이 비즈니스 모델의 데이터라고 말할 수 있습니다."

"또한 데이터 액세스 개체( DAO ) 가 있습니다 . DAO는 개체를 데이터베이스에 저장하고 데이터베이스에서 검색하는 데 사용됩니다. 엔터티는 논리가 없기 때문에 이를 수행하지 않으므로 저장할 수 없습니다. 아무데나."

예:

DAO와 엔티티 간의 관계
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
코멘트
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

"지금은 여기까지입니다."

"이것은 작은 입문 수업이지만 지금 당장은 더 많은 것을 이해할 수 없을 것입니다. 우리는 이러한 각 주제에 대해 이야기하는 데 며칠을 보낼 수 있고 EJB를 다루는 데 몇 년을 보낼 수 있습니다."

"그러나 나는 당신이 대화와 메시지, 포럼 또는 인터뷰에서 이러한 것들을 접하게 될 경우 적어도 무슨 말을 하는지 상상할 수 있기를 바랍니다."

"흠. 고마워요, Bilaabo. 예, 제가 기술 용어를 충분히 모르는 것 같습니다. 다시 한 번 정말 감사합니다."