문서 목록
⭐️는 필수 지식, 💡는 이해하면 좋은 지식이에요.

트랜잭션과 동시성 제어

개념 설명

ACID 속성을 바탕으로 한 트랜잭션 처리와 낙관적/비관적 락을 활용한 동시성 제어 기법.

핵심 포인트

  • ACID: 원자성(All or Nothing), 일관성(제약조건 유지), 격리성(간섭 방지), 지속성(영구 보존)
  • 낙관적 락: 버전 체크로 충돌 감지, 성능 우수하나 충돌 처리 복잡
  • Saga 패턴: 분산 트랜잭션에서 보상 트랜잭션으로 일관성 보장
  • 격리 수준: READ UNCOMMITTED < READ COMMITTED < REPEATABLE READ < SERIALIZABLE

예시 코드

// 낙관적 업데이트와 롤백
class OptimisticUpdater {
  constructor() {
    this.pendingUpdates = new Map();
  }
  
  async update(id, updates, apiCall) {
    const original = this.getCurrentData(id);
    
    // 즉시 UI 업데이트
    this.applyToUI(id, updates);
    this.pendingUpdates.set(id, { original, timestamp: Date.now() });
    
    try {
      const result = await apiCall(id, updates);
      this.pendingUpdates.delete(id);
      return result;
    } catch (error) {
      // 실패 시 롤백
      this.applyToUI(id, original);
      this.pendingUpdates.delete(id);
      throw error;
    }
  }
}

더 많은 내용을 확인하세요! 📚

트랜잭션과 동시성 제어의 전체 내용을 보시려면 프리미엄 플랜이 필요합니다.

✨ 모든 기술 문서 무제한 액세스

📝 실습 예제와 상세한 코드 설명

🎯 면접 예상 질문과 답변 가이드

플랜 비교하기