본문 바로가기
Daily/디지털 뱃지

[디지털 뱃지] 일일 스터디 Day 18

by S.W 2026. 6. 8.

[디지털 뱃지] 일일 스터디 Day 18

General(Virtual Memory) & Developer(Saga Pattern) 핵심 돌파

1. 오늘의 핵심 이론 설명

General Engineering - OS/Virtualization

가상 메모리(Virtual Memory) 체계와 페이지 폴트(Page Fault) 메커니즘

물리적 하드웨어의 메모리(RAM) 한계를 극복하고, 가상머신 및 컨테이너 프로세스 간 가상 공간 격리를 보장하는 운영체제의 핵심 기초입니다.

  • 가상 메모리의 본질: 각 프로세스에게 물리 메모리 주소 대신, 독립적이고 연속된 형태의 무한한 가상 주소 공간(Virtual Address Space)을 제공하는 기술입니다. CPU가 가상 주소를 참조하면 하드웨어 인터페이스인 MMU(Memory Management Unit)가 페이지 테이블(Page Table)을 조회하여 실제 물리 메모리 주소로 실시간 변환(Address Translation)합니다.
  • 페이징(Paging) 단위: 가상 메모리는 고정된 크기(일반적으로 4KB)의 고유 블록인 **페이지(Page)**로 쪼개어 관리되며, 이에 매핑되는 물리 메모리의 블록은 **프레임(Frame)**이라고 명칭합니다.
  • 페이지 폴트(Page Fault) 작동 흐름: CPU가 가상 메모리의 특정 페이지에 접근하려 할 때, 해당 데이터가 실제 물리 RAM에 로드되어 있지 않고 보조 기억장치(디스크 스왑 영역)에 내려가 있는 상태(Valid bit = 0)일 때 발생하는 하드웨어 인터럽트입니다.
    1. CPU가 페이지 테이블 조회를 통해 주소 변환을 시도하지만 Trap이 발생합니다.
    2. OS 커널 내부 핸들러가 가동되어 보조 기억장치(디스크 볼륨 스냅샷 등)에서 해당 페이지 데이터를 찾아냅니다.
    3. 물리 RAM의 빈 프레임을 확보한 뒤 데이터를 메모리로 올리는 페이지 인(Page-In)을 수행합니다. 만약 빈 자리가 없다면 페이지 교체 알고리즘(LRU 등)을 수행해 기존 프레임을 디스크로 내보냅니다(Page-Out).
    4. 페이지 테이블 구조를 재갱신(Valid bit = 1)하고 원래 가동 중이던 명령을 재개합니다.
Developer Engineering - Software Architecture

분산 데이터 트랜잭션의 해법, 사가 패턴(Saga Pattern) 구조

Day 01 및 Day 03에서 학습한 MSA의 전제 조건인 '서비스별 데이터베이스 독립 구조'에서 분산 트랜잭션 일관성을 유지하기 위한 중추적 설계 패턴입니다.

  • 2PC(Two-Phase Commit)의 분산 락 한계: 여러 분산 DB 노드의 데이터 정합성을 일괄 보장하는 기존 2PC 아키텍처는 모든 노드에 일시적 락(Lock)을 걸어 대기시키므로 시스템 결합도가 극도로 강해지고 가용성이 급감합니다.
  • Saga 패턴의 사상 (최종적 일관성): 거대한 단일 글로벌 트랜잭션을 포기하고, 각각의 마이크로서비스 독립 영역에서 구동되는 **로컬 트랜잭션들의 연쇄적인 시퀀스**로 분산 트랜잭션을 쪼개어 제어하는 아키텍처입니다.
  • 보상 트랜잭션(Compensating Transaction) 메커니즘: 일련의 로컬 트랜잭션 구동 중, 4번째 마이크로서비스 단계에서 비즈니스 결함(예: 잔액 부족, 자원 할당 실패)이 발생했을 때 데이터 정합성을 맞추는 핵심 전략입니다. 분산 환경의 특성상 하드웨어적 완전 롤백이 불가능하므로, **앞선 1~3단계 성공 서비스들에 대해 비즈니스적으로 원상 복구를 시키는 역행렬 쿼리(보상 트랜잭션)**를 강제 연쇄 실행하여 최종적 일관성(Eventual Consistency) 상태를 만족시킵니다.
  • 구현 방식 체계:
    - Choreography (안무형): 중앙 통제자 없이 개별 서비스들이 이벤트를 발행/구독(Event Pub/Sub)하며 자율적으로 연쇄 트랜잭션을 이어가는 가벼운 방식입니다.
    - Orchestration (지휘형): 분산 사가 오케스트레이터(Saga Orchestrator) 컴포넌트를 중앙에 두고, 이 지휘자가 어떤 마이크로서비스에게 로컬 트랜잭션 및 보상 트랜잭션을 구동해야 하는지 일관되게 명령하고 상태 스택을 관리하는 정교한 방식입니다.

2. 디지털 뱃지 레벨 1~2 예상 문제집

Q1. 운영체제 가상 메모리 관리 체계에서 CPU가 요청한 가상 페이지가 실제 물리 RAM 메모리 프레임 공간에 존재하지 않을 때 발생하는 하드웨어 인터럽트 현상과, 이로 인해 보조기억장치에서 데이터를 메모리로 올리는 연산 명칭의 쌍으로 올바른 것은?

1) 캐시 미스 (Cache Miss) - 쓰기 백 (Write-Back)
2) 세그멘테이션 오류 (Segmentation Fault) - 콘텍스트 스위칭 (Context Switching)
3) 페이지 폴트 (Page Fault) - 페이지 인 (Page-In)
4) 스래싱 (Thrashing) - 디스크 스왑 아웃 (Swap-Out)
정답 및 해설 보기

정답: 3) 페이지 폴트 (Page Fault) - 페이지 인 (Page-In)
해설: 가상 메모리 주소 변환 과정에서 유효 비트가 0인 자원에 접근하면 하드웨어 인터럽트인 페이지 폴트(Page Fault)가 떨어집니다. 이 경우 OS는 트랩 핸들러를 가동해 스왑 메모리 영역에서 물리 메모리로 데이터를 다시 복원 적재시키는 '페이지 인(Page-In)' 과정을 수행합니다.

Q2. MSA 환경에서 다중 분산 데이터베이스의 원자성과 무결성을 보장하기 위한 아키텍처 패턴 중 사가 패턴(Saga Pattern)에 대한 특징으로 가장 거리가 먼 것은?

1) 하나의 글로벌 트랜잭션 안에서 관련 분산 노드 전체 데이터베이스 행에 동기식 배타적 락(Exclusive Lock)을 즉각 선점하여 데이터 즉시 정합성을 충족한다.
2) 일련의 로컬 트랜잭션 파이프라인 중간 단계에서 결함이 터지면, 이전 성공 단계들을 되돌리는 보상 트랜잭션 시퀀스를 트리거한다.
3) 코레오그래피(Choreography) 방식은 이벤트 브로커 기반 메시지 유통망 환경에서 각 마이크로서비스가 상호 이벤트를 유기적으로 구독하며 분산 상태를 전환한다.
4) 오케스트레이션(Orchestration) 방식은 별도의 중앙 상태 통제 컴포넌트가 각 서비스에게 실행해야 할 트랜잭션 플로우 흐름을 선언적으로 통제한다.
정답 및 해설 보기

정답: 1)
해설: 분산 노드 전체에 물리 락(Lock)을 강제 선점하여 즉시 일관성을 확보하는 모델은 2PC(Two-Phase Commit)의 특성입니다. 사가 패턴은 락을 포기하는 대신 비동기 메시징 체계와 로컬 트랜잭션의 체인 구조, 그리고 실패 시 수행되는 '보상 트랜잭션'을 통해 시간 지연형 정합성인 **최종적 일관성(Eventual Consistency)**을 완수하는 아키텍처 사상입니다.


💡 신기술 추가 지식 : 가상화 복제 엔진과 저수준 커널 파일 시스템 입출력 제어

물리 인프라 서버의 하드 디스크 볼륨을 가상머신(VM)이나 클라우드 스토리지 풀(SDS)로 완전 복제/이관하는 가상 마이그레이션(P2V/V2V) 및 데이터 보호 오케스트레이터의 핵심 밑바닥 시스템 메커니즘을 뜯어보면, 오늘 학습한 **운영체제 고유의 메모리 변환 및 스냅샷 파일 I/O 추적 기술**이 총동원됩니다. 가령 가동 중인 윈도우/리눅스 서버의 실시간 무중단 마이그레이션을 안정적으로 수행하기 위해서는, 볼륨 섀도우 복사(VSS) 장치나 커널 미니필터(MiniFilter) 드라이버 수준에서 특정 가상 주소 페이지 및 섹터 블록에 발생하는 쓰기 동작(Dirty Page/Block)을 초단위로 실시간 추적하고 캡처해야 합니다. 이 캡처된 변경 디스크 스트림을 Go 언어나 C++ 고속 소켓 채널로 관통시켜 타겟 인프라에 밀어 넣는 초정밀 로우 레벨 파일 시스템 입출력 공학은, 클라우드 가상 인프라 데이터 제어 솔루션의 고성능 가용성을 결정짓는 최상위 하드코어 기술 자산으로 매우 핵심적으로 다뤄지고 있습니다.