데브 코스/TIL

[TIL] DAY 33

반응형

오늘 할 일

  • 강의 듣기
  • 알고리즘 풀기
  •  

 

 

TIL

AOP(Aspect Oriented Programming)

  • 관점 지향 프로그래밍!이라고 처음에 접했을 땐 이게 무슨 말인가 싶었다.
  • 조금만 풀어 쓰자면 프로젝트에 많은 로직들이 있을 텐데 이 중 특정 로직을 기준으로 잡아 핵심 관심 사항공통 관심 사항으로 분리해서 바라보고 각각 모듈화시키는 것이다.
  • 이전에도 작성했었지만, 모든 로직에서 프로그램 동작 시간을 측정해야 하는데 핵심 비즈니스 로직과 분리하기 어려울 때 AOP를 사용하면 간단하게 분리해 모든 로직에서 사용할 수 있다.
  • 현재는 간단한 코드만 실습해봐서 클래스나 메소드로 분리하는 것과 큰 차이를 모르겠지만, 코드량이 방대해진다면 실감할 수 있을 거라고 생각한다.
  • 다시 한 줄로 요약하자면, 반복되는 코드를 특정 관점으로 모듈화해서 비즈니스 로직과 분리해 재사용하는 것이다!

 

(1) 개념

  1. Aspect
    • 반복되어 사용되는 로직을 모듈화한 것
    • Advice + PointCut
  2. Target
    • Aspect를 적용할 로직(class, method 등등)
  3. Advice
    • 반복 로직의 구현체
    • 타겟의 특정 조인트 포인트에 제공할 부가기능
  4. JointPoint
    • Advice의 적용 위치(ex) 메소드 호출 이전, 이후)
    • 타겟 객체가 구현한 인터페이스의 모든 메소드
  5. PointCut
    • Advice를 적용할 Target의 메서드를 선별하는 정규표현식
    • 여러 JointPoint 중 어디에 적용할지!
  6. Weaving
    • 타겟의 조인 포인트에 Advice를 적용하는 과정

 

 

프록시

  • 접근을 제어하고 싶거나, 부가 기능을 추가하고 싶을 때 기존 코드를 건드리지 않고 새 기능을 추가할 수 있다.
  • 클라이언트의 실제 대상인 것처럼 위장해서 요청을 받아 대신 처리한다.

 

 

 

주말 할 일

  1. 잠 많이 자기
  2. 강의 듣기
  3. 1일 1 알고리즘 풀기

 

 

느낀 점

AOP!! 강의를 보며 실습도 해봤지만, 잘 모르겠다.. 제일 체감됐던 점은 @Around 애노테이션을 사용해서 패키지를 지정해 해당 로직을 다 사용할 수 있다는 것이다. 스프링은 기능이 너무 많다. 얼른 다 잘 쓰고 싶드아.

반응형

'데브 코스 > TIL' 카테고리의 다른 글

[TIL] DAY 36  (0) 2021.09.17
[TIL] DAY 34 & 35  (0) 2021.09.07
[TIL] DAY 32  (0) 2021.09.07
[TIL] DAY 29 & 30 & 31  (5) 2021.09.04
[TIL] DAY 27 & 28  (0) 2021.08.31