본문 바로가기

대규모시스템설계4

개략적인 영상 스트리밍 시스템 설계에 관한 이야기 가상 면접 사례로 배우는 대규모 시스템 설계 14장을 참고한 글입니다.매일 사용하지만 설계해 본 적 없는 기능에 대히여  1) 설계 범위 정하기어떤 기능? 비디오를 올리고 시청하는 기능클라이언트는? 모바일, 웹, 스마트TVDAU는?사용자가 소비하는 시간은?클라우드 인프라 활용 가능한지?빠른 업로드, 원활한 재생, 재생 품질 선택, 낮은 인프라 비용, 가용성, 확장성, 안정성에 초점을 둔다.  2) 설계안비디오 업로드 절차 생소한 컴포넌트만 살펴보면메타데이터 데이터베이스/캐시 : 비디오의 메타데이터를 보관한다. 샤딩과 다중화를 적용하여 성능 및 가용성 요구사항을 충족한다.트랜스 코딩 서버 : 비디오 트랜스코딩은 비디오 인코딩이라 부르기도 하는 절차로, 비디오의 포맷(MPEG, HLS 등)을 변환하는 절차다.. 2024. 4. 27.
개략적인 검색어 자동완성 시스템에 대한 이야기 가상 면접 사례로 배우는 대규모 시스템 설계 13장을 참고한 글입니다.매일 사용하지만 설계해 본 적 없는 기능에 대히여  1) 범위 설정하기검색 자동완성의 기준은 무엇인가? (가장 많이 이용된? 가장 최근에 검색된?)몇 개의 자동완성 단어가 표시되어야 하는지?다국어 지원이 가능한가?DAU는?규모에 따른 QPS 계산하기(일간이용자*요청수*최대글자/일/24시간/3600초) 2) 설계안데이터 수집 서비스사용자가 입력한 질의를 실시간으로 수집하는 시스템이다. 데이터가 많은 애플리케이션에 실시간 시스템은 바람직하지 않지만 설계안을 만드는 출발점으론 괜찮다. 질의문과 사용빈도를 저장하는 빈도 테이블이 있다고 가정한다. 처음엔 테이블이 비어있지만 사용자가 검색하면 상태가 바뀌어 나간다.  질의 서비스빈도테이블에서 빈.. 2024. 4. 26.
개략적인 채팅 시스템에 관한 이야기 가상 면접 사례로 배우는 대규모 시스템 설계 12장을 참고한 글입니다.   1) 설계 범위 확정1:1 채팅앱인지? 그룹앱인지?플랫폼은?DAU는?특정 기능이 있는지? (현재 활동중, 첨부파일 지원 등)메시지 길이 제한이 있는지?채팅 이력 보관 기간은? 2) 설계에 들어가기 앞서 필요한 지식어떤 네트워크 통신 프로토콜을 사용할 것인지? HTTP를 사용할까?→ 오랜 세월 검증된 HTTP 또한 좋은 방법일 수 있다. keep-alive 속성으로 TCP 핸드셰이크 횟수를 줄일 수 있다.하지만 HTTP를 사용한다면 수신 시나리오는 복잡해진다. 클라이언트가 연결을 만드는 프로토콜이기에 서버가 임의 시점에 메시지를 보내는 데 쉽게 쓰일 수 없다. 이 문제를 해결하기 위해 서버가 연결을 만드는 것처럼 동작하는 기법이 개.. 2024. 4. 25.
개략적인 뉴스 피드 시스템 설계에 관한 이야기 가상 면접 사례로 배우는 대규모 시스템 설계 11장을 참고한 글입니다.  1) 문제 범위 설정 - 지원 기기는 어디까지 인가?- 중요한 기능이 무엇인가? (새 글을 작성할 수 있어야 한다, 친구의 글을 볼 수 있어야 한다)- 뉴스 피드는 어떤 기준으로 표시되는가?- DAU는 몇인가?- 글에 이미지와 비디오를 올릴 수 있는가? (저장을 위한 저장소 요구량)  2) 설계안뉴스피드 발행포스팅 전송(fanout) 서비스사용자와 친구관계에 있는 모든 사용자에게 새 포스팅을 전달하는 과정, 쓰기 시점(push)과 읽기 시점(pull)이 있음 쓰기 시점에 팬아웃하는 모델새로운 포스팅을 기록하는 시점에 뉴스 피드를 갱신하게 된다. 피드가 실시간으로 갱신되며 친구 목록 사용자에게 즉서.. 2024. 4. 24.