전체 글

https://github.com/MoochiPark/jpa/tree/master/chapter01/README.md  [ ▶ JPA ]객체를 관계형 데이터베이스에 저장하려면 많은 시간과 코드를 소비해야 한다. 자바 진영에서는 이런 문제를 해결하기 위해 JPA라는 표준 기술을 사용한다. 자바 ORM (Object Relational Mapping) 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도화주고, 객체와 데이터베이스의 차이도 중간에서 해결해 준다. MyBatis, 스프링의 JdbcTemplate 같은 SQL 매퍼를 사용하면 JDBC 코드를 많이 줄일 수 있지만, 여전히 등록, 수정, 삭제, 조회 (CRUD)용 SQL은 반복해서 작성하게 된다. JPA는 지루하고 반복적인..
·스프링 AOP
https://sundaland.tistory.com/99 [ ▶ Programmatic Creation of @AspectJ Proxies ] 또는 를 사용하여 설정에서 aspect를 선언하는 것 외에도, 타겟 객체를 어드바이스하는 프록시를 프로그래밍 방식으로 생성할 수도 있다.@AspectJ aspect를 사용하여 자동으로 프록시를 생성할 수 잇다.org.springframework.aop.aspectj.annotation.AspectJProxyFactory 클래스를 사용하여 하나 의상의 @AspectJ aspect에 의해 어드바이스된 타겟 객체에 대한 프록시를 생성할 수 있다.// 주어진 타겟 객체에 대한 프록시를 생성할 수 있는 팩토리를 생성합니다.AspectJProxyFactory factory..
·스프링 AOP
https://sundaland.tistory.com/88 [ ▶ Spring instrument library ]spring-instrument는 스프링 프레임워크에서 제공하는 라이브러리 중 하나로, 주로 자바 애플리케이션에서 AOP를 지원하거나 특정 기능을 추가하기 위해 사용된다. 특히 spring-instrument는 JVM 레벨에서 클래스 로딩을 조작하거나, 프록시 객체를 생성하는 등의 기능을 수행할 수 있도록 도와준다. [ ▷ Load Time Weaving (LTW) ]클래스가 JVM에 로드될 때 바이트코드를 변환하는 방식으로 AOP 기능을 적용하는 기법이다. 스프링 AOP에서 런타임에 프록시 객체를 생성하지 않고, 클래스가 로드될 때 바이트코드를 변환하는 방식으로 AOP 기능을 적용할 수 있..
·스프링 AOP
https://sundaland.tistory.com/65 [ ▶ Instrumentation API vs AspectJ ] Instrumentation API와 AspectJ는 서로 독립적인 기술이지만, AspectJ가 AOP 기능을 제공하는데 있어 Instrumentation API를 활용할 수 있는 상황이 존재한다. 그러나  Instrumentation API는 AOP 기능을 위해서 반드시 AspectJ와 협력해야 하는 것이 아니다. 이 둘은 각각 다른 목적과 기능을 가지고 있으며, 특정 상황에서 협력할 수 있다는 것이 더 정확한 설명이다. [ ▷ 독립적인 역할 ] Instrumentation API 주된 역할: 클래스 파일을 로드하거나 이미 로드된 클래스의 바이트코드를 런타임에 변경하는 것, AO..
·스프링 AOP
https://sundaland.tistory.com/78 [ ▶ Java Agent ]자바 에이전트는 자바 애플리케이션의 실행 중 동작을 변경하거나 모니터링할 수 있는 특별한 프로그램이다. 자바 에이전트는 JVM (자바 가상 머신)과 상호 작용하여 클래스 로딩 시점에 바이트코드를 조작하거나, 이미 로드된 클래스의 동작을런타임에 수정할 수 있다. 이러한 기능은 성능 모니터링, 디버깅, 프로파일링, 코드 커버리지 분석, 그리고 AOP (Aspect-Oriented Programming) 구현 등 다양한 목적에 사용된다. [ ▷ 자바 에이전트의 주요 특징 ]1. Permain 메서드자바 에이전트는 JVM이 시작될 때 premain 메서드를 통해 실행된다. 이 메서드는 JVM이 메인 애플리케이션을 실행하기 전..
·스프링 AOP
https://sundaland.tistory.com/154 [ ▶ Java Instrument API vs ASM ]Java Instrumentation API와 ASM은 모두 자바 바이트코드 조작을 가능하게 하는 도구이지만, 그 목적과 사용방식이 다르다. 이 둘은 서로 보완적으로 사용될 수 있으며, Instrumentation API는 ASM과 같은 라이브러리와 함께 사용되어 바이트코드를 런타임에 조작할 수 있다.[ ▷ Java Instrumentation API ]주요 목적Instrumentation API는 자바 애플리케이션에서 런타임 시 클래스의 바이트코드를 조작할 수 있는 기능을 제공한다. 주로 자바 에이전트를 통해 사용되며, JVM에서 클래스가 로드되기 전이나 이미 로드된 후에 바이트코드를 ..
·스프링 AOP
https://sundaland.tistory.com/75 [ ▶ Instrumentation API ]Instrumentation API는 자바 플랫폼의 java.lang.instrument 패키지에서 제공되는 API로, JVM의 클래스 로딩 및 런타임 동작을 조작할 수 있도록하는 API이며, 이 API 자체는 인터페이스로 제공된다. 이 API는 주로 성능 모니터링, 프로파일링, 코드 커버리지 도구, 그리고 AOP (Aspect-Oriented Programming) 같은 기술을 구현할 때 사용한다. 구현체는 JVM 내부에서 이 API를 구현하고, 이를 통해 자바 에이전트와 같은 도구들이 해당 기능을 사용할 수 있도록 한다. [ ▷ 주요기능 ]1. ClassFileTransformerClassFileT..
·스프링 AOP
https://sundaland.tistory.com/89[ ▶ Declaring Advice ]어드바이스는 포인트컷 표현식과 연관되어 있으며, 포인트컷에 의해 매칭된 메서드 실행 전, 후 또는 실행 중에 실행된다. 포인트컷 표현식인 인라인 포인트 컷이거나 named pointcut을 참조할 수 있다. [ ▷ Before Advice ]@Before 어노테이션을 사용하여 어드바이스를 선언할 수 있다. ▼ 인라인 포인트컷 표현식을 사용한 예제import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;@Aspectpublic class BeforeExample { @Before("execution(* com.xy..
GLaDiDos
GLaDiDos의 티스토리