가상 면접 사례로 배우는 대규모 시스템 설계 기초 1장 내용을 정리한 글입니다. 개요 한 명의 사용자를 지원하는 시스템에서 출발하여 단계적으로 몇 백만 사용자를 지원하는 시스템을 설계한다. 단일 서버 모든 컴포넌트가 단 한 대의 서버에서 실행되는 간단한 시스템 웹 앱, 데이터베이스, 캐시 등이 전부 한대에서 실행된다. 사용자의 요청은 DNS를 통해 ip 주소를 얻어낸 후 전달된다. 데이터베이스 분리 웹 서버 계층과 데이터베이스 서버 계층을 독립적으로 확장할 수 있게 된다. 수직적 확장(Scale Up) vs 수평적 확장(Scale Out) 수직적 확장 CPU, RAM 등 서버 성능을 업그레이드 하는 것을 의미한다. 서버 성능을 업그레이드하는 데에는 물리적, 비용적 한계가 있다. 장애에 대한 복구, 다중화..