개요 책에서는 데이터 시스템이 가져야 하는 가장 중요한 요소들 중 신뢰성(Reliability), 확장성(Scalability), 유지보수성(Maintainability)의 개념을 소개하고 이러한 목표를 달성하기 위한 방법을 설명한다. 신뢰성 개념 책에서 정의하는 개념은 다음과 같다. > 하드웨어나 소프트웨어 결함, 심지어 인적 오류(human error) 같은 역경에 직면하더라도 시스템은 지속적으로 올바르게 동작(원하는 성능 수준에서 정확한 기능을 수행)해야 한다. 소프트웨어에 대한 일반적인 기대치를 생각해보면 다음과 같다. 사용자가 기대한 기능을 수행한다. 사용자가 범한 실수 혹은 예상치 못한 사용법을 허용할 수 있다. 시스템 성능은 예상된 부하와 데이터 양에서 필수적인 사용 사례를 충분히 만족한다 시스템은 허가되지 않은 접근과 오남용을 방지한다. 이러한 것들을 "올바른 동작" 이라고 정의할 때, 무언가 잘못되더라도 지속적으로
왜 이 책을 골랐나? 첫 포스트에서도 말했듯, 나는 엔지니어로서의(현재는 데이터 엔지니어) 관점을 넓히기로 했다. 첫 째로 데이터 엔지니어 직무에 대한 이해도를 높이고(1) 다양한 데이터 관련 기술 인프라를 배우고(2) 최종적으로 이를 바탕으로 좋은 아키텍쳐를 설계할 수 있는 엔지니어가 되기(3) 위한 노력을 하고 있다. 그리고 이 목적들을 달성하기 위해서는 무작정 좋아보이는 기술을 학습하기 이전에 무엇을 어떻게 왜 해야 하는지 큰 그림을 그리는 것이 좋다고 판단했다. 그리고 이 목적을 달성할 수 있는 가장 좋은 방법 중 하나는 잘 정제된 책을 읽는 것이라고 생각했다. 그렇게 도서를 열심히 찾아보았고, 여러 후보들 중 가장 내 목적을 달성시켜줄 수 있을 것으로 판단되어 이 책으로 결정했다. 책에서 다루는 내용 이 책은 특정 기술의 설명서가 아니다. 그것보다는 데이터 시스템의 기초 원리부터 데이터베이스, 분산 시스템, 데이터 처리 방