[서평] 가상 면접 사례로 배우는 대규모 시스템 설계 기초
시스템 설계 면접 관련이라고 해서 면접 형식의 책인줄 알았습니다. 하지만 실제로는 면접 관련 내용은 일종의 기술적 요구사항 파악 정도 입니다. 그리고 나머지는 해당 문제에 대한 기초적인 설계와 설명을 담고 있는 책입니다. 웹이나 앱 서비스의 백엔드 시스템 관련 내용을 다루고 있습니다. 읽고 난 후의 전반적인 느낌은 백엔드 개발자에게 많은 도움이 되는 책인 듯 합니다. 내용은 신입이나 초보가 보기에는 조금 어려울 수도 있습니다.
키-값 저장소, 분산 시스템을 위한 유일 ID 생성기, URL 단축기, 웹 크롤러, 알림 시스템, 뉴스 피드 시스템, 채팅 시스템, 검색어 자동 완성, 유튜브, 구글 드라이브 설계 등 각종 서비스나 기능에 대한 설계를 담고 있습니다. 상세한 설계라기보다는 큰 그림으로 보는 개괄적인 설계를 담고 있기 때문에 해당 내용을 완전히 이해하려면 내용 중에 나오는 많은 부분들을 찾아보거나 이해하고 있어야 합니다. 하지만 해당 설계에서 핵심이 될만한 구현 알고리즘에 대한 상세한 설명은 정말로 많은 도움이 되는거 같습니다.
앞에서 말했듯이 구현과 같은 코드적 상세사항은 가지고 있지 않습니다. 그것이 이 책의 큰 매력인거 같습니다. 이 책은 어느 정도 규모의 시스템을 탑다운으로 설계한다고 했을 때 필요한 것을 잘 설명하고 있습니다. 실제로 만든다면 쉽게 떠오르지 않고 리서치를 해서 알거나 구현 중에 알게되는 것들을 이 책에서는 참 쉽게 설명하고 있습니다.
마지막으로 안정 해쉬, 블룸 필터, 머클 트리 등등 해당 설계에 들어가는 주요 알고리즘을 추가로 알게되는 즐거움도 있는 책입니다. 국내에서 이런 설계는 회사에 들어가서 만들어진 것을 봐야만 알 수 있다는 것을 볼 때 이 책은 오래만에 나온 계속적으로 가지고 있어야 할 개발 서적의 하나인 거 같습니다.