- 트랜잭션이 연결되어야 하는 이유는?
1) 키워드 : 데이터의 신뢰성(정합성, 무결성...) 보존을 위해.
ex) 은행 통장 송금 로직
2) DB에 여러번 커넥션을 여는 것에는 코스트가 따른다. 따라서 최소한의 DB 접근을 위해(부하 방지) - 스프링 기준임.
트랜잭션이 다른 작업들과 분리되어야 하는 이유?
트랜잭션의 속성?
원 A : 일부만 실행되고 종료되면 안된다.
일 C : DB 계층 관계나 컬럼 속성같은 값들이 일관되게 유지되어야 한다.
독 I : 둘 이상의 트랜잭션이 동시 실행 시 데이터 신뢰성 잃을 수 있으니, 수행중인 트랜잭션은 다른 트랜잭션이 참조 할 수 없게 해야 한다.
지 D : 어떤 문제가 생기더라도 영구히 DB에 반영되어야 한다.
일부만 실행되고 종료되면 안된다 ?
BIGINT -> CHAR 바꾸기 가능할까?
<억까를 서로 해주자. 당황하지 않게>
-> 링크드 리스트에 인덱스 넣는 법 말하라고
-> 그럼 조회 최적화가 가능한가?
-> O(logn) 시간복잡도.
TRANSACTION Isolation 사용?
TRANSACTIONAL Isolation < 디폴트값은?
TRANSACTIONAL 어노테이션 작동방식?
승범이의 나 피드백
영속성 유지하기 위해서 트랜잭션 로그를 남긴다. (DB에서 남겨짐)
트랜잭션 사용하는 이유 -> 독립성 설명에도 적용해보자.