가상 면접 사례로 배우는 대규모 시스템 설계 기초 | 알렉스 쉬 - 교보문고
가상 면접 사례로 배우는 대규모 시스템 설계 기초 | 페이스북의 뉴스 피드나 메신저,유튜브, 구글 드라이브 같은 대규모 시스템은 어떻게 설계할까? IT 경력자라도 느닷없이 대규모 시스템을 설
product.kyobobook.co.kr
이번에도 지인이 추천해주셨고, 이전 프로젝트를 진행하면서 시스템 자체를 설계하는 능력이 필요하다 느꼈다.
솔직히 말하면 나는 "DB- 백엔드 - 프론트엔드" 밖에 몰라서, 이전 프로젝트에서 너무 고생을 많이 했다.
한줄평 : 반드시 읽어야하는 필수적인 책. 시스템 설계, 구조, 규모에 대해서 매우 읽기 쉽게 설명해주신다.
[책의 핵심 내용]

위 내용은 책에서 제공하는 청사진이다. 청사진에 있는 모든 내용을 얇게 배우는 데, 그 중 아래 공통적인 내용과 도메인의 특성을 잘 조합해서 서비스를 설계하는 것이 이 책의 핵심 내용이다.
[공통 내용]
- 수직적/ 수평적 확장
- 캐시
- CDN
- 큐 / 메시지 큐
책의 각 챕터는 모의 면접(가상 면접)을 보는 거라 가정하고 진행한다. 한 챕터만 간단하게 정리를 진행한다.
1. 기술에 대한 간단한 소개
비디오 플랫폼 유튜브를 설계한다.
[유튜브 필요 요건]
- MAU 20억
- 비디오 플레이 횟수 : 50억
- Creater : 5000만명
- ....
2. 가상 면접 진행
제약조건에 대해서 소개 및 구체화를 대화 형식으로 진행한다.
- 회사 : 유튜브 필요 요건에 대한 설명
- 면접자 : 비디오 크기 등 제한 조건 구체화 (비디오 최대 크기는 1GB)
- 면접자 : 암호화, 기존 클라우드 서비스 사용 가능 여부 구체화
3. 기초 설계 진행

- 필요한 요소들을 단순 배치한다. (캐시도 필요하고, DB도 필요하고 등등)
- 책의 저자가 생각할 때, 필요한 부분을 개선하고 부연 설명한다. (캐시에서 00 요소도 더 고려되어야한다. 이 서버는 분리되면 좋다 등등)
4. 상세 설계 진행
각 파트에 더욱 상세한 설계를 진행하거나 조건을 추가한다.


[비디오 트랜스 코딩 서버 상세 설계]
- 호환성을 고려하여 여러 포맷으로 인코딩하여 저장해야한다.
- 대역폭에 따라서, 고화질 / 저화질 비디오 재생을 나눠서 보낸다.
- 모바일은 네트워크 상태가 자주 바뀌므로 수시로 화질을 변경함이 바람직하다.
- 인코딩 알고리즘을 선정한다.
그 후, 위 사진처럼 하나의 서버를 더 자세하게 해야할 일로 분류하며 구체화해나간다. (트랜스코딩 서버 > 트랜스 코딩 서버 아키텍처 > DAG 스케줄러, ....)

반드시 고려해야하는 부분이 모두 고려되었다면, 최적화나 상황에 따른 조언을 해준다. 위 사진은 속도를 최적화하기 위하여 메시지큐를 각 과정에 도입하여 느슨한 시스템을 만드는 예시이다.
5. 마무리
이 책에서 다루지 않은 비슷한 내용들을 공유한다.
- 라이브 스트리밍
- 저작권 위반 비디오를 트랜스파일 서버에서 잡아내기
[ 평가 ]
장점
- 쉬운 단어와 문장으로 초보자도 읽기 좋다.
- 큰 규모의 설계를 기준으로 설명해주기 때문에 인사이트를 얻기 좋다.
- 시스템 설계에 대해서 배울 수 있으며, 처리율 제한 장치 등 생소한 시스템에 대해서도 많이 배울 수 있다.
단점
- 없다.
결론
- 이 책을 강하게 추천한다.
- 이 책이 "기초"인 이유는 실제 구현에서 고려해야하는 것이 너무나 많고, 복잡하기 때문이라 생각한다. 더 많이 공부하고 성장해야할 것이다.
- 직접 이런 설계를 다 해볼 수 있다면 정말 좋은텐데, 어렵겠지...
- 작년에 2도 나와서 기대 중이다. 결제모듈 시스템이 있어서 더 기대된다.
'책과 강연 > 독후감 - 개발' 카테고리의 다른 글
| [도서 리뷰] 프롬프트 엔지니어링의 비밀 (2) | 2025.02.06 |
|---|---|
| [도서 리뷰] 리액트 훅을 활용한 마이크로 상태 관리 (0) | 2025.01.21 |
| [독후감] 혼자 공부하는 컴퓨터구조 + 운영체제 / 네트워크 (2) | 2024.11.18 |
| [독후감] 클린코드 (0) | 2024.02.13 |
| [독후감] 구글 엔지니어는 이렇게 일한다 (1) | 2024.02.12 |