reflection3 [Spring] 동적 프록시 기술 - JDK, CGLIB 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 리플랙션 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 지난번 글 에서 Proxy의 단점으로 대상 클래스 수 만큼 로그 추적을 위한 프록시 클래스를 만들어야 한다는 점을 언급했었다. 다행이 Java는 JDK 동적 프록시 기술이나 CGLIB 같은 프록시 생성 오픈소스 기술을 활용하면 프록시 객체를 동적으로 만들어낼 수 있다. 프록시를 적용할 코드를 하나만 만들어두고 동적 프록시 기술을 사용해서 프록시 객체를 찍어내면 된다! JDK 동적 프록시의 이해를 위해서는 우선 리플렉션에 대하여 학습해야한다. 리플렉션 기술을 사용하면 클래스나 메서드의 메타정보를 .. BackEnd/Spring 2022. 8. 13. [TDD] 테스트를 위한 생성자, 메서드 피하는 방법 스스로 공부하다 경험했던 문제를 해결하기 위해 1. 문제 상황 테스트를 작성하다 보면 검증을 위해 id값을 직접 객체에 추가해줘야 하는 경우들이 있다. 하지만 JPA를 사용할 경우 프로덕션 코드에서는 생성자로 id를 직접 추가해주지 않아도, auto increment를 사용하게 되기 때문에 id값을 직접 할당할 필요가 없다. 따라서 단지 테스트 만을 위한 용도로 id값을 받는 생성자를 만들게 되는 점이 매우 거슬렸다. 예시를 통해 문제의 상황을 구체화 해보자! 우선 우리의 도메인을 시각화하면 다음과 같다. 다음과 같은 예시 코드를 살펴보자. @DisplayName("구간을 성공적으로 추가한다") @Test public void add_section_test() { // given Line line = n.. BackEnd/TDD 2022. 7. 26. [Java] Reflection 이번 글은 Spring의 DI(의존성 주입)이 어떻게 동작하는 것 일까? 란 의문으로부터 공부한 글 입니다. 여러 블로그와 백기선님의 더 자바 강의를 살펴보며 정리한 글 입니다. 1. 리플렉션 API 1부 : 클래스 정보 조회 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Reflection은 Class를 통해서 접근할 수 있다. Class (Java Platform SE 8 ) Determines if the specified Class object represents a primitive type. There are nine predefined Class objects to represent the eight primitive types and void. These .. BackEnd/Java 2022. 5. 22. 이전 1 다음