Brain
Science
root
/
학습 노트
/
Study Note
/
5: 데이터베이스 (Database)
/
4. 트랜잭션, 동시성 제어 및 회복
4. 트랜잭션, 동시성 제어 및 회복
191. 트랜잭션 (Transaction) - 논리적 작업의 기본 단위, 분할할 수 없는 일련의 연산
192. 트랜잭션의 ACID 특성
193. 원자성 (Atomicity) - All or Nothing (모두 반영되거나 모두 취소) - 회복(Recovery) 관리자가 보장
194. 일관성 (Consistency) - 트랜잭션 전후에 데이터베이스 제약조건(무결성) 유지 - 병행제어/무결성 제약조건 보장
195. 격리성 (Isolation) - 실행 중인 트랜잭션 연산에 다른 트랜잭션 간섭 불가 - 병행 제어(Concurrency Control) 보장
196. 영속성 (Durability) - 성공 완료된 트랜잭션 결과는 영구 반영 - 회복(Recovery) 관리자가 보장
197. 트랜잭션 상태 전이 - 활동(Active) -> 부분 완료(Partially Committed) -> 완료(Committed) / 실패(Failed) -> 철회(Aborted)
198. COMMIT 명령어 - 트랜잭션 성공적 완료, 디스크 반영 확정
199. ROLLBACK 명령어 - 트랜잭션 취소, 이전 상태로 복구
200. SAVEPOINT - 트랜잭션 내 중간 복구 지점 설정
201. 동시성 제어 (Concurrency Control / 병행 제어)의 목적 - 데이터 일관성 유지, 다중 사용자 처리량 극대화
202. 병행 수행 시 문제점 (격리성 위배 시)
203. 갱신 손실 (Lost Update) - 둘 이상의 트랜잭션이 동시 갱신 시, 이전 값이 덮어써져 손실
204. 모순성 (Inconsistency / Unrepeatable Read) - 동일 데이터 반복 읽기 시 값이 달라지는 현상
205. 오손 읽기 (Dirty Read) - 다른 트랜잭션이 아직 커밋하지 않은 미확정 데이터를 읽음
206. 연쇄 복귀 (Cascading Rollback) - 한 트랜잭션 취소 시, 의존하던 다른 트랜잭션도 연쇄 취소
207. 유령 읽기 (Phantom Read) - 이전 읽기에 없던 새로운 행(INSERT)이 반복 읽기 시 나타남
208. 스케줄 (Schedule / History) - 트랜잭션 연산의 실행 순서
209. 직렬 스케줄 (Serial Schedule) - 트랜잭션을 순차적으로 실행 (동시성 0)
210. 비직렬 스케줄 (Non-serial Schedule) - 인터리빙 방식 병행 실행
211. 직렬 가능 스케줄 (Serializable Schedule) - 비직렬이지만 결과가 직렬 스케줄과 동일한 스케줄 보장
212. 충돌 직렬 가능성 (Conflict Serializable)
213. 락킹 (Locking) 기법 - 상호 배제를 위한 잠금
214. 공유 락 (Shared Lock / Read Lock, S-Lock) - 읽기 허용, 쓰기 불가
215. 배타 락 (Exclusive Lock / Write Lock, X-Lock) - 읽기/쓰기 모두 불가 독점
216. 2단계 락킹 프로토콜 (2PL, Two-Phase Locking) - 직렬 가능성 보장을 위한 락 프로토콜
217. 확장 단계 (Growing Phase) - 락 획득만 가능, 반납 불가
218. 축소 단계 (Shrinking Phase) - 락 반납만 가능, 획득 불가
219. 2PL의 한계 - 교착 상태(Deadlock) 발생 가능성, 연쇄 복귀 위험
220. 엄격한 2PL (Strict 2PL) - X-Lock을 커밋 전까지 보유 (연쇄 복귀 방지)
221. 강건한 2PL (Rigorous 2PL) - S-Lock, X-Lock 모두 커밋 전까지 보유
222. 타임스탬프 순서 (Timestamp Ordering) 기법 - 트랜잭션 진입 시간에 맞춰 직렬화 (비관적 제어 아님, 락 없음)
223. 낙관적 동시성 제어 (Optimistic Concurrency Control) - 작업 먼저 수행 후 종료(Validation) 시점에 충돌 검사
224. 다중 버전 동시성 제어 (MVCC, Multi-Version Concurrency Control) - 읽기와 쓰기 락 충돌 배제, 스냅샷 활용 (Oracle, PostgreSQL 기본)
225. Undo 세그먼트 (롤백 세그먼트) - MVCC 구버전 데이터 저장 영역
226. 블로킹 (Blocking) 현상 완화 (MVCC의 가장 큰 장점 - 읽기가 쓰기를 막지 않고, 쓰기가 읽기를 막지 않음)
227. 트랜잭션 고립화 수준 (Isolation Level) - ANSI/ISO SQL 표준 4단계
228. Read Uncommitted (레벨 0) - 커밋 안된 데이터 읽기 허용 (Dirty Read 발생)
229. Read Committed (레벨 1) - 커밋된 데이터만 읽음 (Oracle 기본, Non-Repeatable Read 발생)
230. Repeatable Read (레벨 2) - 트랜잭션 내에서 읽은 데이터 락 유지 (MySQL 기본, Phantom Read 발생 가능성)
231. Serializable (레벨 3) - 완벽한 직렬화, 가장 엄격 (모든 이상현상 방지, 동시성 최저)
232. 데이터베이스 장애 유형 - 트랜잭션 장애, 시스템 장애, 미디어 장애
233. 회복 (Recovery) - 장애 발생 전 일관된 상태로 DB 복원 (원자성, 영속성 보장 기법)
234. Redo (재실행) - 장애 발생 후 커밋된 트랜잭션을 로그 참조하여 재반영 (영속성 보장)
235. Undo (취소) - 장애 발생 후 커밋 안된 트랜잭션을 이전 상태로 원복 (원자성 보장)
236. WAL (Write-Ahead Logging) 프로토콜 - 데이터 갱신 전 반드시 로그부터 디스크에 안전하게 기록
237. 로그 기반 회복 기법 (Log-based Recovery)
238. 지연 갱신 (Deferred Update) - 트랜잭션 완료 전까지 DB 기록 지연, Undo 불필요, Redo만 수행
239. 즉시 갱신 (Immediate Update) - 트랜잭션 도중에도 DB 기록, 회복 시 Redo와 Undo 모두 필요
240. 그림자 페이징 (Shadow Paging) 기법 - 로그 없이 구버전(그림자) 디렉토리와 현재 디렉토리 유지 교체 (COW 유사)
241. 검사점 (Checkpoint / Checkpointing) 회복 기법 - 주기적으로 메모리 버퍼를 디스크에 동기화(Flush)하여 복구 시간(Redo 대상) 단축
242. 미디어 회복 (Media Recovery) - 디스크 손상 시 백업(덤프) 아카이브와 로그를 이용해 롤포워드(Roll-forward) 복구
243. ARIES 알고리즘 - 현대 DBMS 복구 표준 알고리즘 (Analysis, Redo, Undo 3단계 페이즈)
244. LSN (Log Sequence Number) - 로그 레코드 고유 식별 번호
245. Compensation Log Record (CLR) - Undo 수행 시 남기는 보상 로그 (중복 Undo 방지)
246. 데이터베이스 교착 상태 (Deadlock) 처리 기법 - Wait-Die, Wound-Wait (타임스탬프 선점/비선점 기반 예방)
247. 교착 상태 탐지 대기 그래프 (Wait-for Graph) - 사이클 발생 시 희생자(주로 후발 트랜잭션) 롤백
248. 분산 트랜잭션 (Distributed Transaction) - 둘 이상의 노드/DB에 걸친 트랜잭션
249. 2단계 커밋 (2PC, Two-Phase Commit) - 분산 트랜잭션의 원자성 보장 프로토콜
250. 코디네이터 (Coordinator)와 참여자 (Participant) - 1단계(Prepare), 2단계(Commit/Rollback)
251. 3단계 커밋 (3PC, Three-Phase Commit) - 2PC의 블로킹 한계 보완 (Pre-Commit 추가)
252. Saga 패턴 - MSA 환경의 긴 트랜잭션(Long Lived Transaction) 처리, 이벤트 기반 로컬 트랜잭션 분할 및 보상 트랜잭션(Compensating Transaction) 수행
253. CAP 정리 (CAP Theorem) - 일관성(Consistency), 가용성(Availability), 분단 허용성(Partition Tolerance) 3가지를 동시 만족 불가 (분산 DB 이론)
254. CP 시스템 (HBase, MongoDB 기본) / AP 시스템 (Cassandra, DynamoDB) / CA 시스템 (RDBMS, 네트워크 분할 없는 단일망)
255. PACELC 정리 - CAP 확장판 (분할 P 시 A/C 대안, 정상 작동 E 시 L(지연)/C(일관성) 상충 관계)
256. 결과적 일관성 (Eventual Consistency) - 일정 시간이 지나면 결국 동기화됨 (AP 시스템 특징, BASE 특성)
257. BASE 속성 - Basically Available, Soft-state, Eventually consistent (NoSQL의 특성, ACID의 반대)
258. 벡터 시계 (Vector Clock) / 타임스탬프 - 분산 시스템 데이터 동기화 충돌 해결
259. 래프트 (Raft) / 팍소스 (Paxos) 알고리즘 - 분산 DB 리더 선출 및 로그 복제 합의 (Consensus)
260. 스플릿 브레인 (Split Brain) 현상 - 네트워크 단절로 두 개의 마스터가 독립적 작동 (Quorum/과반수 투표로 방지)
501. 스토리지 컴퓨팅 분리 클라우드 네이티브 DW 특장점
2026-03-26
502. 데이터 리니지 흐름 추적 무결성 감사 구조
2026-03-26
503. 데이터 거버넌스 품질 메타 카탈로그 통제 관리
2026-03-26
504. 데이터베이스 백업 핫 덤프 콜드 덤프
2026-03-26
505. 트랜잭션 장애 미디어 장애 복구 범위
2026-03-26
506. 데이터 디렉터리 시스템 카탈로그 차이
2026-03-26
507. 트리거 (Trigger 이벤트 연동 프로시저 콜)
2026-03-26
508. 프로시저 vs 함수 컴파일 재사용 구조
2026-03-26
509. 클러스터링 팩터 인덱스 효율 평가 지표
2026-03-26
510. 바인드 변수 적용 하드 파싱 회피
2024-01-01
511. 옵티마이저 힌트 사용 인덱스 강제 접근
2024-01-01
512. 반정규화 성능 트레이드오프 파생 컬럼 설계
2024-01-01
514. 팩트 테이블 차원 모델 비즈니스 수치 저장
2024-01-01
515. 시계열 DB 보존 정책 (Retention) 데이터 라이프사이클
2024-01-01
516. GNN 그래프 모델 연계 추천 시스템 설계망 적용
2024-01-01
520. PACELC 분산 DB 장애 평시 트레이드 오프 이론
2026-03-26
521. 동적 SQL 조립 런타임 질의 파서
2026-03-26
522. 데이터 거버넌스 3요소 (원칙, 조직, 프로세스)
2026-03-26
523. 정보 공학 방법론 데이터 주도적 생명 주기
2026-03-26
524. EER 모델 서브타입 상속 특수화
2026-03-26
525. B+Tree 인덱스 스플릿 병합 오버헤드
2026-03-26
526. 해시 조인 탐색 비용 및 메모리(PGA) 스왑 오버헤드
2026-03-26
527. 정규화의 역설 조인 비용 및 응답 지연 해결망 설계
2026-03-26
528. 동시성 오손 읽기 (Dirty Read) 고립 수준 회피
2026-03-26
529. Repeatable Read 의 팬텀 현상 MVCC 해결 유무
2026-03-26
530. Serializable 성능 저하 임계 영역 데드락 방어
2026-03-26
540. 데이터 가상화 연방 쿼리 (Federated Query) 실행 엔진
2024-01-01
541. 클라우드 DW 스노우플레이크(Snowflake) 구조적 특징
2024-01-01
542. 데이터 마스킹 부분 비식별화 암호화 비교 체계
2024-01-01
543. DB 방화벽 프록시 스니핑 방식 모니터링 감사 통제
2024-01-01
544. SQL 인젝션 논리 에러/타임베이스 블라인드 주입 체계망
2024-01-01
545. 시큐어 코딩 파라 파라미터 매핑 ORM 보안 내재화 방식
2024-01-01
553. 동형 암호 DB 질의 - 암호화된 상태 연산 기술
2026-04-10
555. 다차원 인덱스 K-d 트리 - 다변량 질의 공간 데이터 구조
2026-04-10
556. 마스터-슬레이브 복제 지연 (Replication Lag) 불일치 해결
2026-04-10
557. 멀티 마스터 충돌 해결 - LWW (Last Writer Wins) 메커니즘
2026-04-10
558. 벡터 데이터 ANN 인덱싱 튜닝 (M, efConstruction)
2026-04-10
559. 코사인 유사도 - 텍스트 임베딩 벡터 거리 계측
2026-04-10
560. 데이터 패브릭 지식 그래프 연동 - 지능형 메타 계층
2026-04-10
561. 클라우드 DB 고가용성 - Multi-AZ 자동 페일오버 (Failover)
2026-04-10
562. B-Tree 디스크 I/O 최적화 - 팬아웃(Fan-out)과 노드 크기 블록 매핑
2026-04-10
563. 해시 충돌(Collision) 해결 - 체이닝 및 선형 탐사 성능 오버헤드
2026-04-10
564. 컬럼 기반 스토리지 런 렝스 인코딩(RLE) 압축 효율화
2026-04-10
565. 인 메모리 DB 백업 체크포인트 방식 지연 최소화
2026-04-10
566. 캐시 스탬피드 (Cache Stampede)와 회피 기법
2026-04-10
567. 레디스 만료 데이터 키 삭제 정책 (LRU, LFU, Random)
2026-04-10
568. 몽고DB 샤딩 청크 마이그레이션 및 밸런싱 모형
2026-04-10
569. 카산드라(Cassandra) 쓰기 경로와 LSM 트리 병목 배제
2026-04-10
570. 하둡 에코시스템 (Hadoop) - Hive와 Pig의 맵리듀스 추상화
2026-04-10
571. Spark 스트리밍(Micro-batch) vs Flink (Native Stream)
2026-04-10
572. 데이터 옵스 (DataOps) 자동화 테스트 및 카나리 배포
2026-04-10
573. ODS (Operational Data Store) - 실시간 스냅샷 통합 저장소
2026-04-10
575. Slowly Changing Dimension (SCD Type 1, 2, 3) 이력 관리
2026-04-10
576. 팩트리스 팩트 테이블 (Factless Fact Table) 이벤트 추적
2026-04-10
577. 다대다 관계 해소와 교차 릴레이션 분해
2026-04-10
578. 수퍼타입/서브타입 데이터 물리 변환 1:1 병합 테이블
2026-04-10
579. 무결성 제약 조건 (CASCADE, RESTRICT, SET NULL)
2026-04-10
580. 도메인 무결성 CHECK 구문 정규 표현식 입력 통제 규칙
2026-04-10
581. 테이블 스페이스 (Tablespace) 시스템 용량 분산 관리
2026-04-10
582. 동적 성능 뷰 (V$, DMV) DBA 모니터링
2026-04-10
583. 프로시저 파라미터 스니핑 (Parameter Sniffing) 캐시 오염
2026-04-10
584. 윈도우 함수 (Window Function) - 파티션 내 순위 누적합 이동평균
2026-04-10
585. 서브쿼리 언네스팅 (Subquery Unnesting) - 옵티마이저 쿼리 변환
2026-04-10
586. 뷰 조인 프레디케이트 푸시 다운 (Join Predicate Pushdown)
2026-04-10
587. 스타 변환 (Star Transformation) - 데이터 웨어하우스 조인 최적화
2026-04-10
588. DTC (분산 트랜잭션 코디네이터)와 2PC 연합 트랜잭션
2026-04-10