CS 길라잡이
정보관리기술사
읽기 설정
글꼴 조합

제목 · 본문 순서예요. 선택하면 지금 읽는 화면에 적용돼요.

글꼴 출처 ↗
읽기 글자 크기

데이터 · 정보관리기술사

동시성·잠금·교착상태

기다리는 것과 서로를 막는 것은 어떻게 다를까요? 두 작업이 잠금을 잡는 순서를 바꾸며 차이를 살펴봅니다.

01 / 멈춘 이유부터 보기

둘 다 일을 시작했는데,
왜 아무도 끝내지 못할까?

두 작업이 데이터 A와 B를 모두 바꿔야 합니다. T1은 A부터, T2는 B부터 잠갔습니다. 이제 나머지 하나를 얻으려는데 이미 상대가 잡고 있습니다.

T1 · 작업 1T2 · 작업 2A 보유B 보유B를 기다림 →← A를 기다림교착상태둘 다 진행 불가
내가 놓아야 네가 끝나고, 네가 놓아야 내가 끝난다.각자 하나를 잡은 채 상대의 자원을 요청한 시점. 점선 화살표는 자원의 이동이 아니라, 다른 작업을 기다리는 방향입니다.

그림의 조건: A·B는 각각 하나뿐인 배타적 자원이며 작업이 끝날 때 보유 잠금을 해제합니다. 가상의 두 작업만 비교합니다.

문제는 단순히 오래 기다린다는 데 있지 않습니다. 상대를 기다리는 관계가 한 바퀴 돌아 자신에게 돌아온다는 것이 핵심입니다. 위에서 잠금 순서를 바꿔 대기의 모양을 비교해 보세요.

여기서 ‘잠금’과 ‘트랜잭션’은?

잠금은 다른 작업과 충돌하는 데이터 접근을 조정하는 장치입니다. 트랜잭션은 함께 성공하거나 함께 취소해야 할 작업의 단위입니다. 이 예에서는 T1·T2를 각각 하나의 트랜잭션으로 봅니다.

02 / 조건 하나 바꾸기

시작하는 순서를 맞추면,
기다림에 출구가 생긴다.

둘 다 A → B 순서로 잡게 해보겠습니다. T1이 A를 먼저 얻었다면 T2는 A 앞에서 기다립니다. T2가 B를 선점하지 않았으니 T1은 B를 얻어 일을 끝낼 수 있습니다.

  1. 1
    T1이 A → B를 획득

    T2는 A를 기다림 · 보유 자원 없음

  2. 2
    T1이 완료하고 A·B를 해제

    T1을 가로막는 T2의 잠금이 없음

  3. 3
    T2가 A → B를 얻어 실행

    대기는 있었지만 두 작업 모두 완료 가능

기억할 차이 대기는 줄 서기. 이 교착은 서로 출구를 막기.

이 비유는 위의 배타적 자원 두 개에 한정해 생각하세요. 실제 시스템에서는 다른 자원, 잠금 모드 변경, 다른 코드 경로도 있습니다. 공통 순서를 정했다면 관련된 모든 경로가 지키는지 확인해야 합니다.

잠깐, 내 말로 설명하기

T2가 기다리고 있으면 무조건 교착일까?

03 / 이미 멈췄다면

순서를 고치는 것과
지금의 교착을 푸는 것은 다르다.

이미 만들어진 순환은 한쪽 작업의 취소 등으로 끊어야 합니다. 예를 들어 PostgreSQL은 교착을 탐지하면 관련 트랜잭션 중 하나를 중단해 다른 작업이 진행하도록 합니다. 어느 작업이 중단될지는 가정하지 않습니다.

순환 탐지한쪽 중단다른 쪽 진행

애플리케이션에서는 취소된 트랜잭션 전체를 적절히 재시도하는 처리가 필요합니다. 재시도 횟수·간격을 제한하고 외부 결제나 알림처럼 이미 발생한 부수 효과를 중복 실행하지 않도록 별도로 설계해야 합니다.

이제 아래 문제에 대기 그림 → 원인 → 예방 → 회복 순서로 답해 보세요.

정의·비교 정리

동시성 제어는 여러 작업이 같은 데이터를 읽고 바꿀 때 제약 조건이 깨지지 않도록 실행 순서를 조정한다. 잠금 대기와 교착상태는 다르며 교착을 탐지한 뒤 어떤 작업을 취소하고 재시도할지도 정해야 한다.

잠금 대기
다른 작업의 해제를 기다림 · 항상 교착은 아님
교착
서로의 자원을 기다리는 순환 · 한 작업 종료 등의 회복 필요
MVCC
여러 버전으로 읽기 관찰 제어 · 모든 잠금·충돌을 없애지 않음

직접 만든 연습 문제

T1은 A를 잡고 B를, T2는 B를 잡고 A를 기다린다. 원인과 완화·회복을 설명하라.

답안 구성

  1. 자원과 대기 그림
  2. 대기·교착 구분
  3. 예방·완화
  4. 탐지·회복·재시도

내 말로 써보기

답안을 쓴 뒤 아래 항목으로 점검하세요. 입력한 답안은 자동 채점되지 않습니다.

0/6,000자 · 브라우저 저장 · 계정 동기화 없음

내 답안 점검

참고 답안 보기

두 작업 사이에 대기 순환이 생겼다. 자원 A와 B에 필요한 잠금 호환성과 획득 순서를 먼저 명시한다.

이 예제에서 A 다음 B처럼 공통 순서를 적용하면 해당 역순 획득으로 생기는 순환을 피할 수 있다. 트랜잭션을 짧게 유지하고 불필요한 자원 점유를 줄인다.

실제 시스템에서는 다른 자원과 경로도 포함해 탐지·종료·전체 재시도, 재시도 횟수와 관찰 지표를 준비한다. 시간 초과는 긴 대기를 끊을 수 있지만 교착의 완전한 증명은 아니다.

이 연습 문제의 학습용 참고 답안입니다. 공식 기출 해설이나 채점 기준은 아닙니다.

참고 자료

PostgreSQL18 · Explicit locking ↗

확인 2026-10-27 · 잠금 모드·교착 및 일관된 잠금 순서의 설명 참고. 두 자원 시나리오는 창작.

기출 위치 찾아보기

각 기록은 실제 기출의 위치입니다. 140회 31문항은 확인된 이용 조건에 따라 원문을 제공하며, 이전 회차는 기술명 색인과 공식 원문 링크를 제공합니다. ‘원문 대조’는 문항의 요구를 읽고 편집 분류했다는 뜻이며 공식 분류나 정답 감수가 아닙니다. 나머지 ‘자동 후보’는 배경 용어를 잡거나 놓칠 수 있습니다.

교시·분류·자료 범위 더 고르기

6개 기록 · 1–6 표시

130회 1교시 2번

Q-Net 공식 문제지 ↗

기술명 색인: 데이터베이스 · 병행 제어

요구 유형 · 자동 후보: 검토 대기 · 번호 확인 · 주제 분류는 미검토

이 기록은 원문 미수록 색인입니다. 공식 문제지에서 실제 요구사항을 먼저 확인하세요.

이 기출의 내 답안 메모

내 말로 써보기

답안을 쓴 뒤 아래 항목으로 점검하세요. 입력한 답안은 자동 채점되지 않습니다.

0/6,000자 · 브라우저 저장 · 계정 동기화 없음

내 답안 점검

128회 4교시 5번

Q-Net 공식 문제지 ↗

기술명 색인: Concurrency · 데이터베이스 · 병행제어

요구 유형 · 자동 후보: 개념 · 평가 · 번호 확인 · 주제 분류는 미검토

이 기록은 원문 미수록 색인입니다. 공식 문제지에서 실제 요구사항을 먼저 확인하세요.

이 기출의 내 답안 메모

내 말로 써보기

답안을 쓴 뒤 아래 항목으로 점검하세요. 입력한 답안은 자동 채점되지 않습니다.

0/6,000자 · 브라우저 저장 · 계정 동기화 없음

내 답안 점검

116회 1교시 4번

Q-Net 공식 문제지 ↗

기술명 색인: 교착상태

요구 유형 · 자동 후보: 검토 대기 · 번호 확인 · 주제 분류는 미검토

이 기록은 원문 미수록 색인입니다. 공식 문제지에서 실제 요구사항을 먼저 확인하세요.

이 기출의 내 답안 메모

내 말로 써보기

답안을 쓴 뒤 아래 항목으로 점검하세요. 입력한 답안은 자동 채점되지 않습니다.

0/6,000자 · 브라우저 저장 · 계정 동기화 없음

내 답안 점검

111회 1교시 8번

Q-Net 공식 문제지 ↗

기술명 색인: Concurrency · MVCC · 동시성

요구 유형 · 자동 후보: 검토 대기 · 번호 확인 · 주제 분류는 미검토

이 기록은 원문 미수록 색인입니다. 공식 문제지에서 실제 요구사항을 먼저 확인하세요.

이 기출의 내 답안 메모

내 말로 써보기

답안을 쓴 뒤 아래 항목으로 점검하세요. 입력한 답안은 자동 채점되지 않습니다.

0/6,000자 · 브라우저 저장 · 계정 동기화 없음

내 답안 점검

101회 3교시 3번

Q-Net 공식 문제지 ↗

기술명 색인: 교착상태 · 회피

요구 유형 · 자동 후보: 검토 대기 · OCR 대조 필요

이 기록은 원문 미수록 색인입니다. 공식 문제지에서 실제 요구사항을 먼저 확인하세요.

이 기출의 내 답안 메모

내 말로 써보기

답안을 쓴 뒤 아래 항목으로 점검하세요. 입력한 답안은 자동 채점되지 않습니다.

0/6,000자 · 브라우저 저장 · 계정 동기화 없음

내 답안 점검

86회 4교시 2번

Q-Net 공식 문제지 ↗

기술명 색인: 교착상태 · 운영 · 운영체제 · 회피

요구 유형 · 자동 후보: 검토 대기 · 번호 확인 · 주제 분류는 미검토

이 기록은 원문 미수록 색인입니다. 공식 문제지에서 실제 요구사항을 먼저 확인하세요.

이 기출의 내 답안 메모

내 말로 써보기

답안을 쓴 뒤 아래 항목으로 점검하세요. 입력한 답안은 자동 채점되지 않습니다.

0/6,000자 · 브라우저 저장 · 계정 동기화 없음

내 답안 점검