250x250
Suhosummer
이게 안 되네…? 이게 되네…?
Suhosummer
전체 방문자
오늘
어제
  • Suhosummer (7)
    • Programming (0)
    • CSS (0)
    • HTML (0)
    • JAVA (4)
      • 문제풀이 (1)
    • JS (0)
      • 문제풀이 (0)
    • C (0)
      • 문제풀이 (0)
    • 컴퓨터 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바
  • 코딩
  • 표기법
  • Spring
  • 컴퓨팅
  • 클라우드보안
  • jpa
  • 프밍
  • 클라우드서비스
  • Pascal Case
  • camel case
  • SaaS
  • 관점지향프로그래밍
  • 문자열
  • aspect oriented programming
  • TPS
  • Programming
  • 코딩테스트
  • 클라우드
  • csap
  • Snake Case
  • 프로그래밍
  • 스프링
  • LAAS
  • PaaS
  • cps
  • 프로그래머스
  • 로드밸런싱
  • java
  • AOP

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Suhosummer

이게 안 되네…? 이게 되네…?

[Spring] 스프링 AOP의 개념과 특징
JAVA

[Spring] 스프링 AOP의 개념과 특징

2022. 12. 16. 15:12
728x90
반응형
SMALL

틀린 내용이 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 감사합니다!

스프링 AOP란?

Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 합니다.

관점 지향이란 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나눈 후 

그 관점을 기준으로 모듈화를 진행한다는 뜻입니다.

(모듈화: 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말합니다.)

 

위의 그림에서 색이 있는 것들은 모두 Concern라고 생각하면 됩니다.

(Concern : 여러 클래스와 메소드 등에서 비슷하게 작성되어 있는 코드를 의미합니다.)

각각의 클래스로 흩어져있는 Concern들을 우리는 Crosscutting Concerns 흩어진 관심사 라고 부릅니다.

AOP는 저 흩어진 관심사들을 모듈화하고 중요한 비즈니스 로직에서 분리하고 재사용하겠다는 것이

AOP의 취지가 되겠습니다.

 

스프링 AOP의 개념

Aspect 

흩어진 관심사(Crosscutting Concerns)를 묶어서 모듈화 한 것을 뜻합니다
advice와 pointcut이 포함되어 있습니다.

 

Target

Aspect가 가지고 있는 Advice가 적용되는 대상을 뜻합니다.

대상에는 클래스와 메서드 등등이 포함되어 있습니다.

 

Join Point

join point는 메서드 실행 시점을 말합니다 advice가 적용될 위치 또는 끼어들수 있는 곳

생성자 호출 시, 호출 직전 , 필드에 접근 전 , 필드에서 값을 가져갈 때 등이 포함됩니다.

 

Point Cut

Join point의 상세한 스펙을 보여줍니다. 어떤것을 어디에 적용해야 하는지에 대한 정보를
구체적으로 전달해줍니다.

 

스프링 AOP 특징

Spring bean에만 AOP가 적용이 가능합니다.

프록시 기반의 구현체입니다.

(접근 제어 및 부가 기능 추가를 위해 프록시 객체 사용)

Spring IOC와 연결하여 Enterprise Application에서 제일 흔한 문제를 
해결하기 위한 솔루션을 제공해줍니다.

(중복코드 , 프록시 클래스 작성의 번거로움 , 객체 간의 관계 복잡도 등)

 

참고 문서

https://yadon079.github.io/2021/spring/spring-aop-core

 

 

 

 

728x90
반응형
LIST

'JAVA' 카테고리의 다른 글

[Spring] JPA 의 개념과 장단점  (0) 2022.12.16
Java - 표기법 정리  (0) 2022.12.08
    'JAVA' 카테고리의 다른 글
    • [Spring] JPA 의 개념과 장단점
    • Java - 표기법 정리
    Suhosummer
    Suhosummer

    티스토리툴바