DESIGN PATTERN & ARCHITECTURE
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 15장 ) 구글 드라이브 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 14. 22:51
1단계 문제 이해 및 설계 범위 확정 주요하게 지원해야 할 기능 지원 환경 파일 암호화 여부 파일 크기 제한 사용자 예시 설계 범위 파일 추가 기능 drag and drop 파일 다운로드 여러 단말에 파일 동기화 파일 갱신 이력 조회 (revision history)파일 공유 파일 편집, 삭제, 공유 알림 표시 비 기능적 요구사항안정성 데이터 손실 방지 빠른 동기화 속도 네트워크 대역폭 모바일 데이터 플랜을 사용하는 경우 네트워크 사용량이 많으면 사용자의 선호도가 감소됨 규모 확장성 많은 양의 트래픽 처리가 가능해야 함 높은 가용성 개략적 추정치 가입 사용자 = 5000만 DAU = 1000만 인당 무료 저장 공간 할당 = 10GB사용자가 업로드하는 하루 평균 파일 수 = 2개업로드 파일의 크기 = 50..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 14장 ) 유튜브 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 14. 21:59
유튜브 설계규모 월간 능동 사용자 수 : 20억 매일 재생되는 비디오 수 : 50억 미국 성인 가운데 73%가 이용 5천만 명의 창작자 광고 수입 2019 기준으로 150억 달러 (전년도보다 36%가 증가한 수치) 모바일 인터넷 트래픽 가운데 37%를 유튜브가 점유 80개 언어로 이용 가능 1단계 문제 이해 및 설계 범위 확정 가장 중요한 기능 지원 클라이언트 일간 능동 사용자 수 사용자가 평균적으로 소비하는 시간 다국어 지원 필요 여부 지원하는 비디오 해상도 암호화 여부 비디오 파일 크기 제한 클라우드 서비스 활용 가능 여부 예시 요구 사항 빠른 비디오 업로드 원활한 비디오 재생 재생 품질 선택 기능 낮은 인프라 비용 높은 가용성과 규모 확장성, 안정성모바일 앱, 웹, 웹브라우저, 스마트 TV 지원..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 13장 ) 검색어 자동완성 시스템DESIGN PATTERN & ARCHITECTURE 2024. 11. 14. 21:02
검색어 자동완성 시스템 자동완성 (autocomplete, typeahead, search-as-you-type, incremental search) 입력중인 글자에 맞는 검색어가 자동으로 완성되어 표시 1단계 문제 이해 및 설계 범위 확정 자동완성 될 검색어의 범위 ex) 첫글자, 중간부분 등 표시되는 자동완성 검색어의 갯수 자동완성 검색어를 고르는 기준 맞춤법 검사 기능 제공 여부 질의어의 종류 ex) 영어, 한국어 대문자나 특수문자의 처리 여부 사용자 수 예시 요구사항 100밀리초 이내의 빠른 응답 속도 자동완성되어 출력되는 검색어와 사용자가 입력한 단어의 연관성 인기도 등 순위모델에 의한 정렬트래픽을 감당할 수 있도록 확장 가능해야 함 시스템 장애가 발생하더라도 지속 사용가능한 고가용성 개략적 ..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 12장 ) 채팅 시스템 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 13. 23:41
1단계 문제 이해 및 설계 범위 확정 채팅의 종류 1:1 채팅, 그룹 채팅, 게임 채팅 등 ex) WhatsApp : 1대1 채팅 ex) Slack : 그룹 채팅 ex) Discord : 게임 채팅 대규모 그룹의 소통과 응답 지연이 낮은 음성 채팅에 집중 서비스 환경 ex) 모바일, 웹 등 트래픽 규모 그룹 채팅의 인원 제한 여부 중요 기능 ex) 첨부파일, 접속 상태 표시 등 메세지 길이 제한 여부 종단 간 암호화 여부 (end to end encryption)채팅 이력 보관 기간 예시로 설계된 요구 사항 응답 지연이 낮은 일대일 채팅 기능 최대 100명 까지 참여할 수 있는 그룹 채팅 기능 사용자의 접속 상태 표시 기능 다양한 단말 지원하나의 계정으로 여러 단말 동시 접속 지원 푸시 알림 5000만 ..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 11장 ) 뉴스 피드 시스템 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 13. 22:16
뉴스 피드 시스템 설계 뉴스 피드 홈페이지 중앙에 지속적으로 업데이트 되는 스토리 1단계 문제 이해 및 설계 범위 확정 지원 환경 ex) 모바일 앱, 웹 등 구현해야 하는 기능 스토리 표시 순서 한명의 사용자가 가질 수 있는 최대 친구의 수 트래픽 규모 이미지나 비디오 스토리 게시 가능 여부 2단계 개략적 설계안 제시 및 동의 구하기 뉴스 피드 API제공 기능클라이언트가 서버와 통신하기 위해 사용되는 수단 HTTP 프로토콜 기반 상태 정보를 업데이트하거나 뉴스 피드를 가져오거나 친구를 추가하는 등의 다양한 작업 수행시 사용됨 1) 피드발행 (feed publishing)사용자가 스토리를 포스팅하여 해당 데이터를 캐시와 데이터 베이스에 기록 새포스팅은 친구의 뉴스 피드에도 전송 HTTP POST의..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 10장 ) 알림 시스템 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 13. 21:45
알림 시스템 설계 알림 고객에게 중요한 정보를 비동기 적으로 제공 1단계 문제 이해 및 설계 범위 확정 알림의 종류 실시간 시스템 여부 ex) 연성 실시간 시스템 (soft real-time) : 가능한 빨리 전달, 약간의 지연 가능 지원 단말의 종류 사용자에게 보낼 알림을 만들 사람 사용자에게 알림 on/off 설정 기능 제공 여부 (opt-out)하루에 보낼 수 있는 알림의 갯수 제한 2단계 개략적 설계안 제시 및 동의 구하기 알림 유형별 지원 방안IOS 푸시 알림알림 제공자 (provider) 알림 요청을 만들어 애플 푸시 알림 서비스 (APNS: Apple Push Notification Service)로 보내는 주체 필요 정보 단말 토큰 (device token) 알림 요청을 보내는데 ..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 9장 ) 웹 크롤러 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 6. 00:36
웹 크롤러 설계 웹 크롤러 로봇 또는 스파이더라고 불림 검색 엔진에서 널리 쓰이는 기술웹에 새로 올라오거나 갱신된 콘텐츠를 찾아냄사용처 검색 엔진 인덱싱 크롤러의 가장 보편적인 옹례 웹페이지를 모아 검색 엔진을 위한 로컬 인덱스를 생성 ex) Googlebot = 구글 검색 엔진이 사용하는 웹 크롤러 웹 아카이빙 나중에 사용할 목적으로 장기보관을 위해 웹에서 정보를 모으는 절차 웹 마이닝 인터넷에서 유용한 지식을 도출 = 데이터 마이닝 ex) 금융 기업의 주주총회 자료나 연차보고서를 이용한 기업의 핵심 사업 방향 파악 웹 모니터링 저작권이나 상표권이 침해되는 사례 모니터링 등 복잡도 웹 크롤러가 처리해야 하는 데이터의 규모에 따라 달라짐 감당해야 하는 데이터의 규모와 기능을 알아야 함 1단계 문제 이..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 8장 ) URL 단축기 설계DESIGN PATTERN & ARCHITECTURE 2024. 10. 26. 17:36
1단계 문제 이해 및 설계 범위 확정 요구 사항 URL 단축 : 주어진 긴 URL을 훨씬 짧게 줄임URL 리디렉션 : 축약된 URL로 HTTP 요청이 오면 원래 URL로 안내 높은 가용성과 규모 확장성, 그리고 장애 감내가 요구됨 트래픽 파악 매일 1억개의 단축 URL을 만들어 낼 수 있어야 함 개략적 추정 쓰기 연산 매일 1억개의 단축 URL 생성 초당 쓰기 1억 / 24 / 3600 = 1160 읽기 연산 읽기 연산과 쓰기 연산의 비율을 10: 1로 가정 읽기 연산은 초당 11600회 발생 저장 용량 URL 단축 서비스를 10년간 운영한다고 가정하면 1억 x 365 x 10 = 3650억 개의 레코드를 보관해야 함 축악전 URL의 평균 길이는 100바이트로 가정 10년동안 필요한 저장 용량은 3650..