PSA(Portable Service Abstraction) 란?

YOBY·2023년 9월 14일
0

PSA는 스프링이 제공하는 다양한 기술들을 추상화하여 일관된 방식으로 사용할 수 있게 해주는 개념입니다.

PSA를 사용하면 코드의 일관성과 유지보수성을 향상시킬 수 있습니다.

PSA가 적용된 코드라면 나의 코드가 바뀌지 않고, 다른 기술로 간편하게 바꿀 수 있도록 확장성이 좋고, 기술에 특화되어 있지 않는 코드를 의미합니다.

Spring은 Spring Web MVC, Spring Transaction, Spring Cache, JdbcTemplate 등의 다양한 PSA를 제공합니다.


JdbcTemplate사용 예시

@Repository
public class UserRepository {
    
    @Autowired
    private JdbcTemplate jdbcTemplate;

    public String getUserName(int userId) {
        String sql = "SELECT name FROM users WHERE id = ?";
        String userName = jdbcTemplate.queryForObject(sql, new Object[]{userId}, String.class);
        return userName;
    }
}

위 코드에서 UserRepository는 데이터베이스에서 정보를 가져오는 레포지토리입니다.
JdbcTemplate을 Autowired로 주입받아서 사용합니다.
getUserName 메서드에서는 SQL 쿼리를 실행하고 결과를 가져오는데, queryForObject 메서드를 사용하여 간단히 처리하고 있습니다.


이러한 PSA들을 사용하면 개발자는 스프링이 제공하는 표준화된 인터페이스를 활용하여 다양한 기술을 쉽게 사용할 수 있습니다.
PSA는 유지보수와 확장이 더 쉽도록 도와줍니다.

0개의 댓글