PSA_소개
참고문헌
PSA = 잘 만든 인터페이스 = 추상화
-
나의 코드
- 확장성이 좋지 못한 코드 or 기술에 특화되어 있는 코드
-
잘 만든 인터페이스 (PSA)
예시1 : 스프링 트랜잭션
- @Transactional
- 이 어노테이션을 처리하는 Aspect가 있음
- 그 Aspect 안에는, PlatformTransactionManager 가 있음
- 기술 독립적
- 추상화 : 어떻게 구현하던 이 코드는 바뀌지 않는다.
- 구체적 기술 : 구현체
-
JpaTransacionManager DatasourceTransactionManager HibernateTransactionManager
-
예시2 : 스프링 캐시
- @EnableCaching
-
@Cacheable @CacheEvict … 사용 - 이 어노테이션을 처리하는 Aspect가 있음
- 그 Aspect 안에는, CacheManager 가 있음
- 기술 독립적
- 추상화 : 어떻게 구현하던 이 코드는 바뀌지 않는다.
-
- 구체적 기술 : 구현체
-
JCacheManager ConcurrentMapCacheManager EhCacheCacheManager …
-
예시3 : 스프링 웹 MVC
- @Controller 와 @RequestMapping
- 구체적 기술 : 구현체
-
Servlet Reactive
-