Spring - PSA PSA(Portable Service Abstraction)는 일관성있는 추상화다. 서비스 추상화의 좋은예는 바로 JDBC이다. JDBC라는 표준스펙이 존재하기 때문에 DBMS를 오라클을 사용하던 , MYSQL을 사용하던 공통된 방식으로 코드를 작성할 수 있다. 데이터베이스 종류에 관계없이 같은방식으로 제어 할수있는 디자인패턴 (어댑터 패턴) 을 적용해다수의기술을 공통 인터페이스로 제어할수있도록 한것을 서비스 추상화라고한다. 스프링프레임워크에서는 OXM , ORM 캐시, 트랙잭션등 다양한 기술에 대한 PSA를 제공한다. 정리 PSA 란 다양한 기술을 하나의 인터페이스로 추상화하여 일관성있게 제어할수 있도록 한 것 지금까지 스프링의 3대 핵심요소 DI/IoC , AOP , PSA 에..
Spring - AOP 2 용어 AOP에서 사용하는 용어들이 존재한다. 이를 하나씩 살펴보자 Aspect 관점, 측면 Advisor 조언자, 고문 Advice 조언, 충고 JoinPoint 결합점 Pointcut 자르는 지점 Pointcut ? pointcut은 직역하면 자르는 지점, AOP에서는 Aspect적용 위치지정자 라고도한다. 아래의 예제소스를 살펴보자. @Aspect class MyAspect { @Before("execution(* doSomething())") public void before(JoinPoint joinPoint) { ... } } 위의 코드에서 “execution(* doSomething())” 이 바로 Pointcut이다. @Before가 의미하는것은 * doSometh..
Spring - AOP AOP란 ? AOP는 Aspect-Oriendted-Programming의 약자로 , 이를 번역하면 관점지향 프로그래밍이다. 스프링의 DI가 의존성주입이라면, AOP는 로직의 주입이라고 볼 수 있다. AOP는 OOP의 단점을 보완하기위해 나온것이다. OOP를 대체하는 개념은 아니다. 핵심관심사 ? 횡단관심사 ? 특정 로직중 공통적으로 일어나는부분 을 횡단 관심사, 그외의 특정부분을 핵심관심사라고 한다. 아래의 코드를 한번 살펴보자. @Service @RequriedArgsConstructor class MemberService { private Logger logger = LoggerFactory.getLogger(MemberService.class); private final M..
스프링을 활용한 의존성주입 - 2 지난시간에는 의존성주입과 , 스프링을 활용한 빈등록방법에 대해 알아보았다. 지난 내용이 궁금하다면 하단링크 참고 https://pupupee9.tistory.com/4 이번 포스트에서는 스프링을 활용한 의존성주입방법에 대해 살펴보자. 의존성 주입방법 스프링을 활용한 의존성 주입방법에는 크게 3가지가 있다. XML을 활용한 의존성 주입방법 JavaConfig를 활용한 의존성 주입방법 애노테이션을 활용한 의존성 주입방법 위 세가지 방법중 애노테이션을 활용한 의존성주입방법이 가장 쉽고 많이 사용할 방법이다. (물론 회사마다 다르다..) XML을 활용한 의존성 주입방법 스프링을 활용한 의존성 주입은 생성자를 통한 의존성 주입 , 속성을 활용한 의존성주입을 모두 지원한다. 지난시..