🌳 < Portable Service Abstraction ? >
Portable Service Abstraction은 줄여서 PSA라고 부르며, '이식 가능한 서비스 추상화'라는 뜻을 가지고 있다.
이는 Spring이 제공하는 다양한 기술을 추상화하여 Dev가 쉽게 사용할 수 있는 Interface를 제공하는 것을 의미한다.
그럼 이것이 왜 필요한지, 실제로 어떻게 활용되는지 알아보자.
🔥 < PSA의 활용 예시 >
PSA는 Client의 Mapping과 Class, Method의 Mapping을 위한 Annotation을 포함한다.
그리고 Spring DataBase에 접근하기 위한 기술로는 JPA,MyBatis,JDBC 등이 있지만, 이 중 어떤 기술을 사용하더라도 일관된 방식으로 DataBase에 접근할 수 있도록 Interface를 제공한다.
또한, Web Application Server(WAS)역시 PSA의 좋은 예시라고 볼 수 있다.
PSA 덕분에 Dev는 코드 변경 없이, Tomcat,Undertow,Jetty 등 다양한 WAS에서 실행할 수 있기 때문이다.
📟 < Spring과 PSA >
Spring의 주요 개념인 IoC(Inversion of Control),DI(Dependecy Injection),AOP(Aspect-Oriented Programming),PSA(Portable Service Abstraction)은 Spring의 근간을 이루고 있다. 이러한 개념들을 활용한다면, Spring을 더욱 효과적으로 사용할 수 있게 된다.
Spring FrameWork는 IoC/DI를 통해 객체 간 의존 관계를 설정하며, AOP를 통해 핵심 관점과 부가 로직을 분리해 개발하며, PSA를 통해 추상화된 다양한 Service들을 일관된 방식으로 사용하도록 한다.
Spring의 핵심 4가지 | |
IoC | 제어 흐름을 개발자가 아닌 프레임워크가 관리 |
DI | 외부에서 프레임워크가 주입하여 관리 |
AOP | 공통 사용 기능을 분리하여 관리(핵심,부가 관점) |
PSA | 다양한 환경,기술에도 일관된 개발이 가능하도록 인터페이스를 제공하는 개념 |
출처:스프링 부트 3 백엔드 개발자 되기 - 자바 편
http://www.yes24.com/Product/Goods/118625612
'스프링부트' 카테고리의 다른 글
@SpringBootConfiguration/@ComponentScan/@EnableAutoConfiguration (0) | 2023.05.18 |
---|---|
@SpringBootApplication (0) | 2023.05.18 |
관점 지향 프로그래밍(Aspect Oriented Programming) (0) | 2023.05.18 |
Bean / Spring Container (0) | 2023.05.18 |
IoC(Inversion of Control)/DI(Dependency Injection) (0) | 2023.05.18 |