티스토리 뷰

Spring

[Spring] 트랜잭션 AICD

hyuuny 2022. 4. 20. 00:08

트랜잭션

트랜잭션은 ACID라 하는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)을 보장해야 한다.


  • 원자성 : 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두 실패해야 한다.

  • 일관성 : 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 한다.

  • 격리성 : 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈로 인해 트랜잭션 격리 수준(Isolation level) 을 선택할 수 있다.

  • 지속성 : 트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 한다. 중간에 시스템에 문제가 발생해도 데이터베이스 로그 등을 사용해서 성공한 트랜잭션 내용을 복구해야 한다.


트랜잭션 격리 수준 (Isolation level)

  • READ UNCOMMITED : 커밋되지 않은 읽기
  • READ COMMITTED : 커밋된 읽기 (일반적으로 많이 사용)
  • REPEATABLE READ : 반복 가능한 읽기
  • SERIALIZABLE : 직렬화 가능

'Spring' 카테고리의 다른 글

[Spring] 리플렉션(Reflection)  (0) 2022.05.15
[Spring] ThreadLocal을 사용해보자!  (0) 2022.05.07
[Spring] JDBC(Java Database Connectivity)  (0) 2022.04.17
[Spring] ApplicationContext  (0) 2022.03.13
[Spring] Singleton, SingletonContainer  (0) 2022.01.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함