ACID에 대해서 설명해 주세요.

2025. 1. 13. 09:51·백엔드 면접

ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 속성을 의미합니다.

 

원자성(Atomicity)은 트랜잭션 내부 연산들이 부분적으로 실행되고 중단되지 않는 것을 보장합니다. 즉 트랜잭션은 전체 성공 또는 전체 실패 중 한 가지만 수행합니다.

 

일관성(Consistency)은 트랜잭션이 커밋되면 일관성 있는 데이터베이스 상태로 유지되는 것을 보장합니다. 제약조건과 같이 데이터베이스에 정의된 규칙을 특정 트랜잭션이 위반하는 경우에는 해당 트랜잭션은 롤백되어야 합니다.

 

격리성(Isolation)은 동시에 실행되는 여러 트랜잭션이 서로 독립적임을 보장합니다. 즉 트랜잭션이 수행될 때 다른 트랜잭션이 사이에 끼어들지 못하도록 보장합니다. 적절한 트랜잭션 격리 수준을 사용하여 높은 동시성 또는 높은 데이터 일관성을 가져갈 수 있습니다.

 

지속성(Durability)은 성공적으로 수행된 트랜잭션은 영구적으로 반영되어야 함을 보장합니다. 즉 커밋된 트랜잭션의 결과는 시스템에 장애가 발생해도 항상 데이터베이스에 반영되어 있어야 합니다. 트랜잭션은 로그로 남고, 로그가 저장되어야 트랜잭션이 성공되었다고 간주합니다. 추후 장애가 발생한다면 이 로그를 사용해 데이터베이스를 회복합니다.

'백엔드 면접' 카테고리의 다른 글

프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요?  (0) 2025.01.15
스케일 아웃과 스케일 업의 차이점을 설명해 주세요.  (0) 2025.01.14
REST란 무엇인가요?  (0) 2025.01.10
캐싱 전략에 대해서 설명해주세요.  (0) 2025.01.09
동시성과 병렬성에 대해서 설명해 주세요.  (0) 2025.01.08
'백엔드 면접' 카테고리의 다른 글
  • 프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요?
  • 스케일 아웃과 스케일 업의 차이점을 설명해 주세요.
  • REST란 무엇인가요?
  • 캐싱 전략에 대해서 설명해주세요.
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    토스 페이먼츠
    스프링
    데브코스
    자바
    JPA
    오블완
    raid
    백엔드 면접
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
ACID에 대해서 설명해 주세요.
상단으로

티스토리툴바