AOP 2

[프로젝트] AOP로 'API 수행 시간/회원 별 총 API 사용시간 누적 저장' 기능 다르게 구현하기와 그에 따른 고민

내가 구현하고 싶은/구현해야 할 기능은 두 가지가 있었다. 회원 별 API 사용 시간 측정(저장) 기능과 API 수행시간 측정 기능이다. 이 기능들은 '핵심기능' 이라기 보단 '부가기능'에 가까웠으므로, 모듈화해서 부가기능 중심으로 설계, 구현하는게 맞다고 본 것이 AOP를 사용한 결정적 이유겠다. 두 가지 기능의 성격이 살짝 달라서 고민 후에 한 개는 @Pointcut으로 조인포인트를 설정해서 구현하고, 한 개는 애너테이션을 직접 만들어서 구현했다. 본 포스팅에서는 각 기능을 구현한 방법과 왜 이렇게 구현했는지에 대한 고민, 이후 고려해야 할 점들 등에 대해서 기술했다. 목차 - 회원 별 총 API 사용시간 누적 저장 구현 구현 과정 - API 수행 시간 측정 구현 구현 전 고민 구현 과정 -고려한 점..

Project/Newsfeed 2024.04.10

[Spring] AOP 란? 관점 지향 프로그래밍 AOP 정의

진행하고 있는 개인 프로젝트에 AOP를 사용한 기능을 추가해 보고 싶어서, AOP 관련 공부를 하려고 한다.포스팅의 순서는 크게 1. AOP 사용 이유 2. AOP 정의3. AOP 관련 용어 4. Advice의 종류 로 진행된다.AOP를 쓰는 이유 우리가 개발을 하다가, 모든 메서드에 메서드의 수행 시간을 알아내는 로그를 찍어야 한다고 생각해보자.메서드가 얼마 없다면 괜찮겠지만, 메서드가 100개, 1000개 된다면 ? 일일히 로그를 찍는 코드를 100번 1000번 서비스단에 넣게 될 것이다.  (다들 .. 반복 작업 ... 싫어하시죠 ..? 🥲)그리고 넣는다고 하더라도, 핵심 기능과 로그 기능이 섞이기 때문에, 관심사 분리와 중복 코드 지양이라는 부분에서 봤을 때도 좋은 코드는 ..

Framework/Spring 2024.02.21