-
[TIL] AOP 에 대하여TIL(Today I Learned) 2022. 12. 28. 23:29
*20221228의 회고
인프런 스프링 입문 강의를 끝마쳤다. 뒤죽박죽이던 머릿속이 어느정도 정돈된 느낌이 든다. 갓영한... 그저 빛영한 이었다. 그 다음으로는 스프링부트와 JPA 활용편을 공부할 예정이다. 어서 빨리 JPA 라는 녀석에 대해 알고 싶다!
오늘은 스프링 입문 강의 마지막 부분의 내용인 AOP에 대해 간략하게 정리하려 한다.
1. 문제점
- 메소드 마다 호출시간을 측정하고 싶다. 그렇다면 모든 메소드에 일일이 호출 시간을 측정해주는 로직을 추가해야 할까...?
- 만약 그렇다면, 메소드가 100개일 경우에는...? 혹시 1000개일 경우에는...?!
2. 해결 방법과 알게된 점
- AOP 를 적용하여 이 문제를 해결할 수 있다!
- AOP : Aspect Oriented Programming
- 관점 지향 프로그래밍을 뜻하는 단어
- 로직을 핵심 관심 사항과 공통 관심 사항(부가적인 관심 사항)으로 관점을 나눠서 관리하겠다는 의미
- 이 코드에서 핵심 관심 사항은 회원가입 그 자체이지, 시간을 측정하는 것은 부가적인 로직이자 다른 메서드와 공통적인 로직이다. -> 따라서 이 로직을 따로 분류하자
- 관점을 나눔으로 써 코드의 유지보수가 쉬워진다.
- aop 패키지를 만든 후, 시간 측정을 위한 클래스를 만든다.(TimeTraceAop)
aop 를 구현하면서 사용하는 문법에 대해서는 나중에 aop 를 더 깊이 공부하게 될 때 그때 정리하도록 하겠다. 지금은 그냥 이런식으로 코드를 작성하는 구나 정도만 얻어가도록 하겠다.
이렇게 시간을 측정할 수 있다! 오늘의 회고 끝!
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] @PathVariable의 변수명 차이로 인한 오류 (2) 2023.01.02 [TIL] 오늘의 회고... (4) 2022.12.30 [TIL] JDBC, JDBCTemplate, JPA (0) 2022.12.27 [TIL] final 키워드와 @Autowired 에노테이션 정리 (0) 2022.12.26 [TIL] Map을 List로 가져오기 (0) 2022.12.23 - AOP : Aspect Oriented Programming