Spring Triangle PSA 그리고 DIP

김형진·2023년 6월 27일
0

Spring에는 Spring Triangle이라고 불리는 스프링의 3대 핵심 요소들이 있는데
IoC, AOP, PSA를 말한다.

이 중 PSA(Portable Service Abstraction) 는 다양한 기술과 라이브러리에 대해 일관된 추상화를 제공하여 개발자가 특정 기술에 너무 많이 의존하지 않도록 돕는다. 이를 통해 개발자는 비즈니스 로직에 집중하면서 필요에 따라 기술을 쉽게 교체할 수 있다.

스프링에서 구현된 PSA의 예는 다음과 같다.

  1. Spring JDBC Template

    JDBC를 이용한 데이터베이스 작업은 반복적인 코드 작성이 필요하며, 예외 처리 또한 복잡하다. Spring의 JDBC Template는 이러한 저수준 작업을 추상화하여 개발자가 SQL 쿼리 실행에만 집중할 수 있게 해준다.

  2. Spring Transaction Management

    Spring은 선언적 트랜잭션 관리를 통해 개발자가 다양한 트랜잭션 API(JTA, JDBC, Hibernate 등)에 직접적으로 의존하지 않고 일관된 프로그래밍 모델을 통해 트랜잭션을 관리할 수 있게 해준다.

  3. Spring MVC

    Spring MVC는 Servlet API를 직접 다루는 대신, 컨트롤러와 서비스 계층 사이의 추상화 계층을 제공하여 웹 애플리케이션 개발을 단순화한다.

  4. Spring Security:

    Spring Security는 인증 및 인가와 같은 보안 관련 작업을 추상화하여 개발자가 쉽게 보안 기능을 구현할 수 있게 해준다.

DIP

DIP(Dependency Inversion Principle)는 SOLID의 원칙 중 하나로, 상위 모듈이 하위 모듈에 의존하지 않도록, 둘 다 추상화에 의존하게 만드는 설계 원칙이다.
Java 어플리케이션은 외부 기술에 직접 의존하지 않고 추상화에만 의존하며 외부기술은 그 추상화를 구현한다.

이러한 맥락에서는 PSA는 DIP의 원칙을 따라 구현되었다고도 할 수 있다.

profile
히히

0개의 댓글