출판사 및 저자


책 소개

이 책은 현대에 데이터를 다룰 때 발생하는 많은 문제점들과 이를 해결하기 위한 많은 방법들을 원리에서부터 실제 적용한 제품들까지에 이르는 폭 넓은 내용을 이야기합니다. 여러 가지 내가 해결하고자하는 문제 상황에서 사용하는 데이터의 성질에 따라 발생할 수 있는 문제들에는 무엇이 있고, 이를 해결하기 위해서는 어떤 기술을 사용하는 것이 좋을지에 대한 인사이트를 얻을 수 있었습니다.

최근 백엔드 개발자로써 다룰 수 있는 기술 여러 가지 중에서 데이터를 다루는 기술이 핵심적이라는 생각을 하고 있습니다. 이는 날이 갈수록 데이터가 생성되는 속도는 빨라지고 있고, 또한 다양해지고 있기 때문입니다. 그리고 이런 데이터들 별로 공학적이나 경제적으로 효율적인 해결 방법을 내놓는 것은 백엔드 개발자의 책무라고 생각합니다.

근래에 진행하고 있는 채팅 어플리케이션 프로젝트 같은 경우에도 사용자의 메시지, 사용자의 프로필, 사용자의 친구 목록, 사용자의 채팅방 목록, 채팅방의 메시지 등과 같은 다양한 데이터들을 다루게 됐습니다. 이 책을 읽어보면서 제가 다루고 있는 데이터들에 적용할 수 있는 다양한 기술들에 무엇이 있는지와 그 장단점을 고민해 볼 수 있는 시간을 가질 수 있어 좋았습니다. 이를 통해 현재 프로그램이 단순히 동작하는 프로그램을 넘어서, 오랜 기간 다양한 요구에 부합할 수 있도록 설계하는 고민을 하는 데 도움을 받았습니다.

다만 ‘프로그래머의 뇌’에서 사용한 표현을 빌리자면, 이 책은 굉장히 많은 부하를 요구하는 책입니다. 데이터베이스의 원리부터 시작해서, nosql, 분산시스템, 스트림 등 정말 다양한 주제를 다루고 있습니다. 굉장히 흥미롭고 현재 제가 읽어야하는 책이긴 했지만 동시에 조금 버겁기도 했던 것 같네요. 당장은 한 번 ‘아 이런 게 있구나’ 정도를 가볍게 알아두고 관련된 기술을 사용하게 될 때 겁없이 다가갈 수 있는 원동력을 얻었다는 정도로 만족해야할 것 같습니다. 못해도 올해 말에서 내년 초 정도에는 한 번 더 읽으면 더 많은 것을 깨달을 수 있지 않을까 싶네요.

현재 혹은 나중에라도 여러 종류의 데이터들을 효율적으로 다뤄야하는 문제를 겪게 되실 것 같다면, 이 책을 읽어보시는 것을 통해 도움을 받으실 수 있을 것이라 생각합니다.


2024-03-10
다음 글: 가상 면접 사례로 배우는 대규모 시스템 설계 기초 → 카테고리로 돌아가기 ↩