# transactional
[ Spring ] @Transactional 잘 사용하자
스프링 프로젝트를 하면서 @Transactional이라는 애노테이션을 자주 사용한다.하지만 정확하게 어떻게 사용하는지 모르기에 정리를 시작한다..😶😶Transaction은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위이다.ACID(원자성, 일관성, 고립

@Transactional이 동작하지 않을 때는 프록시 객체를 통해 메서드를 호출했는지 확인하자 (프록시 내부 호출 문제)
@Transactional이 정상적으로 동작하지 않을 때는, 프록시 객체를 통해서 메서드를 호출한 것이 아니라 실제 객체를 통해 호출했는지 의심 해보자.

Spring @Transactional의 Propagation
Spring의 @Transactional과 propagation에 대해 알아보자.

SpringBoot 테스트를 위한 DB 격리
이 문서는 SpringBoot 테스트 시 발생하는 DB 격리 문제와 이를 해결하기 위한 방법을 다룹니다. `@Transactional` 어노테이션으로는 해결이 불가능한 `@SpringBootTest`에서의 문제점을 다양한 방법으로 해결하는 방법을 제시합니다.
[JPA] 어노테이션 정리
@Entity기본 생성자가 없는 경우 자동으로 기본 생성자를 만들어준다.@Getter@Builder모든 타입을 매개변수로 받는 생성자를 만들어준다.@ToString@NoArgsConstructor@AllArgsConstructor해당 클래스 내의 모든 변수값을 가진 생

Spring Transaction with AOP
트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. 코드에서 선언을 하여서 분기별로 데이터베이스 작업이 이뤄질때 추가작업을 지시 가능합니다. 아래의 그림을 보면 이해하실겁니다.간단하게 Transact
@Transactional 어노테이션 사용시 롤백이 발생 하는 시점은?
RuntimeException, Error 와 같은 Unchecked Exception 이 발생 하는 경우에만 롤백 처리 된다. Unchecked Exception : 예측 할 수 없는 타이밍에 발생하는 예외를 말한다. 예를 들어 NullPointerException, IndexOutBoundsExcepton 같은 것들을 말하며, 모두 RuntimeExc...
[Spring] MySQL에서 @Transactional(readOnly = true)
MySQL에서 읽기 전용 트랜잭션 사용시 얻는 이점 (그런데 잡다한 것도 곁들인)

그래서 트랜잭션이 정확히 뭘까?(1편 DB)
최근에 서비스기업 회사면접을 봤습니다. 문제상황은 다음과 같았습니다.A : 이력서에 트랜잭션 이야기를 했는데, DB의 트랜잭션과 스프링에 @Transactional에 대해 아는한 설명해주세요..!B : 트랜잭션은 롤백이 된다는 특징이 있고... (머리가 하애졌다..)심
Spring AOP Starter Kit(2) - Transaction
Transaction은 데이터베이스의 일련의 작업들을 논리적으로 하나의 단위로 묶어서 처리하는 것입니다.

스프링 이벤트를 활용해 로직간 강결합을 해결하는 방법
애플리케이션 로직을 설계하면 한 번의 요청에 의해 2가지 이상의 기능을 동작해야하는 경우가 생깁니다. 이 다수의 기능을 하나의 메서드에서 코드로 구현하면 기능과 기능이 강결합(Tight Coupling)이 됩니다. 각 로직을 분리해서 관리하기도 어렵고 특정 기능의 문제
Transactional 어노테이션
@Transactional스프링은 @Transactional 어노테이션을 이용한 선언적 트랜잭션 처리를 지원한다.이번 글에서는 아래 내용에 대해 알아볼 것이다.트랜잭션이 무엇인지스프링에서 @Transactional 을 이용하여 트랜잭션 처리를 하는 방법테스트 환경에서의

트랜잭션 템플릿과 트랜잭션 프록시
트랜잭션 매니저가 커넥션의 획득, 커밋 및 롤백, 커넥션의 반납을 추상화했다면, 트랜잭션 템플릿은 거기서 한발자국 더 나아가 비즈니스 로직을 제외한 트랜잭션의 시작과 끝을 숨겨놓은 객체를 의미한다.생성자를 통해 트랜잭션 매니저를 주입받는다.execute()action

[Spring] @Transactional의 탄생배경
Spring 프레임워크를 쓰는 이유 중 하나는 트랜잭션 관리 기능 지원 때문일 것이다. Spring 이전의 EJB 환경 개발은 JDNI가 필수적이었으며 그만큼 xml 스키마의 작성량도 많았을 것이다. JTA(Java Transaction API)또한, JNDI를 사용해
Transaction Propagation and Isolation in Spring @Transactional
@Transactional 어노테이션의 isolation과 propagation 세팅을 알아보는게 목적