POJO(Plain Old Java Object)

2023. 5. 1. 15:03Spring Framework

POJO

POJO(Plain Old Java Object)는 자바에서 사용되는 용어로, 특별한 제약이나 종속성을 가지지 않고 일반적인 자바 객체를 말합니다. 이 용어는 자바 기술의 복잡성을 줄이기 위해 코딩 시 간단하고 투명한 방법을 사용하자는 개념에서 유래했습니다. POJO는 다음과 같은 특징을 가지고 있습니다:

  1. 간단성: POJO는 복잡한 프레임워크 인터페이스나 클래스를 상속받지 않습니다. 대신, 표준 자바 클래스로서 필요한 필드, 메서드(게터와 세터 포함)를 가지며, 다른 일반 자바 객체처럼 작동합니다.
  2. 재사용 가능성과 테스트 용이성: POJO는 의존성이 적기 때문에 다른 환경에서 재사용하기 쉽고, 단위 테스트하기에도 간편합니다.
  3. 투명성: POJO는 특정 프로토콜이나 환경에 종속되지 않기 때문에 코드의 명확성과 이해하기 쉬움을 제공합니다.
  4. 프레임워크 독립성: POJO는 특정 기술 스택에 종속되지 않기 때문에, 다양한 프레임워크와 기술에서 활용될 수 있습니다. 예를 들어, Spring이나 Hibernate 같은 프레임워크는 POJO를 이용하여 프로그래밍 모델을 제공하고, 개발자가 비즈니스 로직에 집중할 수 있도록 돕습니다.
  5. 직렬화가능: POJO는 자바의 직렬화 인터페이스를 구현할 수 있어, 네트워크를 통한 객체의 전송이나 객체의 영속화가 필요할 때 유용하게 사용됩니다.
public class Person {
    // 필드 (private으로 캡슐화)
    private String name;
    private int age;

    // 매개변수가 없는 생성자
    public Person() {
        // 기본 생성자
    }

    // 매개변수가 있는 생성자
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // name 필드에 대한 게터 메서드
    public String getName() {
        return name;
    }

    // name 필드에 대한 세터 메서드
    public void setName(String name) {
        this.name = name;
    }

    // age 필드에 대한 게터 메서드
    public int getAge() {
        return age;
    }

    // age 필드에 대한 세터 메서드
    public void setAge(int age) {
        this.age = age;
    }
}

이러한 특징 때문에 POJO는 자바 기반의 애플리케이션 개발에서 널리 활용되며, 간단하면서도 강력한 개발 방식을 제공합니다.

POJO Vs JavaBeans

POJO(Plain Old Java Object)와 JavaBeans는 자바 프로그래밍 언어에서 사용되는 두 가지 종류의 객체지만, 서로 목적과 특징에 차이가 있습니다. 그들의 관계를 이해하려면 먼저 각각의 특징을 알 필요가 있습니다.

POJO (Plain Old Java Object)

  • 목적: 자바의 복잡성을 최소화하고, 간단하게 객체를 정의하려는 목적으로 사용됩니다.
  • 특징: 복잡한 클래스 계층이나 프레임워크에 의존하지 않고, 순수한 자바 객체로 구성됩니다. 어떠한 클래스를 상속받거나 인터페이스를 구현하지 않아도 되며, 특별한 제약을 받지 않습니다.

JavaBeans

  • 목적: 컴포넌트 기반의 소프트웨어 엔지니어링에 사용됩니다. 재사용 가능하고 캡슐화된 여러 속성을 갖는 객체를 생성하기 위해 사용됩니다.
  • 특징: JavaBeans는 특별한 명명 규칙과 설계 규칙을 따릅니다. 주로 프라이빗 필드와 이 필드에 접근할 수 있는 퍼블릭 getter 및 setter 메서드를 포함합니다. 또한 직렬화 가능해야 하고, 파라미터가 없는 생성자를 가지고 있어야 합니다.

POJO와 JavaBeans의 관계

POJO와 JavaBeans는 모두 자바 객체지만, JavaBeans는 좀 더 특정한 규칙과 구조를 따라야 하는 반면, POJO는 그러한 제약이 없습니다. JavaBeans는 POJO의 하위 집합으로 볼 수 있으며, 모든 JavaBeans는 POJO이지만 모든 POJO가 JavaBeans는 아닙니다. POJO는 단순하고 제약이 적어 다양한 형태로 구현될 수 있지만, JavaBeans는 컴포넌트 개발에 필요한 일련의 규칙을 따라야 합니다.

이 두 용어는 서로 연관되어 있지만, JavaBeans가 더 엄격한 규칙을 갖고, 그 기능을 특정 방식으로 구현해야 한다는 점에서 차이가 있습니다. JavaBeans는 프로퍼티, 이벤트, 리스너와 같은 요소를 사용하여 컴포넌트 기반의 개발에 적합하도록 설계되어 있습니다.

'Spring Framework' 카테고리의 다른 글

원칙과 패턴 - OCP(Open-Closed Principle)  (0) 2023.05.02
Chapter 7 프로젝트 설정 관련  (0) 2023.05.01
Spring Resource  (0) 2023.05.01
Separation of Concerns(관심사 분리)  (0) 2023.05.01
Maven Build System  (0) 2023.05.01