기출문제/정보처리기사

2021년 2회 정보처리기사 기출문제 49번

엉클지니 2025. 3. 22. 22:57

49. 병행제어 기법의 종류가 아닌 것은?

로킹 기법               시분할 기법

타임 스탬프 기법  다중 버전 기법

 

문제 분석

병행제어(Concurrency Control)란?

  • 여러 트랜잭션이 동시에 실행될 때, 데이터의 일관성과 무결성을 유지하는 기법
  • 트랜잭션 간 충돌을 방지하고 데이터베이스가 올바르게 동작하도록 보장

💡 문제에서 "병행제어 기법이 아닌 것"을 찾는 것이 핵심!


각 선택지 분석

① 로킹(Locking) 기법 → O (병행제어 기법)

  • 데이터에 Lock(잠금)을 설정하여 동시에 접근하지 못하게 하는 기법
  • 대표적인 방법:
    • 공유(Shared) Lock: 여러 트랜잭션이 읽기는 가능하지만, 쓰기는 불가능
    • 배타(Exclusive) Lock: 한 트랜잭션이 독점적으로 읽고 쓸 수 있음
  • 💡 트랜잭션 충돌을 방지하는 가장 전통적인 방법!

③ 타임 스탬프(Timestamp) 기법 → O (병행제어 기법)

  • 트랜잭션이 시작될 때 타임 스탬프(시간 정보)를 부여하여 순서를 정하는 기법
  • 오래된 트랜잭션이 우선권을 가지며, 순서가 어긋나면 실행을 거부
  • 💡 Lock 없이도 동시 실행을 조정 가능!

④ 다중 버전(Multi-Version) 기법 → O (병행제어 기법)

  • 하나의 데이터를 여러 개의 버전으로 관리하여 읽기 작업과 쓰기 작업을 충돌 없이 수행
  • 예: MVCC(Multi-Version Concurrency Control)
  • 💡 오라클, PostgreSQL 등에서 널리 사용됨

② 시분할 기법(Time Sharing) → X (병행제어 기법이 아님!)

  • 운영체제에서 CPU를 여러 프로세스가 번갈아 가며 사용하도록 하는 기법
  • 데이터베이스의 병행제어와는 직접적인 관련이 없음
  • 💡 CPU 자원을 나누어 쓰는 개념이지, 데이터 동시성 제어가 아님!

정답: ② 시분할 기법(Time Sharing)

이유:

  • 시분할 기법은 운영체제의 프로세스 스케줄링 기법이지, 데이터베이스 병행제어 기법이 아님
  • 병행제어는 트랜잭션의 충돌 방지를 위해 Lock, 타임스탬프, 다중 버전 등의 기법을 사용함

🎯 핵심 정리:
병행제어 기법에는 로킹, 타임스탬프, 다중 버전 기법 등이 있으며, 시분할 기법은 운영체제의 CPU 관리 방식이므로 병행제어와 관련 없음!

반응형