본문 바로가기

독서/가상 면접 사례로 배우는 대규모 시스템 설계 기초13

15장. 구글 드라이브 설계 1단계. 문제 이해 및 설계 범위 확정기능적 요구사항파일 추가. 가장 쉬운 방법은 구글 드라이브 안으로 떨구는(drag-and-drop) 것이다.파일 다운로드여러 단말에 파일 동기화. 한 단말에서 파일을 추가하면 다른 단말에도 자동으로 동기화 되어야 한다.파일 갱신 이력 조회파일 공유파일이 편집되거나 삭제되거나 새롭게 공유되었을 때 알림 표시비-기능적 요구사항안정성 : 저장소 시스템에서 안정성은 아주 중요하다. 데이터 손실은 발생하면 안된다.빠른 동기화 속도네트워크 대역폭 : 제품이 네트워크 대역폭을 불필요하게 많이 소요한다면 사용자는 불편할 것이다.규모 확장성 : 이 시스템은 아주 많은 양의 트래픽도 처리 가능해야 한다.높은 가용성 : 일부 서버에 장애가 발생하거나, 느려지거나, 네트워크 일부가 끊겨도.. 2023. 12. 30.
14장. 유튜브 설계 1단계. 문제 이해 및 설계 범위 확정아래와 같은 기능을 갖는 비디오 스트리밍 서비스 설계에 초점을 맞춘다.빠른 비디오 업로드원활한 비디오 재생재생 품질 선택 기능낮은 인프라 비용높은 가용성과 규모 확장성, 안정성지원 클라이언트 : 모바일 앱, 웹브라우저, 스마트 TV개략적 규모 추정일간 능동 사용자(DAU: Daily Active User)수는 5백만(5million)한 사용자는 하루에 평균 5개의 비디오를 시청10%의 사용자가 하루에 1비디오 업로드비디오 평균 크기는 300MB비디오 저장을 위해 매일 새로 요구되는 저장 용량 = 5백만 x 10% x 300MB = 150TBCDN비용클라우드 CDN을 통해 비 디오를 서비스할 경우 CDN에서 나가는 데이터의 양에 따라 과금한다.아마존의 클라우드프론트(C.. 2023. 12. 30.
13장. 검색어 자동 완성 시스템 가장 많이 이용된 검색어 k개를 자동완성하여 출력하는 시스템을 설계한다. 1단계. 문제 이해 및 설계 범위 확정 요구사항 빠른 응답 속도 : 사용자가 검색어를 입력함에 따라 자동완성 검색어도 빠르게 표시 되어야한다. 연관성 : 자동완성되어 출력되는 검색어는 사용자가 입력한 단어와 연관된 것이어야 한다. 정렬 : 시스템의 계산 결과는 인기도 등의 순서 모델에 의해 정렬되어 있어야 한다. 규모 확장성 : 시스템은 많은 트래픽을 감당할 수 있도록 확장 가능해야한다. 고가용성 : 시스템에 장애가 발생하거나 느려지거나 예상치 못한 네트워크 문제가 생겨도 시스템은 계속 사용 가능해야한다. 개략적 규모 추정 일간 능동 사용자(DAU)는 천만 명으로 가정한다. 평균적으로 한 사용자는 매일 10건의 검색을 수행한다고 가.. 2023. 12. 30.
12장. 채팅 시스템 설계 1단계. 문제 이해 및 설계 범위 설정 응답지연이 낮은 일대일 채팅 기능 최대 100명까지 참여할 수 있는 그룹 채팅 기능 사용자의 접속상태 표시 기능 다양한 단말 지원, 하나의 계정으로 여러 단말에 동시 접속 지원 푸시 알림 2단계. 개략적 설계안 제시 및 동의 구하기 채팅 시스템의 경우 클라이언트는 모바일 앱이거나 웹 어플리케이션이다. 클라이언트는 서로 직접 통신하지 않으며 각각의 클라이언트는 위 1단계에 나열한 모든 기능을 지원하는 채팅 서비스와 통신한다. 이 채팅서비스는 아래 기능을 제공해야한다고 가정. 클라이언트들로부터 메시지 수신 메시지 수신자 결정 및 전달 수신자가 접속 상태가 아닌 경우에는 접속할 때까지 해당 메시지 보관 다음은 클라이언트와 채팅 서비스 사이의 관계를 요약한 그림이다. 채팅.. 2023. 12. 30.