본문 바로가기
TIL

내일배움캠프 10주차 Spring AOP

by 율량동박씨 2024. 6. 19.

오늘의 키워드

  • AOP (Aspect Oriented Programming)
  • 관점 지향 프로그래밍
  • 횡단 관심사

오늘의 내용

  • AOP (Aspect Oriented Programming):
    • AOP는 프로그램의 로직을 여러 관심사로 분리해 모듈화 하는 프로그래밍 패러다임이다
    • 특히, 여러 모듈에서 공통적으로 사용되는 로직인 횡단 관심사를 분리하는 데 유용하다
      • 횡단 관심사: 로깅, 보안, 트랜잭션 관리 등 여러 모듈에서 공통적으로 사용되는 로직이다
  • 주요 개념:
    • 관점(Aspect): 횡단 관심사를 모듈화한 것으로, 예를 들어 로깅을 정의할 수 있다
    • 조인 포인트(Join Point): 프로그램 실행 중 관점이 적용될 수 있는 특정 지점으로, 메서드 호출, 객체 생성, 예외 처리 등이 있다
    • 어드바이스(Advice): 관점이 조인 포인트에서 실제로 수행하는 동작으로, 다음과 같은 유형으로 나뉜다
      • Before: 조인 포인트 전에 실행
      • After: 조인 포인트 후에 실행
      • AfterReturning: 조인 포인트가 정상적으로 실행된 후에 실행
      • AfterThrowing: 조인 포인트에서 예외가 발생한 후에 실행
      • Around: 조인 포인트 전후에 실행
    • 포인트컷(Pointcut): 조인 포인트를 선별하는 표현식으로, 어드바이스가 적용될 지점을 정의한다
    • 위빙(Weaving): 관점을 주요 비즈니스 로직 코드와 결합하는 과정으로, 컴파일 타임, 로드 타임, 런타임에 이루어질 수 있다
  • AOP의 장점:
    • 횡단 관심사를 분리하여 코드의 모듈화를 향상시킨다
    • 공통 로직을 중앙에서 관리하여 코드의 유지보수성을 높인다
    • 여러 모듈에서 반복되는 코드를 제거하고 재사용 가능한 컴포넌트로 관리할 수 있다

오늘의 회고

 팀 프로젝트가 시작되고 회원가입과 로그인/로그아웃 부분을 맡아서 하게 됐다. 실시간 강의로 시큐리티를 배워서 배운 걸 안 잊어버리기 위해 좋은 기회라 생각해 자원해서 했지만 쉽지 않은 부분인 건 여전했다. 최근에 날씨도 많이 더워져서 체력이 점점 달리는 걸 느끼는데 건강관리에 조금 더 신경 써야겠다.