나만보는페이지

[스터디정리] 토비스프링 6장 AOP (2) 본문

study

[스터디정리] 토비스프링 6장 AOP (2)

pplenty 2020. 4. 12. 23:29

토비스프링 6장 AOP (2)

AOP 용어 정리

(1) target (타깃)

  • 타깃은 부가기능을 부여할 대상 오브젝트이다.

(2) advice (어드바이스)

  • 어드바이스는 타깃에게 제공할 부가기능을 담은 모듈이다.

(3) join point (조인 포인트)

  • 조인 포인트는 어드바이스가 적용될 수 있는 위치를 말한다. 스프링에서 조인 포인트는 메소드의 실행 단계이다.

(4) pointcut (포인트컷)

  • 어드바이스를 적용할 조인 포인트를 선별하는 작업 또는 그 기능을 정의한 모듈이다.

(5) proxy (프록시)

  • 클라이언트와 타깃 사이에 투명하게 존재하면서 부가기능을 제공하는 오브젝트이다.

(6) advisor (어드바이저)

  • 포인트컷과 어드바이스를 하나씩 갖고 있는 오브젝트이다.
    어떤 부가기능(advice)을 어디에(포인트컷) 전달할 것인가를 알고 있는 AOP의 가장 기본이 되는 모듈이다.

(7) aspect (애스펙트)

  • OOP의 클래스와 마찬가지로 애스펙트는 AOP의 기본 모듈이다. 한 개 또는 그 이상의 포인트컷과 어드바이스의 조합으로 만들어진다.
    스프링의 어드바이저는 아주 단순한 애스펙트라고도 볼수 있다.

트랜잭션 속성

  • 트랜잭션 전파(propagation)
    트랜잭션의 경계에서 이미 진행 중인 트랜잭션이 있을 때 또는 없을 때 어떻게 동작할 것인가를 결정하는 방식.

    • REQUIRED (기본값) : 진행 중인 트랜잭션이 없으면 새로 시작하고, 이미 시작된 트랜잭션이 있으면 이에 참여한다.

    • REQUIRED_NEW : 항상 새로운 트랜잭션을 시작한다. 즉 앞에서 시작된 트랜잭션이 있든 없든 상관없이 새로운 트랜잭션을 만들어서 독자적으로 동작하게 한다.

    • NOT_SUPPORTED : 진행중인 트랜잭션이 있어도 무시하고 트랜잭션 없이 동작한다. 특별한 메소드만 트랜잭션 적용에서 제외하려할 때 사용될 수 있다.

  • 격리 수준 (isolation level)
    여러 트랜잭션이 진행될 때 다른 트랜잭션 작업에 독립적인 정도. 기본 설정은 ISOLATION_DEFAULT 로 DataSource 에 설정되어 있는 격리 수준을 따른다.

  • 제한 시간 (timeout)
    기본 설정은 제한 시간이 없는 것이다. 제한 시간 속성은 트랜잭션 시작이 가능한 REQUIRED, REQUIRES_NEW 와 함께 사용할 수 있다.

  • 읽기 전용 (read only)
    읽기 전용으로 설정하면 트랜잭션 내에서 데이터를 조작할 때 예외를 발생시켜 준다.(Driver의 종류에 따라 예외가 발생하지 않을 수도 있다.)


Reference

  • 토비의 스프링 3.1

'study' 카테고리의 다른 글

[스터디정리] HTTP client  (0) 2020.04.06
[스터디정리] 토비스프링 6장 AOP (1)  (0) 2020.04.06
Comments