이롭게 현명하게

[R-LOG] 서평단 / 요즘 개발자를 위한 시스템 설계 수업 / 길벗 본문

T-LOG/R-LOG

[R-LOG] 서평단 / 요즘 개발자를 위한 시스템 설계 수업 / 길벗

dev_y.h 2025. 11. 18. 18:00
728x90
반응형

본 서평은 출판사의 서평단으로 선정되어 제공받은 도서를 읽고 작성하였습니다.

 

 


[목차]

들어가며

이 책은 어떤 책인가?

책 후기

추천 대상

마무리



[들어가며]

사이드 프로젝트를 진행하면서 팀의 협업 효율을 높이기 위해 어떤 구조로 프로젝트를 설계해야 할지에 대한 고민이 많았다.

'요즘 개발자를 위한 시스템 설계 수업'은 실제 서비스 사례를 통해 실무에서 적용할 수 있는 시스템 설계 패턴과 사고방식을 통해 고민을 해결해줄 것 같아 꼭 읽어보고 싶었다.

그러던 중 길벗 출판사에서 개발자 리뷰어 모집글을 보게 되었고 신청하게 되었다.

 


[이 책은 어떤 책인가?]

요즘 개발자를 위한 시스템 설계 수업

  • 제목 : 요즘 개발자를 위한 시스템 설계 수업
  • 저자 : [저자(글)] 디렌드라 신하, 테자스 초프라, [번역] 양문규
  • 출판사 : 길벗
  • 출판일 : 2025년 9월 26일

 

더보기

1부 시스템 설계 기초

1장 시스템 설계의 기본
1.1 시스템 설계의 정의
1.2 시스템 설계의 다양한 유형
1.3 업계에서 시스템 설계가 갖는 중요성
1.4 시스템 설계의 중요성을 엿볼 수 있는 실제 사례
1.5 요약

2장 분산 시스템의 속성
2.1 호텔 객실 예약 시스템으로 살펴보는 분산 시스템 예시
2.2 일관성
2.3 가용성
2.4 파티션 허용성
2.5 지연 시간
2.6 내구성
2.7 신뢰성
2.8 장애 허용성
2.9 확장성
2.10 요약

3장 분산 시스템의 이론과 데이터 구조
3.1 CAP 정리
3.2 PACELC 정리
3.3 비잔티움 장군 문제
3.4 FLP 불가능성 정리
3.5 일관된 해싱
3.6 블룸 필터
3.7 카운트-민 스케치
3.8 하이퍼로그로그
3.9 요약

2부 분산 시스템의 핵심 구성 요소

4장 분산 시스템의 기본 요소: DNS, 로드 밸런서, 애플리케이션 게이트웨이
4.1 DNS 이해
4.1.1 DNS 쿼리
4.2 DNS의 확장성, 신뢰성, 일관성
4.3 로드 밸런서
4.4 애플리케이션 게이트웨이
4.5 마이크로서비스 아키텍처
4.6 클라우드 네이티브 애플리케이션 게이트웨이 서비스 개요
4.7 온프레미스 옵션
4.8 요약

5장 시스템 구성 요소의 설계 및 구현: 데이터베이스와 스토리지
5.1 데이터베이스
5.2 키-값 저장소
5.3 확장성과 데이터 복제의 최적화
5.4 get 및 put 함수 구현
5.5 키-값 저장소의 장애 허용성과 장애 식별
5.6 시스템 설계 인터뷰: 키-값 저장소 설계 관련 질문과 전략
5.7 DynamoDB
5.8 컬럼 패밀리 데이터베이스
5.9 HBase
5.10 그래프 기반 데이터베이스
5.11 Neo4j 그래프 데이터베이스
5.11.1 Neo4j 자세히 살펴보기
5.12 관계형 모델링과 그래프 모델링
5.13 요약
5.14 참고 자료

6장 분산 캐싱
6.1 캐싱 정의
6.2 분산 캐시 설계
6.3 대표적인 분산 캐시 솔루션
6.4 요약

7장 발행/구독과 분산 큐
7.1 분산 시스템의 발전 과정
7.2 발행/구독 시스템 설계
7.3 카프카
7.4 카프카 스트림
7.5 키네시스
7.6 요약

3부 시스템 설계 실전으로 들어가기

8장 시스템 구성 요소 설계 및 구현: API, 보안, 메트릭
8.1 REST API
8.2 gRPC API
8.3 REST와 gRPC 비교
8.4 API 보안
8.5 분산 시스템 로깅
8.6 분산 시스템에서 메트릭
8.7 분산 시스템에서 알림
8.8 분산 시스템에서 트레이싱
8.9 요약

9장 URL 단축 서비스 설계
9.1 실제 활용 사례
9.2 API 설계
9.3 계산으로 문제 규모 파악
9.4 시스템 설계
9.5 요구 사항 검토
9.6 요약

10장 근접 서비스 설계
10.1 실제 활용 사례
10.2 API 설계
10.3 계산으로 문제 규모 파악
10.4 시스템 설계
10.5 요구 사항 검토
10.6 요약

11장 X 서비스 설계
11.1 기능적 요구 사항
11.2 비기능적 요구 사항
11.3 데이터 모델
11.4 시스템 규모 산정
11.5 고수준 설계 탐구
11.6 트윗 서비스 설계
11.7 사용자 서비스 설계
11.8 타임라인 서비스 세부 설계
11.9 검색 서비스 세부 설계
11.10 기타 고려 사항
11.11 요약

12장 인스타그램 서비스 설계
12.1 기능적 요구 사항
12.2 비기능적 요구 사항
12.3 데이터 모델 설계
12.4 시스템 규모 산정
12.5 고수준 설계
12.6 서비스 세부 설계
12.7 기타 고려 사항
12.8 요약

13장 구글 독스 서비스 설계
13.1 기능적 요구 사항
13.2 비기능적 요구 사항
13.3 데이터 모델
13.4 시스템 규모 산정
13.5 고수준 설계
13.6 마이크로서비스 세부 설계
13.7 기타 검토 사항 및 모범 사례
13.8 요약

14장 넷플릭스 서비스 설계
14.1 기능적 요구 사항
14.2 비기능적 요구 사항
14.3 데이터 모델
14.4 시스템 규모 산정
14.5 고수준 설계
14.6 서비스 세부 설계
14.7 CDN
14.8 요약

15장 시스템 설계 면접 준비를 위한 팁
15.1 시스템 설계 면접을 준비하는 방법
15.2 시스템 설계 면접을 위한 팁
15.3 요약

16장 시스템 설계 커닝 페이퍼
16.1 시스템 설계 면접에서는 어떤 구조를 기반으로 대답해야 할까?
16.2 사용 사례별로 어떤 데이터 저장소를 사용해야 할까?
16.3 사용 사례별로 어떤 데이터 구조를 선택해야 할까?
16.4 사용 사례별로 어떤 컴포넌트를 사용해야 할까?
16.5 사용 사례별로 어떤 프로토콜을 사용해야 할까?
16.6 사용 사례별로 어떤 솔루션을 적용해야 할까?
16.7 요약

 

 

 

 

 

이 책은 단순히 개념을 설명하는 것이 아닌 실제 서비스(X, 인스타그램, 구글, 넷플릭스 등) 설계 과정을 함께 다루고 있다.

실제 서비스의 구조가 어떻게 만들어지는지 알 수 있기 때문에 이를 바탕으로 클론 코딩을 해본다면 더 실전적인 학습이 될 것 같다.

그림과 실제 사례를 통해 초보자도 쉽게 이해할 수 있도록 구성되어 있어 부담 없이 읽을 수 있다.

이 책은 개발자들이 기능 구현을 넘어 성장하고 싶은 사람들에게 든든한 로드북이 되어줄 책이라고 느껴진다.

특히 면접까지 고려한 구성이라 실무와 취업 준비를 동시에 할 수 있다는 점이 인상적이다.

 

 

시스템 설계가 무엇인지 독자가 이해하기 쉽게 그림과 함께 제시하고 있다.

또한 시스템 설계의 유형을 소개하고 유형별로 어떤 방식으로 설계하는지를 설명하고 있다.

시스템 설계의 정의

 

옮긴이의 note를 통해 시스템에 대해 더 자세히 알 수 있다.

옮긴이 노트

 

분산 시스템의 설계 과정을 설명하며 호텔 객실 예약 시스템을 예시로 설명하고 있다.

실제 서비스 사례를 기반으로 설명하고 있어 실무 관점에서 이해하기에 더욱 유용하다.

분산 시스템에서 다뤄야 하는 개념들에 관해서도 설명하고 있다.

분산 시스템의 설계 과정

 

분산 시스템의 기초 이론에 관해 설명하고 있다.

여러 이론과 알고리즘, 데이터구조가 시스템 설계에서 어떻게 활용되는지를 보여준다.

이론이 어떻게 적용되는지 쉽게 이해할 수 있도록 시나리오를 통해 설명하고 있다.

분산 시스템의 이론과 데이터 구조

 

어떻게 하면 확장성이 좋고 안정적인 시스템을 구축할 수 있는지에 대해 다루고 있다.

DNS, 로드 밸런서, 애플리케이션, 게이트웨이 등 세부 원리를 깊이 이해할 수 있도록 개념을 그림과 예시로 풀어내고 있다.

단순한 정의서에 그치지 않고 실제 상황에 맞게 어떤 알고리즘을 선택해야 하는지도 함께 다루어 실무 감각을 높여준다.

DNS와 로드 밸런서의 대한 내용

 

프로젝트가 성장할수록 데이터베이스에는 많은 정보가 축적된다.

그래서 데이터베이스는 프로젝트에서 가장 중요한 역할을 한다.

이 책은 이러한 데이터를 효율적으로 활용하기 위한 원리를 설명하며 데이터베이스 기본 개념부터 다루고 있다.

데이터베이스에 대한 설명

 

특히 키-값 저장소의 설계 방식과 함께 get과 put을 어떻게 구현해야 하는지, 장애를 어떻게 관리해야 하는지 나와있다.

키-값 저장소

 

7장에서는 분산 시스템의 패턴과 아키텍처의 역할에 대해 발행/구독 시스템 설계를 예시로 들어 설명하고 있다.

카프카가 무엇인지 핵심 개념을 설명하고 카프카 스트림에 대해서 설명하고 있다.

분산 시스템 패턴과 아키텍처, 카프카에 대한 설명

 

인스타그램 서비스가 어떻게 설계되어 있는지 보여주고 있다.

인스타그램 서비스 설계

 

기능적/비기능적 요구사항이 명시되어 있다.

데이터 모델 설계를 통해 데이터베이스 구조를 이해할 수 있도록 돕고 있다.

사진 업로드와 조회 과정, 뉴스 피드, 실시간 업데이트, 피드 동기화 등 서비스의 핵심 흐름을 구체적으로 설명해 클론 코딩을 하기에 좋은 내용이다.

기능적/비기능적 요구사항 및 데이터 모델 설계

 

시스템 설계에 대한 면접 준비 팁이 나와있다.

시스템 설계 면접 준비를 위한 팁

 

 


[책 후기]

애플리케이션을 한 번이라도 만들어 봤다면 이 책을 재미있게 읽을 수 있다.

개발 입문자에게는 어려울 수 있지만 그만큼 성장할 수 있는 학습 과정이 담겨있다.

시스템 설계의 기초부터 분산 시스템, 데이터 구조, 캐싱, 큐, API, 보안까지 실무자가 알아야 할 핵심 요소를 폭넓게 다루고 있다.

또한 트위터(X), 인스타그램, 구글 독스, 넷플릭스 등 실제 서비스 사례를 바탕으로 설명하고 있어 설계 사고를 확장하는 데 큰 도움이 된다.

 

복잡한 개념을 쉽게 이해할 수 있게 하려고 그림과 일러스트로 설명하고 있다.

'어떻게 설계해야 할까?'라는 고민을 찾아가는 과정이 담겨있다.

실제 서비스를 기반으로 한 설명 덕분에 설계 사고를 높일 수 있었다.

단순히 시스템을 구현하기 위한 기술서가 아니라 문제를 바라보는 관점과 설계의 원칙, 그리고 사용자 경험과 비즈니스 목표까지 고려하는 설계의 본질을 일깨워 주는 책이다.

 

단순 기능 구현을 넘어 서비스 전체를 바라보고 설계 역량을 키우고 싶은 신입 개발자와 테크 리더라면 꼭 읽어볼 만한 책이다.

 

 


[추천 대상]

  • 시스템 설계/아키텍처에 관심 있는 개발자
  • 대규모 서비스를 설계, 운영해보고 싶은 개발자
  • IT 면접, 시스템 설계 관련 기업(빅테크 등)을 준비하는 개발자
  • 소프트웨어 엔지니어 개바자
  • 기술 팀 팀장 및 테크 리드
  • 컴퓨터 공학 전공생

[마무리]

이 책은 내용이 방대해 한 번에 읽기보다는 관심 있는 주제부터 골라 읽어도 충분히 도움이 된다.

각 챕터를 천천히 읽으며 내가 진행했던 프로젝트나 경험에 비추어 보면 개념이 훨씬 더 잘 이해된다.

실무 경험이 있거나 특정 주제에 관심이 있다면 그 장부터 읽는 것도 좋은 방법이다.

 

처음에는 '정보처리기사 대비용으로 읽어도 괜찮지 않을까?'라는 생각이 들었다.

하지만 시험 대비용보다는 실무를 깊게 이해하는 데 더 적합했다.

특히 개발자의 설계 사고를 정리하고 확장하는 데 유용하다.

 

사이드 프로젝트를 진행하면서 기능 구현은 AI가 도와주고 있다.

하지만 서비스를 어떻게 설계하고 확장할지는 사람이 깊게 고민해야 할 영역인 것 같다.

좋은 서비스를 만들기 위해서는 규모와 상관없이 설계에 대한 이해와 고민이 필수적이라는 것을 느끼는 요즘이다.

 

AI가 발전하면서 개발자는 단순히 기능을 구현하는 것을 넘어 유지보수와 확장성 있는 시스템을 설계하는 능력이 개발자의 경쟁력이라고 생각된다.

 


잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!☺️

댓글과 좋아요는 큰 힘이 됩니다!

728x90
반응형
Comments