일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C언어
- IF
- 스캐너클래스
- java
- for
- MySQL
- 파이썬프로그래밍기초
- 기본
- 하드웨어
- 반복문
- 배열
- 함수
- Scanner class
- 1차원배열
- 백준알고리즘
- 스캐너
- 유비쿼터스
- 자료구조
- FOR문
- Spring
- java프로그래밍
- error
- IF문
- IFELSE
- Scanner
- 백준
- 변수
- 데이터
- 자바
- 알고리즘
- Today
- Total
정리하고기록하자
Spring - PSA 본문
PSA
PSA는 '잘 만든 인터페이스' 라고 한다. 추상화가 굉장히 잘 된 인터페이스 이다.
작업 환경이나 기술이 변하더라도 일관된 방식의 접근 방식을 제공하여 의존성을 크게 고려하지 않아도 되는 구조이다.
스프링에서 Controller, Mapping, Transaction 이런 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 ) 을 공통의 인터페이스로 제어할 수 잇게 한 것을 서비스 추상화 라고 한다.
'개발 상식' 카테고리의 다른 글
네트워크 시스템의 Layer and Architecture (0) | 2022.06.11 |
---|---|
TCP / IP (0) | 2022.06.05 |
Spring - DI (0) | 2022.05.02 |
Spring - AOP (0) | 2022.04.30 |
JDK 1.7 -> 1.8 (0) | 2022.04.28 |