일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Stream
- Stack
- mysql
- 백준
- OS
- GC
- list
- 이스티오
- 보조스트림
- JPA
- gradle
- Collection
- spring
- jvm
- MSA
- 스프링
- 스트림
- thread
- K8s
- 토비의 스프링 정리
- Kotlin
- 토비의 스프링
- 자바
- SpringBoot
- Java
- 자바 ORM 표준 JPA 프로그래밍
- redis
- 쿠버네티스
- Real MySQL
- IntellJ
- Today
- Total
목록AOP (2)
인생을 코딩하다.
AOP(Aspect-Oriented Programming)란? "형일, 회원가입 하는 시간 측정해서 로그로 남겨줄 수 있어요?" 난 회원가입 하는 서비스로 가서 시간을 측정해본다. 이렇게 객체로 분리하여 시간 측정을 하게된다. 그리고 log가 남는 것을 확인 할 수 있다. 그런데 이렇게 메서드에 스탑워트 기능을 추가하면 뭔가 이상하다. 스탑워치라는 시간을 재는 기능을 만들긴 했는데 서비스에 이 로직이 들어가는게 맞을까? 사실 여기서 필요한 핵심 로직은 위에 빨간색 박스에 있는 로직 아닐까? SRP에서 클래스를 변경하는 이유는 하나라고 했는데 여기에 서비스 로직 말고 위의 빨간 박스에 있는 로직들 처럼 부가기능이 들어간 것 같다는 생각을 할 수 있다. 사실 서비스에서 필요한 내용은 비즈니스 로직이라고 불리..
흔히 알려진 스프링의 장점들 중 하나인 AOP란 것이 있다.'관점 지향 프로그래밍' 이라고 한다. AOP에 관해 공부하던 중, 갑자기 내가 만든 메소드들에 성능을 측정해보고 비교해 보고 싶었다.그래서 AOP를 이용하여 메소드들의 성능을 측정해 볼 수 있다는 것을 알게되어서 구글링을 통한 학습을 하였고 AOP를 적용해서 2개의 메소드에 시간을 시간을 측정해보았다. LogExecutionTime.java와 LogAspect.java는 Controller.java와 같은 패키지에 생성했다. bulid.gradle에 dependancy를 추가해줘야 한다 implementation 'org.springframework.boot:spring-boot-starter-aop' @Target로 어노테이션을 메서드에 사용..