본문 바로가기
공부할 것 !

AOP

by sejin2 2024. 8. 22.

AOP

: 객체지향 프로그래밍을 보완하는 개념으로 어플리케이션을 객체지향적으로 모듈화 하여 작성하더라도 다수의 객체들에 분산되어 중복적으로 존재하는 공통 관심사가 여전히 존재

=> AOP는 이를 횡단 관심으로 분리하여 핵심 관심과 엮어서 처리할 수 있는 방법을 제공한다.

로깅, 보안, 트랜잭션 등의 공통적인 기능의 활용을 기존의 비즈니스 로직에 영향을 주지않고 모듈화 처리를 지원하는 프로그래밍 기법이다.

 

주요 개념

  • Join Point
    • 횡단 관심 모듈이 삽입되어 동작할 수 있는 실행 가능한 특정 위치를 말함
    • 메소드 호출, 메소드 실행 자체, 클래스 초기화, 객체 생성 시점 등
  • PointCut
    • 어떤 클래스의 어느 Join Point를 사용할 것인지를 결정하는 선택 기능을 말함
    • 가장 일반적인 Join Point은 특정 클래스에 있는 모든 메소드 호출로 구성된다.
  • Aspect
    • 어플리케이션이 가지고 있어야할 로직과 그것을 실행해야 하는 지점을 정의한 것
    • Advice와 PointCut의 조합
  • Advice
    • 관점(Aspect)의 실제 구현체로 결합점에 삽입되어 동작할 수 있는 코드
    • 결합점(JoinPoint)과 결합하여 동작하는 시점에 따라 before advice, after advice, ,around advice 타입으로 구분된다.
    • 특정 Join Point에 실행하는 코드
  • Weaving
    • PointCut에 의해서 결정된 JoinPoint에 지정된 Advice를 삽입하는 과정

주요 기능

  • 횡단 관심 모듈이 삽입되어 동작할 수 있도록 지정하는 JoinPoint 기능

 

장점

  • 중복 코드의 제거
  • 비즈니스 로직의 가독성 향상
  • 생산성 향상
  • 재사용성 향상
  • 변경 용이성 증대

 

ID Generation

: 표준 프레임워크에서 제공하는 서비스다양한 형식의 ID 구조 및 다양한 방식의 ID 생성 알고리즘을 제공하여 시스템에서 사용하는 ID를 생성하는 서비스

 

주요 기능

  • UUID 생성
  • Sequence ID 생성

UUID는 OSF에 의해 제정된 고유식별자에 대한 표준으로 특정한 유니크한 값을 뽑아낼 수 있다.1) MAC Address 사용2) IP Address 사용3) Random