• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Spring AOP 정의
        2022년 11월 29일
        • starryeye
        • 작성자
        • 2022.11.29.:35
        반응형

        소프트웨어 개발에서 변경이 필요할 때...

        변경 지점이 하나가 될 수 있도록 설계하고 개발해야한다..

         

        핵심 기능과 부가 기능을 분리하여..

        부가 기능을 어느 한 군데서만 관리하면 되도록 해보자..

         

        이를 위한..

        관점 지향 프로그래밍 AOP (Aspect Oriented Programming)

         

        AOP는 OOP를 대체하기 위해 나온 프로그래밍 방식이 아니다.

        횡단 관심사를 처리하기 어려운 OOP의 부족한 부분을 보조하기 위해 개발되었다.

         

        AOP 적용 방법은 총 3가지가 있다.

        1. 컴파일 시점에 부가 기능 적용(원본 코드 조작, Weaving)

        2. 클래스 로딩 시점에 부가 기능 적용(.class 파일 조작)

        3. 런타임 시점에 부가 기능 적용(프록시 방식)

         

        스프링은 위 3가지 방식 중..

        프록시 방식의 AOP를 사용한다.

         

        <참고>

        프록시 방식의 AOP는 스프링 컨테이너, DI, 빈 포스트 프로세서 등의 개념을 사용해야 한다.

        그래서 생긴.. 단점..

        프록시를 통하지 않는다면.. AOP는 적용 되지 않는다.

        ex. 당연하지만.. 의존성 주입을 받지 않고..

        바로 new 생성자를 호출 하여 생성한 객체의 참조는..

        프록시가 적용되지 않는다.

         

         

        AOP 용어

         

        Join Point

        AOP가 적용될 수 있는 모든 지점 (후보 군)

        (스프링은 프록시 방식의 AOP이므로 모든 메서드 실행 지점이다.)

         

        Pointcut

        조인 포인트 중에서 어드바이스가 적용될 위치를 선별

        AspectJ 표현식 사용

         

        Advice

        부가 기능에 해당 한다.

        Around, Before, After 등과 같은 다양한 종류의 어드바이스 존재

         

        Aspect

        여러 어드바이스와 포인트 컷이 함께 존재하는 하나의 모듈

        (@Aspect 를 생각하면 됨)

         

        Advisor

        하나의 어드바이스 + 하나의 포인트컷

         

        AOP 객체

        AOP 기능을 구현하기 위해 만든 프록시 객체

        스프링에서는 JDK 동적 프록시 or CGLIB 프록시 이다.

        반응형

        'Spring > Core' 카테고리의 다른 글

        @Configuration 와 싱글톤  (0) 2023.07.13
        @Async, TaskExecutor, CompletableFuture  (0) 2023.06.17
        Spring에서 프록시 사용 6  (0) 2022.11.29
        Spring에서 프록시 사용 5  (0) 2022.11.20
        Spring에서 프록시 사용 4  (0) 2022.11.19
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바