Spring Framework_POJO

Albatross53·2023년 3월 31일
0

Spring Framework

목록 보기
2/3
post-custom-banner

POJO(Plain Old Java Object)란?

위 그림은 Spring 삼각형이라는 유명한 그림입니다.
위 그림에서 POJO는 Spring에서 사용하는 핵심 개념들에 둘러 싸여져 있는 모습입니다. 이는 POJO라는 것을 IoC/DI, AOP, PSA를 통해서 달성할 수 있다는 것을 의미합니다.
POJO에서 ‘PO’는 여러분이 이미 배웠던 Java로 생성하는 순수한 객체를 의미

POJO 프로그래밍이란?
POJO 프로그래밍이란 POJO를 이용해서 프로그래밍 코드를 작성하는 것을 의미합니다.
그런데 단순히 순수 자바 객체만을 사용해서 프로그래밍 코드를 작성한다라고 해서 POJO 프로그래밍이라고 볼 수는 없습니다.

  • Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다.
  • 특정 환경에 종속적이지 않아야 한다.

POJO 프로그래밍이 필요한 이유
POJO 프로그래밍이 필요한 이유는 앞에서 설명한 예시에 잘 나와 있습니다.

특정 환경이나 기술에 종속적이지 않으면 재사용 가능하고, 확장 가능한 유연한 코드를 작성할 수 있다.
저수준 레벨의 기술과 환경에 종속적인 코드를 애플리케이션 코드에서 제거 함으로써 코드가 깔끔해진다.
코드가 깔끔해지기 때문에 디버깅하기도 상대적으로 쉽다.
특정 기술이나 환경에 종속적이지 않기 때문에 테스트 역시 단순해진다.
객체지향적인 설계를 제한없이 적용할 수 있다.(가장 중요한 이유)

핵심 포인트
POJO란 순수한 Java 객체를 의미한다.
POJO 프로그래밍이란 순수 Java 객체가 다른 기술이나 환경에 종속되지 않도록 하기 위한 프로그래밍 기법이다.
POJO 프로그래밍을 효과적으로 적용하기 위해서는 특정 기술에 대한 지식보다는 JDK의 API에 대한 지식과 객체지향적인 사고방식과 설계를 위한 훈련이 우선시 되어야 한다.
Spring Framework은 POJO 프로그래밍을 지향하기 위해 IoC/DI, AOP, PSA 라는 기술을 제공한다.

POJO와 Spring Framework의 관계
Spring Framework를 사용하기 전에는 원하는 특정한 기술이 있다면 해당 기술을 직접적으로 사용하는 객체를 만들어 사용했습니다. 다만 프로젝트가 커지고 필요한 기술들이 늘어나며 특정한 기술과 환경에 종속되는 경우가 자주 발생하여 작성된 코드의 유지/보수가 어렵고 특정 클래스를 상속받게 되어 기능의 확장이 어려운 경우도 많이 생겼습니다. 좋은 객체지향 설계를 할 수 있는 Java언어를 사용하면서도 결국 객체지향 설계 본질을 잃어버리는 문제점들을 해결하고자 POJO라는 개념이 등장하게 되었습니다.

profile
개발공부중
post-custom-banner

0개의 댓글