스프링 프록시 기반 AOP (2) - CGLIB Proxy 이번엔 cglib를 이용한 프록시 객체 생성/동작 과정에 대해서 알아보고자 한다. 스프링 AOP 적용을 위한 프록시 방식 2가지 중, cglib가 사실상 메인으로 쓰이는데, cglib가 뭔지, 프록시 객체 생성을 위해서 cglib에서 어떤 모듈이 쓰이는지에 대해 알아보자. 메인으로 쓰인다는 것에 대한 지표등은 확인 못했지만, aop를 적용하고자 하는 메소드가 인터페이스를 구현하지 않는 경우도 많으며, 부트에서도 auto-configuration에서 default로 cglib를 선택하고 있으므로 main라고 말해도 되지 않을까.? CGLIB (Code Generation LIBrary) 해당 글을 작성하며 cglib에 대해 좀 더 자세히 보기전까진..
스프링 Proxy 기반 AOP (1) 스프링을 통해 애플리케이션을 개발할 때, 우리는 애플리케이션의 도메인과 관련된 코어 로직 개발뿐만 아니라 이 코어 기능을 제대로 동작시키기 위해 트랜잭션 관리나 로깅, 캐싱등의 관심에도 신경써야한다. 하지만 이런 부가적인 관심사들을 도메인 코어 로직에 같이 녹여야한다면 해당 모듈은 변경의 이유가 도메인 로직의 변경 뿐만이 아니게 된다. 그리고 이런 부가적인 관심사들은 전 애플리케이션의 영역이 활용이 필요하다. 그래서 스프링에선 AOP를 통해서 이런 공통적인 기능들을 별도로 분리해 필요한 곳에서 재사용가능하게 했다. 스프링에서 AOP를 적용하기 위해선 스프링에서 자체적으로 구현하고 있는 AOP 프레임워크를 사용할 수도 있고 AspectJ라는 라이브러리를 활용할 수도 있..
스프링을 사용하다보면 @Transactional과 함께 자주 사용하는 애노테이션중에 하나가 바로 @Async 일 것이다. 스프링은 애플리케이션에서 메소드의 비동기 수행이 필요한 경우, @Async 애노테이션을 통해 애플리케이션 코어 로직을 수정하지 않고도 AOP를 통해 메소드를 비동기 처리로 전환할 수 있다. 오늘은 이 스프링 비동기 실행 및 이를 위해 필요한 스레드풀 관련해서 포스팅하려 한다. 아래 Spring 코드는 5.x 기반 주의. 스프링 프레임워크 코드 및 이미지가 많아 스크롤 압박은 있을 수 있으나 내용은 실제로 그렇게 길지 않습니다. Spring Async 설정 및 메소드 비동기 수행 스프링은 일련의 작업을 수행하는 메소드를 간단하게 비동기로 처리할 수 있게끔 프레임워크단에서 AOP로 비동기..
- Total
- Today
- Yesterday
- Apache
- log
- logback
- log level
- linux
- runtime data areas
- java
- TaskExecutor
- good practice
- object
- async
- logging
- slf4j
- webserver
- JVM
- logging facade
- Spring
- lood
- NGINX
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |