2023. 5. 1. 15:03ㆍSpring Framework
POJO
POJO(Plain Old Java Object)는 자바에서 사용되는 용어로, 특별한 제약이나 종속성을 가지지 않고 일반적인 자바 객체를 말합니다. 이 용어는 자바 기술의 복잡성을 줄이기 위해 코딩 시 간단하고 투명한 방법을 사용하자는 개념에서 유래했습니다. POJO는 다음과 같은 특징을 가지고 있습니다:
- 간단성: POJO는 복잡한 프레임워크 인터페이스나 클래스를 상속받지 않습니다. 대신, 표준 자바 클래스로서 필요한 필드, 메서드(게터와 세터 포함)를 가지며, 다른 일반 자바 객체처럼 작동합니다.
- 재사용 가능성과 테스트 용이성: POJO는 의존성이 적기 때문에 다른 환경에서 재사용하기 쉽고, 단위 테스트하기에도 간편합니다.
- 투명성: POJO는 특정 프로토콜이나 환경에 종속되지 않기 때문에 코드의 명확성과 이해하기 쉬움을 제공합니다.
- 프레임워크 독립성: POJO는 특정 기술 스택에 종속되지 않기 때문에, 다양한 프레임워크와 기술에서 활용될 수 있습니다. 예를 들어, Spring이나 Hibernate 같은 프레임워크는 POJO를 이용하여 프로그래밍 모델을 제공하고, 개발자가 비즈니스 로직에 집중할 수 있도록 돕습니다.
- 직렬화가능: 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' 카테고리의 다른 글
POM.xml (0) | 2023.05.02 |
---|---|
SOLID(객체 지향 설계 원칙) (0) | 2023.05.02 |
Chapter 7 프로젝트 설정 관련 (0) | 2023.05.01 |
Separation of Concerns(관심사 분리) (0) | 2023.05.01 |
Maven Build System (0) | 2023.05.01 |