HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📝
남득윤 학습 저장소
/
Spring Framework
Spring Framework
/
🔺
IOC/AOP/PSA
/
PSA, Portable Service Abstract
PSA, Portable Service Abstract
PSA, Portable Service Abstract

PSA, Portable Service Abstract

 
  • 환경과 기술의 변화에 상관없이 일관된 방식으로 기술을 사용(접근)할 수 있게 해주는 추상화
  • POJO의 원칙에 부합되는 개념이다.
  • 스프링은 JAVA의 복잡한 라이브러리들을 추상화 시켜 편리하게 사용하도록 해준다.
  • @Transactional, @Cacheable과 같은 인터페이스를 제공해서 내부 구현체를 추상화하고 쉽게 사용가능하도록 해준다.
  • Tomcat 과 Netty 를 의존성만 변경하면 사용할 수 있는 것도 PSA 를 통해 추상화되어있기 때문에 가능하다.
  • 개발자는 로직에만 집중할 수 있다.
 
e.g.)
  • Was 를 tomcat 에서 undertow 로 변경하기 위해 mvc 의존성을 webmvc 에서 webflux 로 바꾸어 주기만 하면 Controller 레이어의 변경이 없이 가능하다.
 
  • Repository 의 구현을 Jdbc에서 Jpa 로 바꾸어도 PlatformTransactionManager 의 구현체를 DataSourceTransactionManager 에서 JpaTransactionManager, 로 바꾸는 작업은 설정으로 자동으로 이루어 지기때문에 서비스 계층의 코드 변경이 없이 가능하다.
 
  • Spring 캐시 역시 다양한 CacheManager 의 구현을 어노테이션(@Cacheable) 만으로 편리하게 제공하며 구현체를 변경할 수 있다.