Seonb2n

데이터 중심 애플리케이션 설계10

일괄 처리 개요 10장에서는 요청-응답 방식의 온라인 시스템과 대비되는 배치 처리 시스템에 대해 다룹니다. 배치 처리는 대규모 데이터를 처리하여 파생 데이터를 생성하는 핵심 구성 요소입니다. 1. 배치 처리의 정의와 특징 핵심 개념 고정된(bounded) 크기의 대량 데이터를 입력으로 처리 입력 데이터를 수정하지 않고 새로운 데이터...

데이터 중심 애플리케이션 설계09

일관성과 협의 분산 시스템에서 가장 어려운 문제 중 하나는 여러 노드에 걸쳐 있는 데이터를 일관성 있게 유지하는 것입니다. 네트워크 지연, 노드 장애, 메시지 손실 등의 문제가 언제든 발생할 수 있는 환경에서 모든 노드가 동일한 상태를 유지하기 위해서는 많은 사항을 고려해야합니다. 최종 일관성의 함정 대부분의 복제된 데이터베이스는 최종 일관성...

데이터 중심 애플리케이션 설계08

분산 시스템의 골칫거리 분산 시스템에서는 언제나 문제가 일어날 수 있다. 분산 시스템을 다루는 것은 한 컴퓨터에서 실행되는 소프트웨어를 작성하는 일과는 근본적으로 다르다. 서버 개발자가 분산 환경에서 마주하게 되는 가장 큰 도전은 부분 실패의 비결정적 특성을 다루는 것이다. 분산 시스템에서 시스템이 커질수록 구성 요소 중 하나가 고장날 가능성도...

데이터 중심 애플리케이션 설계07

트랜잭션 트랜잭션이란 무엇인가 트랜잭션은 여러 데이터베이스 작업을 하나의 논리적 단위로 묶어서 처리하는 메커니즘이다. 시스템에 오류가 발생하더라도 데이터베이스가 일관된 상태를 유지할 수 있도록 보장한다. ACID 속성 트랜잭션의 안전 보장은 ACID라는 네 가지 속성으로 설명된다: 원자성 (Atomicity) 트랜잭션 내의 모든 작업이 전...

데이터 중심 애플리케이션 설계06

파티셔닝 파티셔닝 개요 파티셔닝의 정의와 목적 파티셔닝(Partitioning)은 대규모 데이터셋을 여러 작은 부분집합으로 나누어 여러 노드에 분산 저장하는 기술입니다. 이는 단일 머신으로는 처리하기 어려운 대규모 데이터나 높은 쿼리 처리량을 효과적으로 관리하기 위한 핵심 전략입니다. 주요 목적: 확장성: 데이터와 쿼리 부하를 여러 노...

데이터 중심 애플리케이션 설계05

복제 데이터 복제란? 데이터 복제는 네트워크로 연결된 여러 머신에 동일한 데이터의 복사본을 유지하는 것을 의미합니다. 복제의 목적 데이터 복제를 사용하는 주요 이유는 다음과 같습니다: 신뢰성 향상: 하드웨어 장애나 소프트웨어 오류로 인한 데이터 유실을 방지합니다. 여러 복제본을 유지함으로써 단일 장애점을 제거할 수 있습니다. 가용성 증대...