100일 챌린지/빅데이터기반 인공지능 융합 서비스 개발자

Day 44 - DI, Logging, AOP

ksyke 2024. 9. 26. 15:58

목차

    IOC - 제어의 역전

    -> 제어권의 역전이라는 뜻.

    일반적 프로그램 상황

    Java에서의 모듈 분산

    [RMB]>{Refactor]>[Extract Interface]

    의존성 주입 (DI: Dependency Injsction)

    생성자 주입

    Setter 주입

    Spring에서의 모듈 분산

    기본자료형

    Date

    방법1)

    방법2)

    방법3)

    자료구조

    Array

    List

    Set

    Map

    IO [Property]

    AOP : 관점 지향 프로그래밍

    (aspect-oriented programming)

    횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임.

    AOP 용어 정리

    • Joint point 횡단 관심 모듈이 삽입되어 동작할 수 있는 실행 가능한 시점을 결정 특정 메소드 실행 전, 후, 결과 값 리턴 등
      • Advice 설명
      • Before 메소드 호출 전에 수행
      • After returning 메소드가 실행되어 결과값이 리턴 된 후 수행
      • After throwing 예외가 발생되었을 때 수행
      • After advice 메소드가 실행된 후에 수행 (정상,예외에 상관없음)
      • Around 메소드 실행 전,후에 수행
    • Point cut 어느 모듈 및 메소드를 대상으로 실행이 되는지를 결정 예를 들어 특정 클래스에 있는 모든 메소드가 호출 될 때
    • Advice 공통활용을 위해 분리된 횡단 관심 모듈 (cross concern)
    • Aspect Advice와 Point cut의 조합
    • Weaving Joint point와 point cut에 의해 결정된 대상 및 시점에 advice를 실행 하는 과정

    생성자 주입

    Before Log 만들기

    Proxy/AutoProxy

    AfterSucessLog

    AfterErrLog

    afterErrLog:

    result:

    beforeLog

    BeforeLog.java

    ModuleImpl

    Arround 사용하기

    pointCut