728x90 반응형 Java & Kotlin/Spring5 Spring @Transaction @Transaction스프링에서 제공하는 선언적 트랜잭션 관리를 위한 어노테이션 동작 구조스프링에서 사용하는 프록시 구현체는 JDK Proxy(Dynamic Proxy), CGLib가 있다두 방식의 가장 큰 차이점은 타겟의 어떤 부분을 상속받아서 프록시를 구현하느냐에 있다JDK Proxy타겟의 상위 인터페이스를 상속받아 프록시 생성인터페이스를 구현한 클래스가 아니면 의존할 수 없다타겟에서 다른 구체 클래스에 의존하고 있다면 JDK 방식에서는 그 클래스(빈)를 찾을 수 없어 런타임 에러가 발생JDK Proxy는 내부적으로 Reflection을 사용해서 추가적인 비용이 발생한다CGLib Proxy타켓 클래스를 상속받아 프록시 생성인터페이스를 구현하지 않아도 된다구체 클래스에 의존하기 때문에 런타임 에러가 발.. 2025. 1. 14. Spring Filter & Interceptor Filter특징서블릿 컨테이너 레벨에서 동작DispatcherServlet 이전에 실행됨웹 어플리케이션의 전역적인 처리에 사용주요 사용 사례인코딩 변환CORS 처리XSS 방어로깅Interceptor스프링 컨텍스트 내부에서 동작DispatcherServlet과 Controller 사이에서 동작스프링 빈을 주입받아 사용 가능비교 2025. 1. 13. Spring JPA JPA자바 ORM 기술 표준으로 객체와 관계형 데이터베이스를 매핑하는 기술ORM (객체-관계 매핑)자바 객체와 데이터베이스 테이블을 자동으로 매핑@Entity, @Table 등의 어노테이션을 통한 매핑 설정쿼리 메서드메서드 이름으로 쿼리 자동 생성복잡한 쿼리는 @Query 어노테이션으로 처리지연 로딩(Lazy Loading)연관된 엔티티를 실제 사용하는 시점에 로딩프록시 객체를 통한 성능 최적화지연 로딩과 즉시 로딩@ManyToOne, @OneToMany 등의 관계 설정성능 최적화를 위한 로딩 전략 선택영속성 컨텍스트엔티티의 CRUD를 담당하면서 저장했거나 불러온 엔티티를 기억하는 1차 캐시 역할을 한다.1차 캐시영속성 컨텍스트 내부에 엔티티를 보관동일 트랜잭션 내에서 반복 조회 시 DB 접근 없이 캐시.. 2025. 1. 12. 이전 1 2 다음 728x90 반응형