인프런 - 백기선님의 예제로 배우는 스프링 입문(개정판)을 수강하며 정리한 글입니다.
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)
'Tech > Spring | Spring Boot' 카테고리의 다른 글
[Spring][스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 2. 서블릿 (1) | 2023.11.27 |
---|---|
[Spring][스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 1. 웹 애플리케이션 이해 (0) | 2023.11.15 |
[Spring] AOP (Aspect Oriented Programming) (0) | 2023.11.12 |
[Spring] 의존성 주입 (Dependency Injection) (0) | 2023.09.22 |
[Spring] 빈 (Bean) (0) | 2023.09.22 |
댓글