티스토리 뷰
스프링의 세가지 핵심인 IoC/DI , AOP , 그리고 PSA 중 PSA에 알아보고자 한다
스프링에서 Controller, Mapping, Trasanction 이런 Annotation(어노테이션)등을 클래스나 메서드에 붙이기만 해주면 작동한다
이를 가능케 해주는게 바로 PSA 개념이다
PSA는 Portable Service Abstraction의 약자인데 여기서 핵심은 Service와 Abstraction이다
서비스 추상화라고 불리는데 이는 추상화 계층을 사용하여 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공하는 것을 말한다
Service Abstraction (서비스 추상화)
스프링이 제공하는 서비스 추상화는 많지만 Spring Web MVC와 JDBC를 예로 들어보겠다
1. Spring Web MVC
클래스에 @Controller 어노테이션을 사용하면 메서드들의 Mapping 정보를 읽을 수 있게 만들어 준다
이를 구동하게 해주는 것이 내장된 Tomcat이라고 가정해보자
이때 개발자가 전혀 다른 기술 스택인 WebFlux라는 기술로 이를 구동할 시 개발자가 직접 접근하여 구현할 필요 없이
Spring Web MVC의 추상화 계층을 사용하여 Netty라는 WAS로 구동을 할 수 있다
2. JDBC
본인은 이 예시가 좀 더 이해하기 쉬웠다
우리가 DB에 접근할때 JDBC라는 것을 사용하면 Oracle 또는 MySQL 둘 중 아무거나 사용하더라도 접근을 할 수 있다
이 처럼 같은 일을 하는 다수의 기술(Tomcat or Netty 또는 Oracle or MySQL)을 공통의 인터페이스로 제어할 수 있게 한 것을 서비스 추상화라고 한다
개인 학습을 위해 작성되는 글입니다.
제가 잘못 알고 있는 점에 대한 지적 / 더 나은 방향에 대한 댓글을 환영합니다.
참조 링크:
https://atoz-develop.tistory.com/entry/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-PSA
참조 서적:
스프링 입문을 위한 자바 객체지향의 원리와 이해 - 김종민 저
'Spring' 카테고리의 다른 글
[Spring] Singleton(싱글톤) (0) | 2021.08.13 |
---|---|
[Spring] Spring Container(스프링 컨테이너) (0) | 2021.08.11 |
[Spring] POJO(Plain Old Java Object) (0) | 2021.08.11 |
[Spring] AOP (Aspect Oriented Programming) 관점 지향 프로그래밍 (0) | 2021.08.11 |
[Spring] DI(Dependency Injection) 와 IoC(Inversion of Control) (0) | 2021.08.04 |
- Total
- Today
- Yesterday
- maenco
- 캐시
- uri
- Spring MVC
- http
- ExceptionHandlerExceptionResolver
- OOP
- 맨코
- jQuery 직접 선택자
- 제이쿼리란
- Session
- Spring Container
- 제이쿼리 인접 관계 선택자
- DefaultHandlerExceptionResolver
- 제이쿼리 기본 선택자
- 제이쿼리 직접 선택자
- ResponseStatusExeceptionResolver
- @ExceptionHandlere
- Cache
- 쿠키
- Spring TypeConverter
- 제이쿼리 탐색선택자
- 세션
- @ResponseStatus
- spring
- DTO와 VO의 차이
- cookie
- application/x-www-form-urlencoded
- Spring API Error
- 제이쿼리 위치탐색선택자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |