Spring Transaction
August 25, 2025
1. 커밋, 롤백 트랜잭션이 둘 이상 있을 때 어떻게 동작하는지 자세히 알아보고, 스프링이 제공하는 트랜잭션 전파(propagation)라는 개념도 알아보겠습니다. 트랜잭션 전파를 이해하는 과정을 통해서 스프링 트랜잭션의 동작 원리도 더 깊이있게 이해할 수 있습니다. 먼저 간단한 스프링 트랜잭션 코드를 통해 기본 원리를 학습하고, 이후에 실제 예제를 통해…
Spring Transaction
August 25, 2025
프로젝트는 다음과 같은 설정에서 진행했습니다. Boot : 3.5.4 Dependencies : Lombok, Spring Data JPA, Lombok 트랜잭션 적용 확인 을 통해 선언적 트랜잭션 방식을 사용하면 단순히 어노테이션 하나로 트랜잭션을 적용할 수 있습니다. 그런데 이 기능은 트랜잭션 관련 코드가 눈에 보이지 않고, AOP를 기반으로 동작하 기…
Spring Transaction
August 25, 2025
예제 프로젝트 지금까지 배운 트랜잭션 전파에 대한 내용을 실제 예제를 통해서 이해해보겠습니다. 비즈니스 요구사항 회원을 등록하고 조회한다. 회원에 대한 변경 이력을 추적할 수 있도록 회원 데이터가 변경될 때 변경 이력을 DB LOG 테이블에 남겨야 한다. 여기서는 예제를 단순화 하기 위해 등록시에만 DB LOG 테이블에 남김 Member MemberRep…
Spring Transaction
August 21, 2025
스프링 트랜잭션 추상화 각각의 데이터 접근 기술들은 트랜잭션을 처리하는 방식에 차이가 있습니다. 예를 들어 JDBC 기술과 JPA 기술은 트랜잭션을 사용하는 코드 자체가 다릅니다. JDBC 트랜잭션 코드 예시 JPA 트랜잭션 코드 예시 따라서 JDBC 기술을 사용하다가 JPA 기술로 변경하게 되면 트랜잭션을 사용하는 코드도 모두 함께 변경되어야 합니다. …
Querydsl
August 11, 2025
이번 챕터에서 소개하는 기능은 제약이 커서 복잡한 실무 환경에서 사용하기에는 많이 부족합니다. 그래도 스프링 데이터에서 제공하는 기능이므로 간단히 소개하고, 왜 부족한지에 대해 설명드리려 합니다. 인터페이스 지원 - QuerydslPredicateExecutor QuerydslPredicateExecutor 인터페이스 는 querydsl과 datajpa를…
Querydsl
August 04, 2025
스프링 데이터 JPA 리포지토리로 변경 스프링 데이터 JPA - MemberRepository 생성 스프링 데이터 JPA 테스트 Querydsl 전용 기능인 회원 search를 작성할 수 없음 ⇒ 사용자 정의 리포지토리 필요함 사용자 정의 리포지토리 사용자 정의 리포지토리 사용법 사용자 정의 인터페이스 작성 사용자 정의 인터페이스 구현 스프링 데이터 리포…
Querydsl
May 19, 2025
JPQL VS Querydsl 테스트 기본 코드 JPQL VS Querydsl 로 생성 querydsl은 JPQL 빌더 JPQL: 문자(실행 시점 오류), Querydsl: 코드(컴파일 시점 오류) JPQL: 파라미터 바인딩 직접, Querydsl: 파라미터 바인딩 자동 처리 JPAQueryFactory를 필드로 사용 JPQQueryFactory는 필드…