PSA는 다양한 기술과 서비스를 추상화하여 일관된 방식으로 다룰 수 있도록 도와주는 개념입니다. 이번 포스팅은 스프링 프레임워크 핵심 개념 시리즈의 마지막 포스팅으로 PSA(Portable Service Abstraction)에 대해 알아보겠습니다.

✅ PSA (Portable Service Abstraction)
: PSA는 '이식가능한 서비스 추상화'라고 직역된다. PSA는 스프링에서 제공하는 개념으로, 다양한 기술들을 일관된 방식으로 다룰 수 있도록 도와주는 추상화된 인터페이스와 패턴을 말한다. 쉽게 말해, PSA는 다양한 기술을 하나의 통일된 방식으로 사용할수 있도록 도와주는 것이다.
✅ 스프링에서 PSA 예시
1. 데이터 접근
데이터베이스에 접근하기 위한 기술로 *JPA, *JDBC 같은 것들이 있는데, 둘 중 어떤 기술을 사용하더라고 일관된 방식으로 데이터베이스에 접근하도록 인터페이스를 지원함.
2. WAS
WAS를 톰캣이 아닌 언더토우 , 네티와 같은 다른 곳에서 실행하더라고 기존 코드를 그대로 사용할 수 있음.
* JDBC Template
: 다양한 데이터베이스에 대해 통일된 인터페이스를 제공함. 여러 종류의 데이터베이스에 접근하더라도 일관된 방식으로 데이터베이스 작업을 할 수 있게 해준다. 이를 통해 데이터베이스마다 다른 쿼리 작성 방식을 배우지 않아도 되며, 특정 데이터베이스에 종속되지 않는 데이터 액세스 코드를 작성할 수 있습니다.
* JPA
: JPA를 활용하여 데이터베이스와의 상호작용을 추상화하고 편리한 CRUD (Create, Read, Update, Delete) 기능을 제공한다. JPA는 ORM(Object-Relational Mapping)을 위한 API로, 데이터베이스와 객체 지향 프로그래밍 간의 매핑을 도와준다.