현재 선택한 정보처리 과정

정보처리기사 실기 이론 학습

이론 목록으로 돌아가기

트랜잭션·병행 제어·회복

트랜잭션 상태와 로그·잠금의 시간 순서를 표로 만든다.

예상 읽기 3

실기 학습 목표

트랜잭션 상태와 로그·잠금의 시간 순서를 표로 만든다.

핵심 이론

ACID는 원자성·일관성·격리성·지속성이다. 갱신 분실은 옛값을 읽은 변경끼리 덮어쓰는 현상, 더티 리드는 미커밋 값을 읽는 현상이다.

동일 데이터의 서로 다른 트랜잭션 연산 중 적어도 하나가 쓰기이면 충돌한다. 시간순 방향으로 선행 그래프를 그려 순환이 없으면 충돌 직렬가능하다.

공유 잠금은 읽기, 배타 잠금은 변경 보호에 사용한다. 2단계 잠금은 획득 단계 뒤 해제 단계이며 직렬가능성을 돕지만 교착상태를 원천 제거하지는 않는다.

WAL은 관련 데이터 페이지 기록보다 로그를 먼저 안정 저장장치에 남긴다. 미완료 효과 제거는 UNDO, 완료 효과 재적용은 REDO다. 필요 여부는 버퍼 기록·회복 방식에 따라 달라진다. 체크포인트는 회복 탐색 부담을 줄이는 기준이다.

개념 도식

좌우로 이동해 그림을 확인하세요.그림 크게 보기
트랜잭션·병행 제어·회복의 관계와 흐름을 보여 주는 도식
트랜잭션·병행 제어·회복의 관계와 흐름을 보여 주는 도식

커밋 여부와 데이터 반영 여부를 따로 본다

원자성은 전부 수행하거나 전부 취소, 일관성은 제약을 만족하는 상태 유지, 격리성은 병행 실행의 간섭 제어, 지속성은 커밋 결과의 보존이다. ‘장애가 있어도 보장한다’라는 문장만 보고 고르지 말고 지켜야 할 대상이 미완료 작업인지 완료 결과인지 확인한다.

잔액 50을 T1과 T2가 각각 읽고 T1이 60, T2가 70을 쓰면 최종값은 70이다. 두 증가분을 모두 반영한 80과 다르므로 갱신 분실이다. 다른 트랜잭션이 커밋하지 않은 60을 읽었다가 그 변경이 취소되는 상황은 더티 리드다.

로그와 저장 상태회복에서 할 일
커밋했지만 일부 변경이 디스크에 없음REDO로 완료 효과 재적용
미커밋 변경이 디스크에 남음UNDO로 미완료 효과 취소

이는 지문이 해당 로그 회복 모델을 제시한 경우의 판단이다. WAL은 데이터 페이지보다 관련 로그를 먼저 안정 저장해 복구 근거를 남긴다. 체크포인트는 복구 탐색의 기준이고, SAVEPOINT는 트랜잭션 내부의 취소 지점이다. 잠금 순서가 원형으로 서로를 기다리면 교착상태가 생길 수 있다. 잠금을 쓴다는 이유만으로 교착상태가 사라지는 것은 아니다.

풀이 예시

초기 잔액은 50이다. T1은 10을 더하고 T2는 20을 더하려 한다. 다음 순서대로 수행한 경우 최종 잔액과 발생한 병행 수행 문제의 명칭을 쓰시오.

  1. T1이 잔액 50을 읽는다.
  2. T2가 잔액 50을 읽는다.
  3. T1이 계산 결과 60을 쓴다.
  4. T2가 계산 결과 70을 쓴다.

예시 정답

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
① 70, ② 갱신 분실

풀이 과정

두 트랜잭션이 같은 옛값으로 계산했다. 마지막 기록값은 70이며 T1의 +10은 T2 기록에 의해 사라졌다. 두 변경이 모두 반영된 80이 아닌 갱신 분실이다.

답안 점검

위 풀이 예시의 답을 가린 뒤, 핵심 이론의 규칙을 적용해 직접 풀어 보세요. 코드와 계산 문제는 중간값·단위·최종 출력의 순서를, 용어 문제는 지문의 핵심 단서와 답의 의미를 점검하세요. 해설과 다른 부분이 있으면 어느 조건을 놓쳤는지 확인하고 연결된 실기 문제로 다시 연습하세요.