PSA (Portable Service Abstraction - 서비스 추상화)
PSA는 추상화의 개념을 application에서 사용하는 서비스에 대입하여 적용하는 방법이다.
Application의 특정 서비스(어떠한 구현된 기능)를 이용할 때,
해당 서비스의 기능에 접근하는 방식 자체를 일관되도록 유지함과 동시에,
기술 자체를 유연하게 사용할 수 있게 하는 것이 핵심 개념이다.
Dependency Injection의 '느슨한 결합(Loose Coupling)'과 연관되는 개념인 것 같이 느껴진다.
예 ) 추상화 된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것
예2) 인터페이스를 통해 간접적으로 연결되어(느슨한 결합) 구현된 기능 사용
-참고-
서버 - 클라이언트 관계의 관점에서는 서버 측의 기능을 사용하는 쪽을 클라이언트라고 한다.
코드를 작성할 때의 단계에서 본다면,
특정 클래스의 기능을 이용하는 측 역시 클라이언트라고 부른다.
Spring에서는 트랜잭션 서비스, 메일 서비스, Spring Data 서비스 등이 PSA가 적용되어 있다.
결론
PSA를 쓰는 이유
Application의 요구 사항을 변경하는 상황에서 유연하게 대처할 수 있다.
'programming > SPRING' 카테고리의 다른 글
AOP - Pointcut 표현식 / 지시자 (0) | 2022.06.20 |
---|---|
AOP - Advice (0) | 2022.06.20 |
[TBC]IoC 와 DI (0) | 2022.06.18 |
Spring Framework (0) | 2022.06.14 |
POJO(Plain Old Java Object) (0) | 2022.06.14 |