본문 바로가기

공부 자료/Spring

[Spring Core] PSA (Portable Service Abstraction)

Spring 삼각형 -PSA

 

PSA(Portable Service Abstraction)란?

: '일관된 서비스 추상화'로 클라이언트가 추상화된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것

: 환경 변화에 상관없이 일관된 방식으로 제공하는 추상화 구조로 인터페이스에서 추상 메서드를 만드는 것 처럼 추상화된 서비스를 통해 환경이 바뀌어도 활용할 수 있어야 하며, DI를 활용해 사용할 객체만 바꿔주도록 구현이 가능함

 

  추가개념)

  * 추상화(Abstraction)

  : 클래스의 본질적인 특성만을 추출해서 일반화 하는 것

  : 대표적 방법은 추상 클래스와 인터페이스가 존재

 

  * 추상화 사용 이유

  : 상위 클래스에서 일반화 시켜놓은 것을 구체화시켜서 사용할 수 있음 (사용하면서 구체화 클래스의 객체를 자신의 타입에 할당하는 것이 아닌 상위 클래스 변수에 할당하여 접근하기 때문에 상위 클래스인 추상 클래스만 일관되게 바라보며 하위 클래스 기능을 사용)

 

 

PSA 서비스에 적용하는 일관된 서비스 추상화 기법

: 서비스의 기능을 접근하는 방식 자체를 일관되게 유지하면서 기술 자체를 유연하게 사용할 수 있도록 하는 것

  * 서비스 추상화 : 추상화의 개념을 애플리케이션에서 사용하는 서비스에 적용하는 기법

 

PSA 필요 이유

: 어떤 서비스를 이용하기 위한 접근 방식을 일관된 방식으로 유지함으로써 애플리케이션에서 사용하는 기술이 변경되더라도 최소한의 변경만으로 변경된 요구 사항을 반영하기 위함 (즉, 애플리케이션 요구 사항 변경에 유연한 대처 가능)