728x90
반응형
특정 기술에 종속되지 않는 순수한 자바 객체를 의미합니다.
스프링 프레임워크는 POJO 방식의 프레임워크입니다.
예시
public class testDto {
private String test1;
public String getTest1(){
return test1;
}
public void setTest1(String test1){
this.test1 = test1;
}
}
예시 코드는 기본적인 자바 기능인 getter, setter 기능만 가지고 있습니다.
EJB 등에서 사용되는 Java Bean이 아닌 Getter, Setter로 구성된 가장 순수한 형태의 기본 클래스를 POJO라 하며 EJB의 사용과 프로그램의 규모 증가로 특정 기술과 환경에 종속되어 의존하게 된 자바 코드는 가독성이 떨어져 유지보수에 어려움이 생기며 특정 기술의 클래스를 상속받거나 직접 의존하게 되어 확장성이 매우 떨어지며 객체지향성을 잃어버리게 됩니다. 객체지향성이 컸던 시절로 돌아가자는 취지로 개발되었습니다.
EJB :
- 자바 개발에 있어 로우 개발에 신경을 안 쓰고 애플리케이션을 쉽게 만드는 기술
- 객체지향성을 감소시키는 단점 존재
POJO를 지향해야 하는 이유
특정 기술과 환경에 종속되어 의존하게 된 자바 코드는 가독성이 떨어져 유지보수에 어려움이 생기면 특정 기술의 클래스를 상속받거나 직접 의존하게 되어 확장성이 매우 떨어지는 단점이 존재하면 이 말은 자바가 객체지향 설계의 장점들을 읽어버리게 된 것입니다.
POJO 기준
1. 객체지향적으로 설계되었는가
- 반복적인 템플릿 코드, 테스트하기 힘든 구조, 확장, 재활용의 어려움이 남아 있는 경우 EJB의 문제점을 안고 있는 코드
2. 테스트가 용이 한가
- 잘 만들어진 POJO는 자동화된 테스트 코드 작성이 용이
- 코드 작성이 편리하며 꼼꼼하게 만들게 되고 코드 검증, 품질 향상에 유리
- 테스트 코드베이스가 있는 경우 리팩터링 할 여유가 생기며 POJO코드를 좀 더 나은 설계구조로 변경 가능
728x90
반응형
'백수 > java' 카테고리의 다른 글
16. 상속과 컴포지션(합성)의 차이에 대해서 설명해보세요 (0) | 2023.08.07 |
---|---|
14. 박싱과 언박싱에 대해 설명하세요 (0) | 2023.08.03 |
12. 컬렉션 클래스에서 제네릭을 사용하는 이유를 설명하세요 (0) | 2023.07.31 |
11. 제너릭이 무엇인가요? (0) | 2023.07.28 |
MyBatis 란 (0) | 2023.07.27 |