전체적인 아키텍처나 설계를 염두에 두지 않고 프로그래밍하는 것은 손전등만 들고 동굴을 탐험하는 것과 같습니다. 지금까지 어떤 길을 걸어왔는지, 어디로 가는지, 심지어 본인이 어디에 있는지도 모르죠.

Programming without an overall architecture or design in mind is like exploring a cave with only a flashlight: You don’t know where you’ve been, you don’t know where you’re going, and you don’t know quite where you are.

– 대니 소프(Danny Thorpe)

델파이(Delphi) 프로그래밍 언어의 주요 공헌자인 미국 개발자 대니 소프의 말입니다. 전체를 봐야 한다는 말은 어쩌면 당연하게 들리겠지만, 전체를 조망할 수 있는 그 방법을 몰라 헤매일 수 있습니다. 특히 오늘날 널리 쓰이는 분산 시스템의 형태를 구축해 나가기 시작할 무렵에는, 설계에 대한 안내가 없었던 개발자들이 실제로 손전등만 들고 시스템이라는 동굴을 탐험하는 기분이었을 것입니다.

과거 1950년대에는 하나의 대형 컴퓨터에서 단일 또는 여러 개의 업무를 처리했습니다. 그리고 네트워크 기술이 발전하면서 1980년부터는 여러 개의 컴퓨터가 동일한 일을 처리하기 위해 통신하며 협력하는 분산 시스템을 사용하기 시작했습니다. 네트워크로 연결된 기기가 여러 자원을 공유하고, 작업을 분배(load balancing)하기도 하며 효율적이고 안정적인 환경을 구축할 수 있게 되었죠. 이런 분산 시스템을 아마존, 구글, MS와 같은 큰 기업에서는 발 빠르게 구축하기 시작했습니다.

출처: computersciencewiki.org

네트워크 기술이 크게 발전하고 클라우드 서비스가 확장되면서, 오늘날 많은 애플리케이션은 분산 시스템에 의존하고 있습니다. 따라서 분산 시스템에 대한 기본적인 이해를 갖춰야 우리가 사용하는 시스템을 온전히 설계할 수 있습니다.

분산 시스템이 본격적으로 퍼지기 시작한 2000년대 초반부터, 두 명의 저자 중 저자 알렉스 쉬는 다양한 글로벌 기업에 근무하며 시스템을 함께 구축해 나갔습니다. 손전등만 들고 시스템 동굴을 탐험한 개발자 중 한 명은, 바로 이 책의 저자였지도 모릅니다.

책에는 저자 외에도 많은 엔지니어와 매니저가 적극적으로 자신의 경험과 지식을 녹였습니다. 아마존, 어도비, 구글, 텐센트, 이베이 등 글로벌 기업에서 시스템 설계에 몸담은 핵심 인물들이 책의 일부를 직접 쓰기도 하며 집대성했기 때문에 시스템 설계를 시작하는 사람들에게는 학습 자료를 넘어 설계 안내서이자 훌륭한 멘토가 될 것입니다. 

복잡한 시스템을 설계하고 구현하기를 좋아하는 알렉스는 ByteByteGo를 운영하며 개발자들에게 유익한 뉴스레터와 영상도 꾸준히 제공하고 있으니, 책에 담긴 내용 외에 기술에 대한 재미있는 글을 더 보고 싶다면 참고해 주세요.

책 안에는 ‘시스템 설계 청사진 완벽 가이드’ 포스터가 들어있습니다. 청사진에서는 ANS, 로드밸런서, API 게이트웨이, 비디오 및 이미지 처리, 캐시, 데이터베이스, 분산 ID 생성기 등 주요 구성 요소를 한눈에 파악할 수 있습니다. 지금도 고생하고 있을 수많은 개발자를 위해 청사진 PDF를 무료로 공개하니, 확장 가능하고 안정적인 시스템을 효율적으로 설계하는 데 널리 도움이 되길 바랍니다. (고해상도 PDF 다운로드 링크)

1장 근접성 서비스
2장 주변 친구
3장 구글 맵
4장 분산 메시지 큐
5장 지표 모니터링 및 경보 시스템
6장 광고 클릭 이벤트 집계
7장 호텔 예약 시스템
8장 분산 이메일 서비스
9장 S3와 유사한 객체 저장소
10장 실시간 게임 순위표
11장 결제 시스템
12장 전자 지갑
13장 증권 거래소

처리율 제한 장치 | 안정 해시 | 키-값 저장소 | 분산 시스템을 위한 유일 ID 생성기 | URL 단축기 | 웹 크롤러 | 알림 | 뉴스 피드 | 채팅 | 검색어 자동완성 | 유튜브 | 구글 드라이브

1권에 대해 더 알고 싶다면 다음 블로그 글을 참고해 주세요.

《가상 면접 사례로 배우는 대규모 시스템 설계 기초 2》는 다음 서점에서 구입하실 수 있습니다.

Yes24 | 교보문고 | 알라딘

정오표