💡 개요
PSA (Portable Service Abstraction)가 Spring의 3대 요소중 하나라는데, 이게 뭘까?
아니 애초에 Spring의 3대 요소가 뭐지..?
🛠️ PSA (Portable Service Abstraction)
PSA란 Spring 프레임워크가 제공하는 서비스 추상화 계층으로, 특정 기술이나 구현체에 종속되지 않고 다양한 기술을 손쉽게 교체하거나 사용할 수 있도록 도와주는 개념이다.
쉽게 설명하자면 그냥 우리가 인터페이스를 사용하는 이유인 것이다.
인터페이스를 잘 사용하면 특정 라이브러리나 구현체에 직접 의존하지 않을 수 있고, 이 덕분에 개발자는 구현체의 세부사항을 몰라도, Spring이 제공하는 추상화된 API만 이용해서 개발할 수 있다.
PSA가 잘 적용된 Spring 기술은 다음과 같다.
🔸 PSA 예시
분야 | 추상화된 인터페이스 | 구현체 |
데이터 접근 | JdbcTemplate / JpaRepository | JDBC, Hibernate, JPA |
트랜잭션 관리 | PlatformTransactionManager | JDBC, JPA, JTA 등 |
메시징 | MessageChannel, MessageHandler | RabbitMQ, Kafka 등 |
캐시 | CacheManager, @Cacheable | EhCache, Redis 등 |
스케줄링 | TaskScheduler, @Scheduled | Quartz, Timer 등 |
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.05.18 - Spring Flux을 많이 사용하지 않는 이유? (0) | 2025.05.18 |
---|---|
[개발 일기] 2025.05.17 - 비동기와 멀티스레딩? (1) | 2025.05.17 |
[개발 일기] 2025.05.15 - 클래스마다 무조건 인터페이스를 생성?? (0) | 2025.05.15 |
[개발 일기] 2025.05.14 - ConfigurationProperties와 Setter (0) | 2025.05.14 |
[개발 일기] 2025.05.13 - 자바 Optional 정리 (0) | 2025.05.13 |