[Spring] Spring의 특징 - POJO

·2022년 10월 11일
0

Spring

목록 보기
2/24
post-thumbnail

POJO

Spring은 POJO 프로그래밍을 지향하는 프레임워크이다.
다른 환경이나 기술에 종속적이지 않도록 하기 위해 Spring에서는 IOC/DI, AOP, PSA 세가지 기술을 지원한다.

Plain Old Java Object

"오래된 방식의 순수한 자바 오브젝트"

  • 자바 언어 사양 외에 어떠한 제한에도 묶이지 않은 자바 오브젝트

위키백과; 인용된 말이 제법 웃김

💡POJO: 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트.
POJO 프로그래밍: POJO에 애플리케이션 핵심로직과 기능을 담아 설계하고 개발하는 방법

POJO의 규칙

1. 특정 규약에 종속되지 않는다.

  • 자바와 꼭 필요한 API외에는 종속되지 않아야 한다.
    • 특정 기술을 사용하기 위해서 대부분 제시하는 특정 클래스를 상속하도록 요구한다. 그러나 자바의 경우 단일 상속 제한이 있기 때문에 해당 클래스는 객체 지향적인 설계 기법을 적용하기 어려워지는 문제가 발생한다.

2. 특정 환경에 종속적이지 않는다.

  • 환경에 독립적이어야 하며 POJO 클래스는 웹이라는 환경 정보나 웹 기술을 담고 있는 클래스나 인터페이스를 사용해서는 안된다.

3. 객체 지향적 원리에 충실해야 한다.

  • 객체 지향적 원리 : 상속, 캡슐화, 다형성, 추상화
  • 상속과 다형성을 적용한 클래스가 아닌 조건문으로 가득 찬 클래스의 오브젝트는 POJO라고 부르기 힘들다.

POJO의 장점

  • 간결하고 깔끔하게 코드를 작성할 수 있다.

  • 간편하게 테스트를 할 수 있다.

    • 코드가 간결해져 디버깅이 상대적으로 쉬워진다.
    • 특정 기술이나 환경에 종속적이지 않기 때문에 테스트가 쉬워진다.
  • 객체지향적인 설계를 자유롭게 적용할 수 있다.

    💡 객체 지향 설계 원칙 심화 학습
    SOLID
    SOLID 원칙

profile
🧑‍💻백엔드 개발자, 조금씩 꾸준하게

0개의 댓글