프록시 기반의 AOP 스프링에서 AOP를 학습할 때 프록시 기반의 AOP란 말을 한 번쯤은 들어봤을 것이다. 현재 스프링은 프록시 기반의 AOP를 구현할 때 CGLIB를 사용하는데, 핵심은 런타임시 프록시 객체를 생성하는 다이나믹 프록시다. 도대체 프록시는 무엇이고, Java의 리플렉션을 사용한 JDK 다이나믹 프록시, CGLIB의 MethodProxy를 사용한 다이나믹 프록시가 어떤 차이가 있는지 알아보자. 프록시 패턴 프록시(Proxy)는 '대리', '중계' 라는 의미다. 클라이언트는 타겟에게 요청을 보내지만 실제로는 프록시가 요청을 대신 받는다. 실제 요청을 수행하는 타겟의 기능은 프록시 손에 달렸다. 위임해서 기능을 수행할 수도 있고, 위임하지 않고 클라이언트에게 다른 응답을 줄 수도 있다. 실제..
AOP (Aspect Oriented Programming) 들어가며 공통 관심사항(cross cutting concern) vs 핵심 관심사항(core concern) 분리 핵심 기능에 부가 기능(ex. 호출 시간 측정, 트랜잭션)을 추가했다. 핵심 기능을 담당하는 코드에서 흩어져 나타나는 부가 기능 코드는, 말 그대로 부가적이기 때문에 적용이 되는 대상(Target)이 있어야 의미가 있다. 두 기능을 무조건 분리하기가 애매하다. 부가 기능을 여러 메소드에서 공통으로 사용한다고 해보자. 부가 기능 코드가 중복된다. 요구사항이 변경되서 부가 기능 코드를 수정해야 한다. 여러 메소드에서 사용한 부가 기능 코드를 일일히 수정해야 한다. 위 상황에서 하나의 관심, 핵심 비즈니스 로직에만 집중하는 단일 책임의 ..
- Total
- Today
- Yesterday
- 다이나믹프록시
- file
- 문자열인코딩과 문자집합의 차이
- getAbsolutePath와
- websocket handshake
- Best Time to Buy and Sell Stock
- 특수문자 치환
- github actions components
- getPath
- opencsv
- sockjs
- 정규경로
- hls.js
- Longest Consecutive Sequence
- github actions 기초
- FileNameFilter
- github actions 구성요소
- self-descriptive
- HtmlUtils
- java8 stream
- MPEG-2 TS
- csv to bean
- getCanonicalPath
- 그런RESTAPI로괜찮은가
- 정규표현식 패턴
- csv 라이브러리
- CGLIB프록시
- 정규표현식 플래그
- AOP
- 코프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |