본문 바로가기

CS

[Spring] 03. AOP(관점 지향 프로그래밍)과 PSA(서비스 추상화)

반응형

💡 먼저 이전 글을 읽고 오자!


 

 스프링 프레임워크는 객체 지향 프로그래밍의 장점을 극대화하기 위한 여러 기법을 도입하고 있다. 그 중에서도 AOP(Aspect-Oriented Programming)와 PSA(Portable Service Abstraction)**는 각각 코드의 재사용성을 높이고, 다양한 서비스와의 유연한 통합을 가능하게 하는 핵심 개념이다. 이러한 기법들은 개발자가 비즈니스 로직에 집중하면서도, 시스템의 유지보수성과 확장성을 높일 수 있도록 돕는다.

 

⓵   AOP(Aspect-Oriented Programming)  

 관점 지향 프로그래밍이라고 불리는 개념은, 공통 기능을 비즈니스 로직과 분리해주는 개념이다. 예를 들어, 로그 기록이나 보안 체크 같은 기능을 모든 메서드에 추가해야 할 때, AOP를 사용하면 코드에 직접 추가하지 않고도 한 번에 적용할 수 있다.

출처 : 스프링 부트 3 백엔드 개발자 되기 : 자바편 :: 신선영
출처 : 스프링 부트 3 백엔드 개발자 되기 : 자바편 :: 신선영

 

 

⓶  PSA (Portable Service Abstraction)  

 PSA는 하나의 통합된 인터페이스로 데이터베이스, 메시징, 트랜잭션 등의 다양한 기술을 유연하게 사용할 수 있게 해주는 스프링의 개념이다. 예를 들어, 특정 데이터베이스(DB) 기술에 의존하지 않고 JPA, MyBatis, JDBC 등 다양한 접근 방법을 사용할 수 있다.

 뿐만 아니라, WAS에서도 PSA를 적용할 수 있어, 톰캣, 언더토우, 제티 등 다양한 환경에서 실행 가능하다.

 


1️⃣ IoC (Inversion of Control)
객체의 생성과 관리를 개발자가 아닌 스프링 컨테이너가 담당하여, 제어의 흐름을 역전

2️⃣ DI (Dependency Injection)
객체가 필요로 하는 의존성을 외부에서 주입받아 사용함으로써 객체 간 결합도를 낮추고 유연성을 높임

3️⃣ AOP (Aspect-Oriented Programming)
 공통 기능을 핵심 비즈니스 로직과 분리하여, 여러 곳에 중복 없이 적용할 수 있도록 하는 프로그래밍 기법

4️⃣ PSA (Portable Service Abstraction)
 다양한 기술을 일관된 인터페이스로 사용할 수 있게 하여, 특정 구현체에 종속되지 않고 유연하게 전환

 

 

 

 

 

참고문헌: 스프링 부트3 백엔드 개발자 되기:: 신선영

반응형