db 3

@Transactional 어노테이션 롤백 동작 방식

@Transactional 어노테이션은 Spring 프레임워크에서 트랜잭션 처리를 간소화하고 자동화하기 위해 사용된다. 이 어노테이션이 선언된 메서드에서 예외가 발생하면 트랜잭션을 롤백한다. 그러나 모든 예외가 롤백되는 것은 아니며 기본적으로 롤백 범위는 특정한 예외 유형에 따라 결정된다.   기본 롤백 정책Checked Exception (체크 예외)Exception을 상속하지만 RuntimeException을 상속하지 않은 예외는 기본적으로 롤백되지 않는다예) IOException, SQLException 등Unchecked Exception (언체크 예외)RuntimeException 및 그 하위 클래스들은 기본적으로 롤백된다예) NullPointerException, IllegalArgumentE..

Spring 2024.10.30

트랜잭션의 메커니즘

트랜잭션이 필요한 이유트랜잭션이 없다면 예를 들어 계좌이체와 같은 중요한 작업 도중 오류가 발생한다면 다음과 같은 문제들이 생길 수 있다.출금은 되었으나 입금이 안 된 경우입금은 되었으나 출금이 안 된 경우둘 다 처리되지 않은 경우 (데이터 불일치)트랜잭션은 이러한 중간 상태를 방지하고 작업을 원자성(Atomicity) 있게 처리한다. 즉, 모든 작업이 성공하거나 모두 실패하도록 보장해 데이터를 일관된 상태로 유지한다.트랜잭션의 동작 원리트랜잭션의 주요 속성 (ACID)Atomicity(원자성) : 모든 작업이 완료되거나 전혀 수행되지 않아야 한다Consistency(일관성) : 트랜잭션이 끝난 후에도 데이터는 항상 일관된 상태여야 한다Isolation(고립성) : 여러 트랜잭션이 동시에 수행될 때 서로..

Database 2024.10.28

Sharding, Clustering, Replication

클러스터링 (Clustering)클러스터링은 여러 서버를 하나의 그룹으로 묶어 동시에 운영함으로써 고가용성을 확보하는 기술이다. 이는 한 서버에 장애가 발생해도 서비스가 중단되지 않도록 하는 데 효과적이다.액티브-액티브 클러스터링여러 서버가 동시에 가동되어 모든 서버가 실제로 데이터를 처리한다장점서버 하나가 장애를 일으켜도 나머지 서버가 역할을 대신 수행해 서비스가 중단되지 않는다CPU와 메모리 자원을 효율적으로 활용하여 처리 성능이 향상된다단점모든 서버가 동일한 스토리지를 공유하므로 데이터 I/O에서 병목 현상이 발생할 수 있다여러 서버를 운영하므로 비용과 관리 부담이 증가한다액티브-스탠바이 클러스터링한 서버가 활성(액티브) 상태로 운영되고 다른 서버는 대기(스탠바이) 상태로 유지된다장점대기 서버가 평..

Database 2024.10.23
반응형