POJO(Plain Old Java Object)는 특정 프레임워크나 환경에 종속되지 않고 순수한 자바 언어로 작성된 객체를 의미합니다. 스프링을 비롯한 다양한 프레임워크에서 POJO는 프레임워크에 의존하지 않고 독립적인 비즈니스 로직을 작성할 수 있도록 하는 객체로, 개발자가 쉽게 사용할 수 있는 단순한 구조를 갖추고 있습니다.
getter
와 setter
메서드를 통해 필드에 접근하고, 복잡한 상속 구조나 프레임워크의 특별한 인터페이스를 구현하지 않습니다. 단순한 클래스 구조를 갖추고 있어 유지보수가 용이합니다.스프링 프레임워크는 POJO를 기반으로 동작하며, POJO 객체를 관리하고 DI(Dependency Injection)와 AOP(Aspect-Oriented Programming)를 통해 객체 간의 관계를 설정하고 로직을 보조하는 방식으로 개발이 이루어집니다. 스프링은 객체 간의 관계 설정 및 부가적인 기능을 제공하면서도 POJO의 단순성을 유지할 수 있도록 설계되었습니다.
아래는 POJO의 예제로, 단순한 User
객체를 보여줍니다.
public class User {
private String name;
private int age;
public User() {}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void printUserInfo() {
System.out.println("User: " + name + ", Age: " + age);
}
}
이 User
클래스는 순수하게 자바 표준만을 사용하여 작성된 POJO입니다. 스프링 IoC 컨테이너에 의해 빈으로 관리될 때도, 스프링은 이 객체에 아무런 변경을 가하지 않고 필요한 의존성을 주입하거나 초기화 메서드를 호출하는 방식으로 다룰 수 있습니다.
POJO는 코드의 독립성과 유지보수성을 보장하면서도 스프링과 같은 프레임워크가 제공하는 다양한 기능을 쉽게 활용할 수 있게 해줍니다. 이를 통해 개발자는 비즈니스 로직에만 집중할 수 있으며, 프레임워크에 종속적이지 않은, 단순하고 재사용 가능한 코드를 작성할 수 있습니다.