이것저것 개발기록

데이터베이스 트랜잭션과 ACID 원칙 본문

IT 이야기

데이터베이스 트랜잭션과 ACID 원칙

Garam Kim 2025. 12. 27. 11:19

"내 계좌에서 돈은 빠져나갔는데, 상대방 계좌에는 입금이 안 됐다면?"
데이터의 일관성을 지켜주는 최후의 보루, 트랜잭션(Transaction)과 4대 원칙을 정리합니다.

1. 트랜잭션이란?

트랜잭션은 데이터베이스의 상태를 변화시키는 하나의 논리적 작업 단위입니다. 여러 개의 쿼리가 묶여서 "모두 성공(Commit)"하거나, 하나라도 실패하면 "아예 없었던 일(Rollback)"이 되어야 합니다.

2. ACID 원칙

  • Atomicity (원자성): 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 하나라도 오류가 나면 전부 취소되어야 합니다.
  • Consistency (일관성): 트랜잭션이 완료된 후에도 DB는 미리 정해진 규칙(제약 조건)을 만족해야 합니다.
  • Isolation (격리성): 수행 중인 트랜잭션은 다른 트랜잭션의 간섭을 받지 않아야 합니다.
  • Durability (지속성): 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 합니다.

💡 실무 노트

실무에서는 트랜잭션의 범위를 너무 크게 잡지 않는 것이 중요해요. 트랜잭션이 길어질수록 DB 커넥션을 오래 점유하게 되어 성능 저하의 원인이 될 수 있거든요.

팁: 스프링 프레임워크를 쓴다면 @Transactional 어노테이션을 활용하되, 외부 API 호출처럼 시간이 오래 걸리는 작업은 트랜잭션 범위 밖으로 빼는 것을 고려해 보세요.