1 minute read

<데이터 중심의 애플리케이션 설계>는 데이터 시스템의 근간이 되는 트레이드오프와 다양한 원리들을 다룬다. 다양한 프로덕트에서 접목할 수 있는 다양한 시스템 디자인들을 탐구해볼 수 있는 명저이다.

DDIA Book Cover

저자는 “NoSQL”, “빅데이터”, “웹스케일” “샤딩”, “ACID”, “CAP 이론”라는 단어처럼 유행어(buzzwords)에 매몰되지 말라는 말을 서두에서 전하고 있다. 이 책을 중간중간 읽다가보면 이런 단어가 본질적인 개념을 완전히 표현하지 못한다는 것을 알 수 있다.

600페이지 가량의 두꺼운 책을 읽는 목적은 무엇이 되어야 할까? 이 책을 읽어서 얻어야 할 지혜는 급격한 기술의 변화에도 변하지 않는 법칙을 배우는 것이어야 한다. 기본적인 디자인 시스템의 원리를 파악하고 이해하면 어떠한 툴이 어떠한 목적에 맞는지를 알 수 있다. 또한 어떠한 것을 피해야할지도 알 수 있다.

다행스럽게도, 기술의 빠른 변화에도 변하지 않는 원리는 그대로 남아 있다. 당신이 이러한 원리를 이해한다면 어떠한 툴이 적합한지, 어떻게 이것의 최대한의 장점을 이끌어내는지 함정을 피할 수 있는지를 알 수 있다. 이것이 바로 이 책이 필요한 이유다.

책의 목차를 살펴보면,

  1. 데이터 시스템의 기초: 확장성과 신뢰성 있으며 유지보수가능한 애플리케이션이 무엇인지에 대해 다룬다. 또한 SQL, No-SQL 등으로 나눠지는 데이터 모델과 Storage는 어떤 것이 어떠한 데이터베이스에 적합한지에 대해 다룬다.
  2. 분산 데이터: 데이터베이스를 안정적이면서 성능을 떨어뜨리지 않는 여러 방법들을 설명한다. 데이터베이스 리플리케이션과 파티셔닝, 트랜잭션, 분산 시스템의 취약점과 일관성(Consistency) 및 합의(Consensus)를 다룬다.
  3. 파생 데이터: 원본 데이터를 가공 하는 다양한 방법(Batch, Stream)들에 대해 다룬다. 또한, 미래의 데이터 시스템이 무엇이 될지에 대해서도 살펴본다.