CS/데이터베이스

[CS/Database] 트랜잭션 / ACID / 트랜잭션 격리수준(Transaction Isolation Levels)

dbfl9911 2025. 2. 17. 11:38
반응형

 


 

 

• 트랜잭션이란? 

  • 트랜잭션이란 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위라고 할 수 있으며, 트랜잭션에는 여러개의 연산이 수행될 수 있습니다. 
  • 트랜잭션은 수행 중에 한 작업이라도 실패하면 전부 실패하고, 모두 성공해야 성공이라고 할 수 있습니다. 

 

 

 


 

 

트랜잭션의 특성(ACID)

  • 원자성(Atomicity) : 작업이 모두 반영되던지 아니면 전혀 반영되지 않아야 합니다. 
  • 일관성(Consistency) : 실행이 완료되면 언제나 일관성있는 상태를 유지해야 합니다. 
  • 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 실행될 경우 서로의 연산에 끼어들 수 없습니다. 
  • 영속성(Durability) : 완료된 결과는 영구적으로 반영되어야 합니다. 

 

 


 

 

 트랜잭션 격리수준 (Transaction Isolation Levels)

 

트랜잭션 격리수준은 고립도와 성능의 트레이드 오프를 조절합니다. 

  • Read Uncommitted (레벨 0) : 다른 트랜잭션에서 커밋되지 않은 내용도 참조할 수 있습니다.
  • Read Committed (레벨 1) : 다른 트랜잭션에서 커밋된 내용만 참조할 수 있습니다. 
  • Reapeatable Read (레벨 2) : 트랜잭션에 진입하기 이전에 커밋된 내용만 참조할 수 있습니다. 
  • Serializable (레벨 3) : 트랜잭션에 진입하면 락을 걸어 다른 트랜잭션이 접근하지 못하게 한다. (성능 매우 떨어짐)

 

 


 

* 위 글은 아래 문서를 참고해 작성했습니다. 

https://github.com/ksundong/backend-interview-question

 

GitHub - ksundong/backend-interview-question: 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질

백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질문, 인터넷 참고한 질문(CC BY-NC) - ksundong/backend-interview-question

github.com

https://dev-coco.tistory.com/158

 

신입 개발자 기술면접 질문 정리 - 데이터베이스

💡 데이터베이스의 특징에 대해 설명해주세요. 실시간 접근성(Real-Time Accessibility) : 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 하며, 지속적인 변화(Continuous Evloution) :

dev-coco.tistory.com


review 1회독 2회독 3회독 4회독 5회독
check ✅(2/22)        

 

반응형