LUNA's Archive

고정 헤더 영역

글 제목

메뉴 레이어

LUNA's Archive

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (74) N
    • C (2)
    • C++ (1)
    • Data Structure & Algorithm (9)
    • Computer Vision (0)
    • RDBMS (16)
    • Spring Framework (4)
    • Network (8)
    • Spring Webflux (2)
    • Java (9) N
    • 대규모 설계 기초 (12)
    • Spring Data JDBC (5)
    • Spring Security (4)
    • JPA (0)
    • Spring Batch (0)
    • Infra (2)

검색 레이어

LUNA's Archive

검색 영역

컨텐츠 검색

대규모 설계 기초

  • [System Design Interview] 15장 구글 드라이브 설계

    2023.11.04 by Wanderer Kim

  • [System Design Interview] 13장 검색어 자동완성 시스템

    2023.10.03 by Wanderer Kim

  • [System Design Interview] 12장. 채팅 시스템 설계

    2023.09.29 by Wanderer Kim

  • [System Design Interview] 10장. 알림 시스템 설계

    2023.09.19 by Wanderer Kim

  • [System Design Interview] 11장. 뉴스 피드 시스템 설계

    2023.09.17 by Wanderer Kim

  • [System Design Interview] 9장. 웹 크롤러 설계

    2023.08.09 by Wanderer Kim

  • [System Design Interview] 8장 URL 단축기 설계

    2023.07.23 by Wanderer Kim

  • [System Design Interview] 7장 분산 시스템을 위한 유일 ID 생성기 설계

    2023.07.18 by Wanderer Kim

[System Design Interview] 15장 구글 드라이브 설계

구글 드라이브란? 파일 저장 및 동기화 서비스로, 문서, 사진, 비디오, 기타 파일을 클라우드에 보관할 수 있도록 한다. 아울러 보관된 파일은 친구, 가족, 동료 들과 손쉽게 공유할 수 있어야 한다. 1단계 문제 이해 및 설계 범위 확정 설계 범위 파일 업로드/다운로드, 파일 동기화, 알림 기능들을 지원해야 한다. 모바일 앱과 웹 모두 지원해야 한다. 파일 암호화 기능을 지원해야 한다. 파일 크기는 10GB로 제한해야 한다. 일간 능동 사용자 천만명을 지원해야 한다. 이번 장에서 집중할 기능들 파일 추가 가장 쉬운 방법은 파일을 구글 드라이브 안으로 떨구는 것이다. 파일 다운로드 여러 단말에 파일 동기화 한 단말에서 파일을 추가하면 다른 단말에도 자동으로 동기화되어야 한다. 파일 갱신 이력 조회 파일 공..

대규모 설계 기초 2023. 11. 4. 22:39

[System Design Interview] 13장 검색어 자동완성 시스템

1단계 문제 이해 및 설계 범위 확정 요구사항 빠른 응답 속도 : 사용자가 검색어를 입력함에 따라 자동완성 검색어도 충분히 빨리 표시되어야 한다. 페이스북 검색어 자동완성 시스템에 관한 문서를 보면 시스템 응답속도는 100밀리초 이내여야 한다. 연관성 : 자동완성되어 출력되는 검색어는 사용자가 입력한 단어와 연관된 것이어야 한다. 정렬 : 시스템의 계산 결과는 인기도 등의 순위 모델에 의해 정렬되어 있어야 한다. 규모 확장성 : 시스템은 많은 트레픽을 감당할 수 있도록 확장 가능해야 한다. 고가용성 : 시스템의 일부에 장애가 발생하거나, 느려기저나, 예상치 못한 네트워크 문제가 생겨도 시스템은 계속 사용 가능해야 한다. 계략적 규모 추정 일간 능동 사용자는 천만 명으로 가정한다. 평균적으로 한 사용자는 ..

대규모 설계 기초 2023. 10. 3. 19:54

[System Design Interview] 12장. 채팅 시스템 설계

1단계 문제 이해 및 설계 범위 확정 요구사항 1:1 채팅과 그룹 채팅 모두 지원 가능해야함. 모바일 앱과 웹 둘다 지원 가능해야함. 일별 능동 사용자 수 기준으로 5천만명 처리 가능해야 함. 그룹 채팅의 경우 최대 100까지 참가 가능함. 1:1 채팅, 그룹 채팅, 사용자 접속상태 표시 지원 가능해야 함, 텍스트 메시지만 주고받을 수 있음 메시지 길이 제한은 100,000자 이하여야 함. 종단 간 암호화는 필요없음. 설계할 채팅 앱 기능 응답지연이 낮은 일대일 채팅 기능 최대 100명까지 참여할 수 있는 그룹 채팅 기능 사용자의 접속상태 표시 기능 다양한 단말 지원, 하나의 계정으로 여러 단말에 동시 접속 지원 푸시 알림 2단계 개략적 설계안 제시 및 동의 구하기 채팅 서비스에서 제공해야 할 기능들 클..

대규모 설계 기초 2023. 9. 29. 20:04

[System Design Interview] 10장. 알림 시스템 설계

1단계 문제 이해 및 설계 범위 확정 시스템 요구 사양 지원해야 하는 알림 종류 : 푸시 알림, SMS 메시지, 이메일 연성 실시간 시스템 알림은 가능한 빨리 전달 되어야 한다. 다만 시스템에 높은 부하가 걸렸을 때 약간의 지연은 무방하다. IOS, 안드로이드, 랩톱, 데스크톱을 지원해야 한다. 사용자에게 보낼 알람은 클라이언트 또는 서버 측에서 스케쥴링 할 수 있다. 사용자가 알림을 받지 않도록 설정 가능해야 한다. 하루에 천만 건의 모바일 푸시 알림, 백만 건의 SMS 메시지, 5백만 건의 이메일을 보낼 수 있어야 한다. 2단계 개략적 설계안 제시 및 동의 구하기 알림 유형별 지원 방안 IOS 푸시 알림 알림 제공자 : 알림 요청을 만들어 애플 푸시 알림 서비스(APNS)로 보내는 주체다. 알림 요청..

대규모 설계 기초 2023. 9. 19. 21:07

[System Design Interview] 11장. 뉴스 피드 시스템 설계

뉴스 피드란? 홈 페이지 중앙에 지속적으로 업데이트되는 스토리들고, 사용자 상태 정보 업데이트, 사진, 비디오, 링크, 앱 활동, 페이스북에서 팔로하는 사람들, 페이지, 또는 그룹으로부터 나오는 "좋아요"등을 포함한다. 1단계 문제 이해 및 설계 범위 확정 요구사항 모바일 앱과 웹 둘다 지원가능해야 한다. 중요 기능 새로운 스토리를 올릴 수 있는 기능 친구들이 올리는 스토리를 볼 수 있는 기능 스토리는 시간 흐룸 역순으로 표시되야 한다. 한 명의 사용자는 최대 5000명의 친구를 가질 수 있다. 트래픽 규모는 매일 천만 명이 방문한다고 가정한다. 스토리에는 이미지나 비디오등의 미디어 파일이 포함될 수 있다. 2단계 개력적 설계안 제시 및 동의 구하기 설계안 피드 발행 : 사용자가 스토리를 포스팅하면 해당..

대규모 설계 기초 2023. 9. 17. 22:30

[System Design Interview] 9장. 웹 크롤러 설계

웹 크롤러 : 웹에 새로 올라오거나 갱신된 콘텐츠를 찾아내는 것이 주된 목적인 소프트웨어. 웹 크롤럴 사용 방법 검색 엔진 인덱싱 : 웹 페이지를 모아 검색 엔진을 위한 로컬 인덱스를 만든다. 웹 아카이빙 : 나중에 사용할 목적으로 장기보관하기 위해 웹에서 정보를 모으는 절차. 웹 마이닝 : 인터넷에서 유용한 지식을 도출해 낼 수 있게해준다. 웹 모니터링 : 인터넷에서 저작권이나 사욮권이 침패되는 사례를 모니터링할 수 있다. 1단계 문제 이해 및 설계 범위 확정 웹 크롤러 알고리즘 URL 집합이 입력으로 주어지면, 해당 URL들이 가리키는 모든 웹 페이지를 다운로드한다. 다운받은 웹 페이지에서 URL들을 추출한다. 추출된 URL들을 다운로드할 URL 목록에 추가하고 위의 과정을 처음부터 반복한다. 웹 크..

대규모 설계 기초 2023. 8. 9. 21:52

[System Design Interview] 8장 URL 단축기 설계

1단계 문제 이해 및 설계 범위 확정 시스템 설계 면접 문제는 의도적으로 어떤 정해진 결말을 갖지 않도록 만들어 진다. 따라서 면접장에서 시스템을 성공적으로 설계해 내려면 질문을 통해 모호함을 줄이고 요구사항을 알아내야 한다. URL 단축기 시스템 기능 URL 단축 : 주어진 긴 URL을 훨씬 짧게 줄인다. URL 리디렉션 : 축약된 URL로 HTTP 요청이 오면 원래 URL로 안내 높은 가용성과 규모 확장성, 그리고 장애 감내가 요구됨 개략적 추정 쓰기 연산 : 매월 1억 개의 단축 URL 생성 초당 쓰기 연산 : 1억/24/3600 = 1160 읽기 연산 : 읽기 연산과 쓰기 연산 비율은 10:1이라고 하자. 그 경우 읽기 연산은 초당 11,600회 발생한다(1160 * 10 = 11,600) URL..

대규모 설계 기초 2023. 7. 23. 22:57

[System Design Interview] 7장 분산 시스템을 위한 유일 ID 생성기 설계

1단계 문제 이해 및 설계 범위 확정 요구사항 ID는 유일해야 한다. ID는 숫자로만 구성되어야 한다. ID는 64바이트로 표현될 수 있는 값이어야 한다. ID는 발급 날짜에 따라 정렬 가능해야 한다. 초당 10,000개의 ID를 만들 수 있어야 한다. 2단계 개략적 설계안 제시 및 동의 구하기 분산 시스템에서 유일성이 보장되는 ID를 만드는 방법 다중 마스터 복제 UUID 티켓 서버 트위터 스노우플레이크 다중 마스터 복제 다중 마스터 복제 방법은 데이터베이스의 auto_increment 기능을 확용하는 것이다. 다만 다음 ID의 값을 구할 때 1만큼 증가시켜 얻는 것이 아니라, k만큼 증가시킨다. k는 현재 사용중인 데이터베이스 서버의 수다. 단점 여러 데이터 센터에 걸쳐 규모를 늘리기 어렴다. ID의..

대규모 설계 기초 2023. 7. 18. 21:42

추가 정보

인기글

최신글

페이징

이전
1 2
다음
TISTORY
LUNA's Archive © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바