반응형
PSA (Portable Service Abstraction)
환경의 변화와 상관없이 일관된 방식의 기술 접근 환경을 제공하는 추상화 구조
서비스 추상화
어댑터 패턴을 적용하여 같은 일을 하는 다수의 기술을 공통의 인터페이스로 제어 할 수 있게 한 것
추상화 계층을 사용하여 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공해주는 것
스프링은 서블릿을 사용하는 프로그램인데 서블릿을 사용하지 않고있다.
그 대신 @GetMapping이나 @PostMapping을 통해 특정 url로 요청이 들어왔을 때, 해당 블록이 요청을 처리하도록 구현 되어있다.
이렇게 추상화 계층을 사용해 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공하는 것을 서비스 추상화
라고한다.
Spring Web MVC, Spring Transaction, Spring Cache 등이 모두 Portable Service Abstraction에 해당된다.
스프링은 MVC라는 추상화 기법을 사용.
Spring Web MVC를 사용하면 서블릿을 low level로 직접 구현할 필요가 없어진다.
View : templates Model : Repository Controller : Controller
스프링은 원래 Tomcat 기반으로 돌아가는데, dependency에서 web을 webflux로 바꾸고 다시 실행해보면 Netty 기반으로 돌아간다.
스프링의 PSA 덕분에 코드를 거의 바꾸지 않고도 톰캣이 아닌 완전히 다른 기술로 실행이 가능하다는 의미이다
서비스 추상화로 제공되는 기술을 다른 기술 스택으로 간편하게 바꿀 수 있는 확장성을 가지고 있는 것을
PSA(Portable Service Abstraction) 이라고 한다.
반응형
'스프링' 카테고리의 다른 글
스프링 컨테이너의 종류 (0) | 2022.04.20 |
---|---|
스프링의 특징 5 [Annotation] Java Configuration (0) | 2021.09.09 |
스프링의 특징 3 [AOP] (0) | 2021.09.08 |
스프링의 특징 2 [DI, IoC] Spring Bean (0) | 2021.09.08 |
스프링의 특징 1 [DI, IoC] (0) | 2021.09.08 |