본문 바로가기
Tech/Spring | Spring Boot

[Spring] PSA (Portable Service Abstraction)

by 싱브이 2023. 11. 12.
728x90
반응형

 

 

인프런 - 백기선님의 예제로 배우는 스프링 입문(개정판)을 수강하며 정리한 글입니다.

 

 

 

PSA

    : 잘 만든 서비스라고 표현했다. 영어 해석 그대로 교체가 용이한 서비스 추상화이다. (제공되는 기술을 다른 기술로 간편하게 바꿀 수 있는 확장성을 갖고 있다.)

 

Spring이 제공하는 Spring Web MVC라는 추상화 기법을 보자.

@Controller라는 Annotation을 사용하면 요청을 매핑할 수 있는 컨트롤러 역할을 수행하는 클래스가 된다. 

클래스 안에다가 @GetMapping, @PostMapping으로 요청을 매핑할 수 있다.

매핑이란 특정 URL에 해당하는 요청이 들어왔을 때 그 요청을 해당 메소드가 처리하도록 하는 것이다. 

이렇게 스프링 웹 MVC를 사용해서 Servlet 애플리케이션을 간단하게 개발할 수 있다.

  • View : templates
  • Model : Repository
  • Controller : Controller

스프링은 원래 Tomcat 기반으로 돌아가는데, dependency에서 web을 webflux로 바꾸고 다시 실행해보면 Netty로 돌아간다. 스프링의 PSA 덕분에 코드를 거의 바꾸지 않고도 톰캣이 아닌 다른 기술로 실행이 가능하다는 의미이고, 이 스프링 웹 MVC가 PSA 중 하나다.

 

 

스프링 트랜잭션 (@Transactional)

보통 JDBC에서 트랜잭션처리를 하려면 , commit, rollback을 명시적으로 호출해야한다. 하지만,  스프링은 Annotation을 제공해준다. 그래서 이 @Transactional만 붙여주면 자동으로 트랜잭션 처리를 해준다. 이것도 역시 PSA 중 하나다.

 

 

스프링 캐시 (@Cacheable)

728x90
반응형

댓글