kok202
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