성장하는 인삼의 지식 블로그

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2] 1. 근접성 서비스

근접성 서비스(proximity service)는 음식점, 호텔, 극장, 박물관 등 현재 위치에서 가까운 시설을 찾는 데 이용된다. 1단계: 문제 이해 및 설계 범위 확정 사용자가 검색 반경(radius)을 지정할 수 있어야 하나요? 검색 반경에 표시할 사업장이 충분치 않은 경우에는 검색 반경을 시스템이 알아서 넓혀도 괜찮을까요? >> ...

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초] 15. 구글 드라이브 설계

구글 드라이브는 파일 저장 및 동기화 서비스로, 문서, 사진, 비디오, 기타 파일을 클라우드에 보관할 수 있도록 한다. 이 파일은 컴퓨터, 스마트폰, 태블릿 등 어떤 단말에서도 이용 가능해야 한다. 아울러 보관된 파일은 친구, 가족, 동료 들과 손쉽게 공유할 수 있어야 한다. 1단계. 문제 이해 및 설계 범위 확정 * 가장 중요하게 지원해야 할...

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초] 14. 유튜브 설계

1단계. 문제 이해 및 설계 범위 확정 질문 * 어떤 기능이 가장 중요한지 > 비디오 업로드 및 시청 기능 * 어떤 클라이언트를 지원해야 하는지 > 모바일 앱, 웹 브라우저, 스마트TV * 일간 능동 사용자 수는 몇 명인지 > 5백만 * 사용자가 이 제품에 평균적으로 소비하는 시간은? > 30분...

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초] 13. 검색어 자동완성 시스템

1단계. 문제 이해 및 설계 범위 확정 질문 * 사용자가 입력하는 단어가 자동완성될 검색어의 첫 부분인가? 중간 부분인가? * 자동완성 검색어 n개 표시? * 자동완성 검색어 n개를 고르는 기준은? * 맞춤법 검사 기능도 제공? * 질의는 영어? * 대문자나 특수 문자 처리? * DAU는? 요구사항 빠른 응답 속도 페이스북...

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초] 11. 뉴스 피드 시스템 설계

1단계. 문제 이해 및 설계 범위 확정 질문 * 모바일? 웹? * 중요 기능은? * 뉴스 피드에서의 스토리 순서 기준은? * 최신? topic score? * 가까운 친구? * 한 명의 유저가 가질 수 있는 최대 친구 수는? * 트래픽 규모는? * 피드에 이미지나 비디오 스토리도 올라올 수 있는지? 2단계. 개략적 설계안 제시 및 동...

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초] 10. 알림 시스템 설계

알림 시스템은 단순 히 모바일 푸시 알림에 한정되지 않는다. 알림 시스템은 모바일 푸시 알림, SMS 메시지, 이메일의 세 가지로 분류할 수 있다. 1단계. 문제 이해 및 설계 범위 확정 적절한 질문을 통해 요구 사항이 무엇인지 지원자 스스로 알아내야 한다. 질문1: 이 시스템은 어떤 종류의 알림을 지원해야 하나요? > 푸시 알림, SMS ...

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초] 9. 웹 크롤러 설계

웹 크롤러는 검색 엔진에서 널리 쓰는 기술로, 웹에 새로 올라오거나 갱신된 콘텐츠를 찾아내는 것이 주된 목적이다. 웹 크롤러는 몇 개 웹 페이지에서 시작하여 그 링크를 따라 나가면서 새로운 콘텐츠를 수집한다. 크롤러는 아래와 같이 다양하게 이용된다. 검색 엔진 인덱싱 웹 아카이빙 웹 마이닝 웹 모니터링 1단계. 문제 이해 및 설...

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초] 8. URL 단축기 설계

tiny url 같은 URL 단축기를 설계하는 문제를 풀어보자. 1단계. 문제 이해 및 설계 범위 확정 URL 단축: 주어진 긴 URL을 훨씬 짧게 줄인다. URL redirection: 축약된 URL로 HTTP 요청이 오면 원래 URI로 안내 높은 가용성과 규모 확장성, 장애 감내가 요구됨 개략적 추정 쓰기...

[Book - 가상 면접 사례로 배우는 대규모 시스템 설계 기초] 7. 분산 시스템을 위한 유일 ID 생성기 설계

분산 환경에서 auto_increment 속성이 설정된 기본 키는 통하지 않을 뿐더러, 여러 DB 서버를 쓰는 경우에는 delay를 낮추기가 무척 힘들 것이다. 1단계. 문제 이해 및 설계 범위 확정 시스템 설계 면접 문제를 푸는첫 단계는 적절한 질문ㅇ르 통해 모호함을 없애고 설계 방향을 정하는 것이다. 질문을 할 때는 요구사항을 이해하고 모호함...

© Yn3. Some rights reserved.