가상 면접
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 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밀리초 이내의 빠른 응답 속도 자동완성되어 출력되는 검색어와 사용자가 입력한 단어의 연관성 인기도 등 순위모델에 의한 정렬트래픽을 감당할 수 있도록 확장 가능해야 함 시스템 장애가 발생하더라도 지속 사용가능한 고가용성 개략적 ..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 9장 ) 웹 크롤러 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 6. 00:36
웹 크롤러 설계 웹 크롤러 로봇 또는 스파이더라고 불림 검색 엔진에서 널리 쓰이는 기술웹에 새로 올라오거나 갱신된 콘텐츠를 찾아냄사용처 검색 엔진 인덱싱 크롤러의 가장 보편적인 옹례 웹페이지를 모아 검색 엔진을 위한 로컬 인덱스를 생성 ex) Googlebot = 구글 검색 엔진이 사용하는 웹 크롤러 웹 아카이빙 나중에 사용할 목적으로 장기보관을 위해 웹에서 정보를 모으는 절차 웹 마이닝 인터넷에서 유용한 지식을 도출 = 데이터 마이닝 ex) 금융 기업의 주주총회 자료나 연차보고서를 이용한 기업의 핵심 사업 방향 파악 웹 모니터링 저작권이나 상표권이 침해되는 사례 모니터링 등 복잡도 웹 크롤러가 처리해야 하는 데이터의 규모에 따라 달라짐 감당해야 하는 데이터의 규모와 기능을 알아야 함 1단계 문제 이..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 7장 ) 분산 시스템을 위한 유일 ID 생성기 설계DESIGN PATTERN & ARCHITECTURE 2024. 10. 26. 16:59
분산 시스템을 위한 유일 ID 생성기 설계 분산 시스템에서는 auth_increment 속성이 설정된 관계형 데이터 베이스의 기본 키는 적용되지 않음 1단계 문제 이해 및 설계 범위 확정 요구 사항 ID는 유일해야 함 ID는 숫자로만 구성되어야 함 ID는 64비트로 표현될 수 있는 값이어야 함 ID는 발급 날짜에 따라 정렬 가능해야 함 초당 10,000 개의 ID를 만들 수 있어야 함 2단계 개략적 설계안 제시 및 동의 구하기 다중 마스터 복제 (multi-master replication)데이터의 auth_increment 기능을 활용하면서 k(= 데이터 베이스 서버 수) 만큼 아이디를 증가시킴 단점 여러 데이터 센터에 걸쳐 규모를 늘리기 어려움 ID의 유일성은 보장되지만 시간 흐름에 맞춰 커지..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 6장 ) 키-값 저장소 설계DESIGN PATTERN & ARCHITECTURE 2024. 10. 24. 23:05
키-값 저장소 (key-value store)키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스 고유 식별자(identifier)를 키로 가짐 키는 유일해야하며 해당 키에 매달린 값은 키를 통해서만 접근이 가능 키는 해시값이나 일반 테스트 모두 가능 성능상의 이유로 키는 짧을수로 좋음 키-값 쌍 (pair)키-값 사이의 연결관계 연산put(key, value) : 키-값 쌍을 저장소에 저장get(key) : 인자로 주어진 키에 매달린 값을 꺼냄 ex) 아마존 다이나모, memcached, 레디스 등 문제 이해 및 설계 범위 확정 요구사항 키-값 쌍의 크기는 10KB 이하 큰 데이터를 저장할 수 있어야 함 높은 가용성 시스템이 장애가 있더라도 빠르게 응답해야함 높은 규모 확장성 트래픽 양에 따라 자..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 5장 ) 안정 해시 설계DESIGN PATTERN & ARCHITECTURE 2024. 10. 23. 22:37
안정 해시 설계 수평적 규모 확장성을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 전달하는 것이 중요 해시 키 재배치 문제 해시 함수N개의 서버에 부하를 균등하게 나누는 보편적인 방법ex) serverIndex = hash(key) % N 서버 풀의 크기가 고정되어 있을 때, 그리고 데이터 분포가 균등할 때는 잘 동작 서버 풀의 수가 변경되면 대부분의 키가 재분배되는 문제발생 서버 1개가 삭제되면 캐시 클라이언트가 데이터가 없는 엉뚱한 서버에 접속하게 됨 안정 해시 (consistent hashing)해시 테이블 크기가 조정될 때 평균적으로 k/n개의 키만 재배치하는 해시 기술k = 키의 개수 n = 슬롯의 개수 해시 공간과 해시 링 해시링해시 공간을 동그랗게 접어 만든 것 ex)..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 4장) 처리율 제한 장치의 설계DESIGN PATTERN & ARCHITECTURE 2024. 10. 22. 23:11
처리율 제한 장치 (Rate Limiter)클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치 DoS(Denial of Service) 공격에 의한 자원 고갈을 방지 추가 요청에 대한 처리를 중단하여 비용 절감 자원을 아낄 수 있고 우선순위가 높은 API에 더 많은 자원을 할당 가능 서버 과부하를 막음 1단계 문제 이해 및 설계 범위 확정 어떤 종류의 처리 제한 장치를 설계해야 하는지 파악ex) 서버측 API를 위한 장치를 설계 호출 단위의 제한 또는 IP 주소 단위, 사용자 ID 단위 등의 제한 단위 파악 시스템 규모 파악 ex) 대규모 요청을 처리해야 한다면, 가능한 적은 메모리를 사용하고 빠르게 응답해야 함 시스템 환경 파악 ex) 분산 환경 처리율 제한 장치의 독립 서비스 여부..