오늘의 키워드
- AOP (Aspect Oriented Programming)
- 관점 지향 프로그래밍
- 횡단 관심사
오늘의 내용
- AOP (Aspect Oriented Programming):
- AOP는 프로그램의 로직을 여러 관심사로 분리해 모듈화 하는 프로그래밍 패러다임이다
- 특히, 여러 모듈에서 공통적으로 사용되는 로직인 횡단 관심사를 분리하는 데 유용하다
- 횡단 관심사: 로깅, 보안, 트랜잭션 관리 등 여러 모듈에서 공통적으로 사용되는 로직이다
- 주요 개념:
- 관점(Aspect): 횡단 관심사를 모듈화한 것으로, 예를 들어 로깅을 정의할 수 있다
- 조인 포인트(Join Point): 프로그램 실행 중 관점이 적용될 수 있는 특정 지점으로, 메서드 호출, 객체 생성, 예외 처리 등이 있다
- 어드바이스(Advice): 관점이 조인 포인트에서 실제로 수행하는 동작으로, 다음과 같은 유형으로 나뉜다
- Before: 조인 포인트 전에 실행
- After: 조인 포인트 후에 실행
- AfterReturning: 조인 포인트가 정상적으로 실행된 후에 실행
- AfterThrowing: 조인 포인트에서 예외가 발생한 후에 실행
- Around: 조인 포인트 전후에 실행
- 포인트컷(Pointcut): 조인 포인트를 선별하는 표현식으로, 어드바이스가 적용될 지점을 정의한다
- 위빙(Weaving): 관점을 주요 비즈니스 로직 코드와 결합하는 과정으로, 컴파일 타임, 로드 타임, 런타임에 이루어질 수 있다
- AOP의 장점:
- 횡단 관심사를 분리하여 코드의 모듈화를 향상시킨다
- 공통 로직을 중앙에서 관리하여 코드의 유지보수성을 높인다
- 여러 모듈에서 반복되는 코드를 제거하고 재사용 가능한 컴포넌트로 관리할 수 있다
오늘의 회고
팀 프로젝트가 시작되고 회원가입과 로그인/로그아웃 부분을 맡아서 하게 됐다. 실시간 강의로 시큐리티를 배워서 배운 걸 안 잊어버리기 위해 좋은 기회라 생각해 자원해서 했지만 쉽지 않은 부분인 건 여전했다. 최근에 날씨도 많이 더워져서 체력이 점점 달리는 걸 느끼는데 건강관리에 조금 더 신경 써야겠다.
'TIL' 카테고리의 다른 글
TIL내일배움캠프 10주차 다시 OAuth2 (0) | 2024.06.21 |
---|---|
내일배움캠프 10주차 Java 상속 (0) | 2024.06.20 |
내일배움캠프 10주차 Spring Test (0) | 2024.06.19 |
내일배움캠프 10주차 Spring Mock Object (0) | 2024.06.17 |
내일배움캠프 9주차 Spring JUnit5 (0) | 2024.06.13 |