Proxy에 대한 이해 – 2. CGLib

CGLib 은 JDK Proxy 와 달리 Interface 가 없어도 Byte코드 조작을 통해 Class 를 직접 조작하여 Proxy 를 생성한다.JDK Proxy 는 원본 객체가 구현한 Interface 에 대한 Proxy 를 만들어준다면, CGLib 을 이용하면 직접 Class 를 상속받아 Override 하는 방식으로 Proxy 를 만들어주게 된다.하나씩 살펴보자. CGLib CGLib 은 구체 클래스를 Extends( 상속 ) 받아서 Proxy …

Read more

Proxy에 대한 이해 – 1. JDK Proxy

대포적인 Dynamic Proxy library 에 2가지가 존재한다. CGLib ( Code Generator Library ) 과, JDK Proxy 가 그것이다.조금만 검색하면 이 둘은 Interface 가 존재 하는지, 존재하지 않는지 여부로 사용 여부가 나뉘어짐을 알 수 있다. 이 글은 왜 interface 의 차이로 인한 proxy 생성에 차이가 생기는지, 그렇다면 그로 인해 어떤 차이점이 생기게 되는지, 자세한 Proxy 에 …

Read more

[Java] Virtual thread 와 Platform Thread

Project Loom 으로부터 탄생한 결과물인 Virtual Thread가 Java 21 부터 정식 기능으로 사용 가능하게 되었다.고전적인 1 Request per 1 Thread 모델에 사용되었던 Platform Thread 는 생성, 사용, Context Switch 하는데에 많은 비용을 요구했기 때문에 스레드가 Blocking 되어 대기상태에 오랜 시간 머무르는것이 성능 저하를 일으키는 원인이었다. 기존의 무거운 Platform Thread 보다 경량화된 새로운 Thread 가 추가되면서 …

Read more