POJO(Plain Old Java Object)
단순한 자바 오브젝트
객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트
프레임워크 인터페이스, 클래스를 구현하거나 확장하지 않은 단순한 클래스
Java에서 제공하는 API외 다른 요소에 종속되지 않음
특정 규약과 환경에 종속되지 않아 코드가 간결하고 테스트 자동화에 유리함
(특정 기업의 프레임워크나 서버에서만 동작가능한 코드라면 POJO라 할 수 없음)
장점
- 깔끔한 코드
- 간편한 테스트
- 객체지향적인 설계를 자유롭게 적용
POJO 방식으로 클래스 만들어보기
public class Student {
String name;
private int marks;
public int rollNo;
public Student(String name, int rollNo, int marks){
this.name = name;
this.rollNo = rollNo;
this.marks = marks;
}
public String getName(){
return name;
}
public String getRollNo(){
return rollNo;
}
public String getMarks(){
return marks;
}
class PojoMain{
public static void main(String[] args){
Student s = new Student("aaa", 101, 23);
s.name = "aaa bbb";
System.out.println(s.getName());
System.out.println(s.getRollNo());
System.out.println(s.getMarks());
}
}
}
POJO프레임워크
POJO 프로그래밍이 가능하도록 기술적인 기반을 제공하는 프레임워크
스프링 프레임워크에서 POJO
최대한 다른 환경이나 기술에 종속적이지 않도록 하기 위한 POJO 프로그래밍 코드를 작성하기 위해 Spring 프레임워크에서는 IoC/DI, AOP, PSA를 지원
쇼핑몰 사이트를 예로 들었을 때, 주문, 상품, 사용자 등의 도메인 객체는 순수한 자바 객체로 구현되어 비즈니스 로직을 포함할 수 있음
결론
POJO는 프레임워크 인터페이스, 클래스를 구현하거나 확장하지 않은 단순한 클래스로
특정 규약과 환경에 종속되지 않아 코드가 간결하며, 테스트 자동화에 유리하고 유연한 개발이 가능합니다.
스프링 프레임워크에서는 도메인, 비즈니스 로직을 수행하는 대상이 POJO에 해당한다고 볼 수 있습니다.
'스터디 > 소연' 카테고리의 다른 글
Spring Web MVC에서 요청 마다 Thread가 생성되어 Controller를 통해 요청을 수행할텐데, 어떻게 1개의 Controller만 생성될 수 있을까요? (0) | 2024.04.24 |
---|---|
스프링 Bean의 Scope에 대해서 설명해주세요. (1) | 2024.04.18 |
자료형 - HashSet, HashMap (0) | 2024.04.11 |
자료형 - Array / ArrayList / LinkedList (0) | 2024.04.11 |
자료형 - String / StringBuffer (0) | 2024.04.11 |