Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

7주차 문제 - 14장 (유튜브 설계) ~ 15장 (구글 드라이브 설계) #13

Open
yoonseon12 opened this issue Dec 27, 2023 · 6 comments
Assignees
Labels
bug Something isn't working The End 해치웠나?

Comments

@yoonseon12
Copy link
Member

No description provided.

@yoonseon12
Copy link
Member Author

yoonseon12 commented Dec 27, 2023

문제

14장. 유튜브 설계

  • 비디오 화질은 보존하면서 파일 크기를 줄일 목적으로 고안된 압축 및 압축 해제 알고리즘은?
  • 이것은 비디오를 구성하는 비트가 얼마나 빨리 처리되어야 하는지를 나타내는 단위로 이것이 높은 비디오는 일반적으로 고화질 비디오입니다. 이것은 무엇인가요?

15장. 구글 드라이브 설계

  • 파일 블록을 클라우드 저장소에 업로드하는 서버로 클라우드 환경에서 데이터 파일을 저장하는 기술은?
  • 아마존 S3같은 클라우드 저장소 시스템에 파일을 저장한다면 얻을 수 있는 이점은?

답변

14장. 유튜브 설계

  • 코덱
  • 비트레이트

15장. 구글 드라이브 설계

  • 블록 저장소 서버
  • 가용성과 데이터 무손실을 보장할 수 있으며 다중화를 쉽게 구성할 수 있기 때문

@hodadako hodadako added bug Something isn't working The End 해치웠나? labels Dec 28, 2023
@GBGreenBravo
Copy link
Collaborator

GBGreenBravo commented Dec 28, 2023

14장. 유튜브 설계

  • 유튜브 설계에서 속도 최적화(시스템 최적화)를 하려 할 때, 어떤 방법들이 있을까요?
    • (p.267-269) 비디오 병렬 업로드 / 업로드 센터를 사용자 근거리에 저장 / 모든 절차를 병렬화
  • BLOB 저장소를 제공하는 서비스 중 대중적인 서비스에는 어떤 게 있을까요?
    • Amazon S3 / Microsoft Azure Blob Storage / Google Cloud Storage

15장. 구글 드라이브 설계

  • 구글 드라이브 설계 시, 정기적으로 갱신되는 큰 파일들은 업데이트가 일어날 때마다 전체 파일을 서버로 보내면 네트워크 대역폭을 많이 잡아먹게 된다. 블록 저장소 서버에서 이를 최적화하는 방법에는 어떤 게 있을까요?
    • (p.289) 델타 동기화(파일이 수정되면 전체 파일 대신 수정이 일어난 블록만 동기화), 압축(블록 단위로 압축하여 데이터 크기 줄이기)
  • 구글 드라이브 설계의 알림 서비스에 웹소켓(Web Socket)보다 롱 폴링(long polling)이 더 적절한 방식인 이유를 설명해 주세요.
    • (p.295-296)(p.201-203) 드라이브 시스템에서 클라이언트와 양방향 통신이 필요하지는 않기 때문. / 드라이브 알림을 보낼 일이 자주 발생하지 않으며 알림에 담는 데이터도 많지 않기 때문.

@Hju95
Copy link
Collaborator

Hju95 commented Dec 28, 2023

14장 유튜브 설계

  • 스트리밍 프로토콜에 대해서 설명해주세요
    답변 : 스트리밍 프로토콜은 비디오 스트리밍을 위해 데이터를 전송할 때 쓰이는 표준화된 통신방법.
    프로토콜마다 지원하는 비디오 인코딩 지원하는 비디오 인코딩이 다르고 플레이어도 다르다.
  • 비디오 트랜스코딩 아키텍처에서 전처리기가 하는 일 3가지는?
    image
    답변 :
  1. 비디오 분할 : 비디오 스트림을 GOP(Group of Pictures) 라고 불리는 단위로 쪼갠다.
  2. DAG 생성 : 클라이언트 프로그래머가 작성한 설정 파일에 따라 DAG 를 만들어낸다.
  3. 데이터 캐시 : 전처리기는 분할된 비디오의 캐시이기도 하다. 안정성을 높이기 위해 GOP와 메타데이터를 임시 저장소에 보관한다.

15장 구글 드라이브 설계

  • 블록 저장소 서버를 거치지 않고 파일을 클라우드 저장소에 직접 업로드할 때의 단점은?
    답변 :
  1. 보안 문제
  2. 네트워크 대역폭 및 성능 이슈 : 네트워크 대역폭이 많이 소모되고 시스템에 영향을 줄 수 있음
  3. 가용성과 안정성 문제 : 클라우드 서비스의 다운타임이나 문제 발생할 경우, 기능에 영향
  • A 클라이언트가 B 클라이언트의 파일 변경과 추가한 행동을 어떻게 감지하는지 설명해주세요
    답변 :
  1. 알림 서비스가 클라이언트 A 에게 변경이 발생했으니 새 버전을 끌어가야 한다고 알린다.
  2. A 클라이언트가 네트워크에 연결된 상태가 아닐 경우에는 데이터는 캐시에 보관될 것이다. 해당 클라이언트의 상태가 접속 중으로 바뀌면 그때 해당 클라이언트는 새 버전을 가져갈 것이다.

@c0olcode
Copy link
Member

c0olcode commented Dec 28, 2023

14장 유튜브 설계

  • 비디오의 저작권 관리를 위한 방법 세가지?
  • 답:
  • DRM 시스템 도입 : 애플의 페어플레이, 구글의 와이드바인 등이 있다. 많이 쓰인대요
  • AES 암호화: 비디오를 암호화하고 접근 권한을 설정하는 방식이다. 암호화된 비디오는 재생 시에만 복호화한다. 허락된 사용자만 암호화된 비디오를 시청할 수 있다.
  • 워터마크 : 비디오 위에 소유자 정보를 포함하는 이미지 오버레이를 올린다. 회사 로고나 이름 등을 넣을 수 있다.
  • 사용자마다 요구사항이 다양하기 때문에 비디오를 트랜스코딩할 때 사용할 수 있는 모델은?
  • 답: DAG 모델

15장 구글 드라이브 설계

  • 알림 서비스를 위한 방법 두가지는?
  • 답: 롱 폴링, 웹소켓

@hodadako
Copy link
Member

hodadako commented Dec 28, 2023

14장 (유튜브 설계)

  • 회복 가능 오류와 회복 불가능 오류에 대해 설명해 주세요.
  • DAG를 그려주세요

15장 (구글 드라이브 설계)

  • 클라이언트가 접속 중이 아니라서 파일의 최신 상태를 확인할 수 없을 때는 해당 정보를 이곳에 담습니다.
    오프라인 사용자 백업 큐
  • 저장소 공간 절약 방법 중 자주 쓰이지 않는 데이터는 이곳에 옮겨서 저장할 수 있습니다. 아카이빙 저장소 (cold storage)

@oxix97
Copy link
Collaborator

oxix97 commented Dec 28, 2023

14. 유튜브 설계

  1. 비디오 트랜스 코딩이 필요한 이유에 대해 설명해주세요

  2. 비디오 시스템 오류는 대형 시스템에서 불가피합니다. 회복 가능 오류와 회복 불가능 오류는 어떤 것이 있는지 알려주세요

15. 구글 드라이브 설계

  1. 블록 저장소 서버는 파일 업로드에 관계된 힘든 일을 처리하는 컴포넌트입니다. 새 파일이 추가되었을 때 블록 저장소가 어떻게 동작하는지 순서대로 말씀해주세요(4단계)

  2. 아카이빙 저장소가 뭐죠?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working The End 해치웠나?
Projects
None yet
Development

No branches or pull requests

6 participants