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

12 posts

12장: 데이터 시스템의 미래

파생 데이터 12장: 데이터 시스템의 미래 데이터 통합 문제가 주어졌을때 모든 문제를 만족하는 하나의 해결책은 없지만 상황에 따라 적절한 서로 다른 접근법이 많이 있다 파생 데이터에 특화된 도구의 결합 포스트그레스큐엘 같은 디비는 간단한 애플리케이션 만들기에 충분한 전문 색인 기능이 포함되어 있지만 더 복잡한 검색 기능을

13 min read

11장: 스트림 처리

파생 데이터 11장: 스트림 처리 "복잡하지만 잘 작동하는 시스템은 예외 없이 간단하지만 잘 작동하는 시스템으로부터 발전한다. 이 명제는 역도 참이다. 처음부터 복잡하게 설계된 시스템은 절대 작동할 리도 없고 작동하게 만들지도 못한다." 존갈, 체계론 일괄처리는 입력으로 파일 집합을 읽어 출력으로 새로운 파일 집합을 생성

11 min read

10장: 일괄 처리

파생 데이터 1부와 2부에서는 디스크에 저장된 데이터의 레이아웃부터 결함이 있는 상황에서의 분산된 일관성의 한계까지 분산 데이터베이스로 가기위해 고려해야 할 모든 주요사항을 밑바닥부터 다뤘다 데이터를 저장하고 처리하는 시스템 레코드 시스템 : 데이터를 레코드 단위로 저장하고 읽는다 파생 데이터 시스템 : 데이터를 레코드

13 min read

09장: 일관성과 합의

분산 데이터 09장: 일관성과 합의 결함의 가장 간단한 해결방법은 서비스가 실패하도록 두고 사용자에게 오류메시지를 보내는것 내결함성을 지닌 시스템을 구축하는 가장 좋은 방법은 유용한 보장을 해주는 범용 추상화를 찾아 이를 구현하고 애플리케이션에서 이 보장에 의존하게 하는것 분산시스템에 가장 중용한 추상화 중 하나는 합의

15 min read

08장: 분산 시스템의 골칫거리

분산 데이터 08장: 분산 시스템의 골칫거리 엔지니어로서의 우리의 임무는 모든 게 잘못되더라도 제 역할을 해내는 시스템을 구축하는것 결함과 부분 장애 하드웨어가 올바르게 동작하면 같은 연산은 항상 같은 결과를 낸다(결정적이다) 부분 장애(partial failure) : 분산시스템에서는 시스템의 어떤 부분은 잘 동작하지만

12 min read

07장: 트랜잭션

분산 데이터 07장: 트랜잭션 트렌젝션은 데이터베이스의 여러문제를 단순화하는 메커니즘으로 채택돼 왔다 트랜젝션은 애플리케이션에서 몇개의 읽기와 쓰기를 하나의 논리적 단위로 묶는 방법이다. 데이터베이스에 접속하는 애플리케이션에서 프로그래밍 모델을 단순화하려는 목적으로 만든것이다 트랜잭션 격리 수준(isolation leve

11 min read

06장: 파티셔닝

분산 데이터 06장: 파티셔닝 데이터셋이 매우 크거나 질의 처리량이 매우 높다면 복제만으로는 부족하고 데이터를 파티션으로 쪼갤 필요가 있다 이작업을 샤딩이라고도 한다 파티션을 나눌때 보통 각 데이터 단위가 하나의 파티션에 속한다 파티셔닝의 주된 이유 : 확장성 파티셔닝과 복제 보통 복제와 파티셔닝을 함께 적용해 각 파티션

10 min read

05장: 복제

분산 데이터 기술이 성공하기 위해서 홍보보다 현실이 우선돼야 한다. 자연을 속일 수는 없기 때문이다 Richard Feynman 여러 장비 간 분산된 데이터베이스를 필요로 하는 이유 확장성 내결함성/고가용성 지연시간 고부하로 확장 수직확장, 용량확장, 공유메모리 아키텍처 비공유 아키텍처 수평확장 복제 대 파티셔닝 여러 노

9 min read

04장: 부호화와 발전

데이터 시스템의 기초 04장: 부호화와 발전 만물은 변한다 그대로 있는 것은 아무것도 없다 헤라클레이토스 시스템이 계속 원활하게 실행되게 하려면 양방향 호환성을 유지해야 된다 하위호환성 (backwards compatibility) 새로운 코드는 예전 코드가 기록한 데이터를 읽을수 있어야 된다 상위호환성 (forward

7 min read

03장: 저장소와 검색

데이터 시스템의 기초 03장: 저장소와 검색 데이터베이스의 두가지 작업 데이터를 저장하고 데이터를 조회하는 것 로그 구조 계열 저장소 엔진, 페이지 지향 계열 저장소 엔진 데이터베이스를 강력하게 만드는 데이터 구조 데이터베이스에서 특정 키의 값을 효율적으로 찾기 위해서 필요한 데이터 구조는 색인 이다 색인의 일반적인 개념

9 min read

02장: 데이터 모델과 질의 언어

데이터 시스템의 기초 02장: 데이터 모델과 질의 언어 대부분의 애플리케이션은 하나의 데이터 모델 위에 다른 데이터 모델을 계층을 둬서 만듬 관계형 모델과 문서 모델 가장 잘알려진 데이터 모델은 1970년 에드가 코드가 제안한 관계형 모델을 기반으로 한 SQL 데이터는 관계로(테이블) 구성되고 각 관계는 튜플(로우) 모음

6 min read

01장: 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션

데이터 시스템의 기초 01장: 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션 오늘날 소프트웨어는 계산 중심 과는 다르게 데이터 중심적이다 데이터 베이스 캐시 검색 색인 스트림 처리 일괄 처리 소프트웨어 시스템의 관심사 신뢰성 확장성 유지보수성 신뢰성 애플리케이션은 사용자가 기대한 기능을 수행한다 시스템은 사

3 min read