PSA (추상화 계층)
2019. 5. 1. 14:22ㆍ[정리] 기능별 개념 정리/스프링 부트
서블릿 어플리케이션을 만들고있음에도 불구하고 스프링을 사용하면서 서블릿을 직접적으로 사용하지 않는다.
서블릿 코드 샘플
public class MyServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
this.doPost(requset, response);
}
}
스프링은 내부적으로 서블릿 객체를 만들어서 구현이 되지만 사용자는 이를 몰라도 된다. 추상화계층을 사용하고 있는 것. Spring-web-mvc 는 대표적인 PSA 객체다. @Controller, @RequestMapping 과 같은 것이 PSA를 지원하는 대표적인 어노테이션이다.
PSA의 장점
- 코드 작성희 효율성과 편의성
- PSA 기반으로 작성한 코드를 그대로 두고 대체 가능한 완전히 다른 기술 스택으로 쉽게 변경할 수 있다.
(ex. tomcat->netty)
(ex. servlet->reactive)
(ex. @Transaction 은 DB가 Oracle, MySQL 과 같은 것에 상관없이 사용 가능하다.)
내용 출처 : https://www.youtube.com/watch?v=P3vzrqADl8I
'[정리] 기능별 개념 정리 > 스프링 부트' 카테고리의 다른 글
필터, 인터셉터, AOP (0) | 2019.05.28 |
---|---|
스프링 부트 Cache (0) | 2019.05.27 |
스프링 부트의 Mock (0) | 2019.04.28 |
스프링 AOP, Transaction (0) | 2019.04.21 |
Spring boot's NoSQL (0) | 2019.04.21 |