독서25 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. 11장. 뉴스 피드 시스템 설계 뉴스 피드 시스템의 핵심 기능 피드 발행 사용자가 스토리를 포스팅하면 해당 데이터를 캐시와 데이터베이스에 기록한다. 새 포스팅은 친구의 뉴스 피드에 전송된다. 피드 발행 시스템의 개략적 형태는 다음과 같다. 사용자 : 모바일 앱이나 브라우저에서 새 포스팅을 올리는 주체 로드벨런서 : 트래픽을 웹 서버로 골고루 분산한다. 웹 서버 : HTTP 요청을 내부 서비스로 중계하는 역할을 한다. 포스팅 저장 서비스 : 새 포스팅을 데이터베이스와 캐시에 저장한다. 포스팅 전송 서비스 : 새 포스팅을 친구의 뉴스 피드에 푸시한다. 뉴스 피드 데이터는 캐시에 보관하여 빠르게 읽어갈 수 있도록 한다. 알림 서비스 : 친구들에게 새 포스팅이 올라왔음을 알리거나, 푸시 알림을 보내는 역할을 담당한다. 뉴스 피드 생성 뉴스 피.. 2023. 12. 26. 이전 1 2 3 4 5 6 7 다음