본문 바로가기

스프링

[spring이란] IOC(DI)_ AOP_PSA_POJO이론_어댑터패턴

 

 

 

 

 

 

 

 

경량급

 

 

 

 

 

오픈소스

 

 

 

 

 

 

스프링의 목적

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

POJO

 

 

 

 

POJO

 

 

 

 

 

 

 

 

 

POJO : 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트

 

 

 

 

 

 

 

 

스프링은 POJO(객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트) Framework

 

 

 

 

PSA(Portable Service Abstraction) : 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하려는 추상화 구조(PlatformTransactionManager(JTA), OXM)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

어댑터 패턴 : 클라이언트에서 사용하는 인터페이스(B)C오브젝트를 사용할 때 CB 인터페이스를 구현하지 않았다. 이 때 B인터페이스를 구현했으면서 내부에서 C를 호출해주는 기능을 가진 어댑터 오브젝트를 만들어 ADI 해주는 패턴.

 

 

 

OCP(Open-Close Principle) : 확장에는 열려있고 변경에는 닫히게 하라

 

 

상태를 갖지 않는 오브젝트가 여러 스레드의 요청을 처리하는 방식의 싱글톤 오브젝트를 지원한다. 또한, HTTP 요청당 하나의 오브젝트가 만들어지거나, HTTP 세션당 하나씩 오브젝트가 만들어지게도 할 수 있다. 개발자 스스로 일정한 스코프를 갖는 오브젝트를 만들고 이를 DI에 적용하는 것도 가능하다.

 

 

테스트에도 DI는 중요하다.

 

 

AOP : 객체지향 기술은 매우 성공적인 프로그래밍 방식이지만, 점점 복잡해져 가는 애플리케이션 요구조건과 기술적인 난해함을 모두 해결하는데 한계가 있다. AOP를 사용하면 객체지향 기술의 한계와 단점을 극복하도록 도와주는 보조적인 프로그래밍 기술이다.

 

 

 

 

 

 

 

 

 

 

 

 

PSA(Portable Service Abstraction) 포터블 서비스 추상화

 

 

 

 

* 엔터프라이즈 애플리케이션 : 서버에서 동작하며 기업과 조직의 업무를 처리해주는 시스템. 많은 사용자의 요청을 동시에 처리해야 하기 때문에 서버의 자원을 효율적으로 공유하고 분배해서 사용할 수 있어야한다.

POJO : 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트