Practice/Java

스프링) @Transactional 정리

밍미a 2022. 12. 19. 02:43
728x90

오늘 공부한 내용

@Transactional

1. 트랜잭션의 성질

 

▶ 원자성(Atomicity)

 - 한 트랜잭션 내에서 실행한 작업들은 하나로 간주한다. 즉, 모두 성공 또는 모두 실패. 

 일관성(Consistency)

 - 트랜잭션은 일관성 있는 데이타베이스 상태를 유지한다. (data integrity 만족 등.)

▶ 격리성(Isolation)

 - 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리해야한다.

▶ 지속성(Durability)

 - 트랜잭션을 성공적으로 마치면 결과가 항상 저장되어야 한다.

2. 스프링에서 트랜잭션 처리 방법

스프링에서는 트랜잭션 처리를 지원하는데 그중 어노테이션 방식으로 @Transactional을 선언하여 사용하는 방법이 일반적이며, 선언적 트랜잭션이라 부른다.

클래스, 메서드위에 @Transactional 이 추가되면, 이 클래스에 트랜잭션 기능이 적용된 프록시 객체가 생성된다.

 

 

 

https://velog.io/@kdhyo/JavaTransactional-Annotation-%EC%95%8C%EA%B3%A0-%EC%93%B0%EC%9E%90-26her30h

 

[Java]@Transactional Annotation 알고 쓰자

초반 @Transactional 어노테이션에 대해 자세히 알아보지 않고,막연히 롤백때 사용한다고 하여 SQL C,U,D 를 할 때마다 메소드 위에 붙여서 사용하곤 하였다.하지만, 내 코드를 보신 선임께서 단지 @Tran

velog.io

https://goddaehee.tistory.com/167

 

[Spring] Transactional 정리 및 예제

[Spring] @Transactional 정리 및 예제 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링 어노테이션 @Transactional ] 입니다. : ) 들어가기 앞서...... SI를 할때, 현재 어느 쇼핑몰 운영을 맡으며 개발 소

goddaehee.tistory.com


더 공부할 내용

트랜젝션이 delete를 했을때는 롤백이 안되는걸로 알고있는데... 복구하는 방법이 있지 않을까..!?

만약에 delete로 게시글을 삭제했을때... 범죄에 연루된 게시글이었어서 경찰이 복구하라고 하면 어떻게 되는걸까..?

 

 


느낀점

트랜젝션이 다양한 기능을 한다고 하고 프록시패턴이라는 생소한 개념이 나와서 덜컥 겁을 먹었는데

데이터베이스의 트랜젝션과 같은것이라고 생각하니까 이해하기가 쉬웠다.

어떻게 활용하고 어디서 사용되는지 좀 더 공부를 해봐야겠다.