[개발 일기] 2025.05.16 - PSA (Portable Service Abstraction)

2025. 5. 16. 13:13·개발 일기

💡 개요

 

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
'개발 일기' 카테고리의 다른 글
  • [개발 일기] 2025.05.18 - Spring Flux을 많이 사용하지 않는 이유?
  • [개발 일기] 2025.05.17 - 비동기와 멀티스레딩?
  • [개발 일기] 2025.05.15 - 클래스마다 무조건 인터페이스를 생성??
  • [개발 일기] 2025.05.14 - ConfigurationProperties와 Setter
오도형석
오도형석
  • 오도형석
    형석이의 성장일기
    오도형석
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • MSA 모니터링 서비스
        • DB
      • 스파르타 코딩클럽
        • SQL
        • Spring
      • 백엔드
        • Internet
        • Java
        • DB
      • 캡스톤
        • Django
        • 자연어처리
      • Spring
        • JPA
        • MSA
      • ETC
        • ERROR
      • 개발 일기 N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 인기 글

  • 태그

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
오도형석
[개발 일기] 2025.05.16 - PSA (Portable Service Abstraction)
상단으로

티스토리툴바