POJO(Plain Old Java Object)와 EJB(Enterprise JavaBean)의 차이는 다음과 같습니다:


---

✅ 1. 개념

항목 POJO EJB

의미 일반적인 자바 객체 (특별한 규약 없음) 자바 EE의 서버 사이드 컴포넌트 (특정 규약과 컨테이너 필요)
목적 단순한 데이터 저장, 비즈니스 로직 분산 환경, 트랜잭션, 보안, 리소스 관리 등 복잡한 엔터프라이즈 기능 제공



---

✅ 2. 기능과 제약

항목 POJO EJB

의존성 라이브러리나 프레임워크에 의존하지 않음 Java EE 컨테이너에 의존
애노테이션 필요 없음 (또는 가볍게 사용) @Stateless, @Stateful, @EJB, @TransactionAttribute 등 필수
트랜잭션 직접 구현해야 함 컨테이너가 트랜잭션 관리
보안 직접 구현해야 함 컨테이너 기반 보안 제공
라이프사이클 개발자가 직접 관리 컨테이너가 라이프사이클 관리



---

✅ 3. 사용 환경

항목 POJO EJB

배포 방식 어느 환경이든 사용 가능 (Spring, Java SE 등) Java EE 애플리케이션 서버에서만 작동
유연성 매우 유연, 테스트 용이 무겁고 테스트 어려움
성능 경량 무겁고 성능 저하 우려 있음



---

✅ 4. 예시 코드

◾ POJO 예시

public class User {
    private String name;
    private int age;

    // Getter & Setter
}

◾ EJB 예시 (Stateless Bean)

import javax.ejb.Stateless;

@Stateless
public class UserService {
    public void register(User user) {
        // 비즈니스 로직
    }
}


---

✅ 요약

구분 POJO EJB

목적 단순 로직, 객체 엔터프라이즈 기능 포함
의존성 없음 Java EE 컨테이너
테스트 쉬움 어려움
트랜잭션 수동 자동 (컨테이너 제공)
보안 수동 자동 (컨테이너 제공)



---

✅ 결론

POJO는 단순성과 유연성에 중점을 둔 객체.

EJB는 엔터프라이즈 기능을 갖춘 무거운 컴포넌트.

현재는 Spring Framework처럼 POJO를 기반으로 하면서도 EJB의 기능을 대체하는 기술이 많이 사용됨.




LIST

+ Recent posts