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

시스템 디자인 템플릿 #2

Open
hrkim3468 opened this issue Sep 10, 2024 · 1 comment
Open

시스템 디자인 템플릿 #2

hrkim3468 opened this issue Sep 10, 2024 · 1 comment

Comments

@hrkim3468
Copy link
Contributor

hrkim3468 commented Sep 10, 2024

시스템 디자인

[1단계] 시스템 사용량 추정

(1) 처리량 (읽기/쓰기 쿼리에 대한 QPS)

(2) 시스템에서 예상되는 지연시간(읽기/쓰기 쿼리)

(3) 읽기/쓰기 비율

(4) 트래픽 추정치

  • 쓰기(QPS, 데이터 볼륨)
  • 읽기(QPS, 데이터 볼륨)

(5) 스토리지 추정치

(6) 메모리 추정치

  • 캐시를 사용하는 경우 캐시에 저장하려는 데이터의 종류
  • 이를 위해 필요한 RAM 사이즈와 장비의 수
  • Disk/SSD 저장여부, 필요하다면 저장하려는 데이터의 양

[2단계] 높은 수준의 디자인

(1) 지연시간 및 처리량에 대한 명확한 요구사항

(2) 일관성 vs 가용성

  • 일관성 필요여부, 일관성 구현 (Weak/strong/eventual)
  • 가용성 필요여부, 가용성 구현 (Failover/replication)

(3) 중요한 구성 요소에 대한 읽기/쓰기 시나리오를 위한 API

(4) 데이터베이스 스키마

(5) 활용하는 주요 알고리즘

[3단계] DEEP DIVE

(1) 알고리즘 확장

(2) 개별 구성 요소 확장:

  • 각 구성 요소의 가용성, 일관성 및 규모 스토리
  • 일관성 및 가용성 패턴

(3) 다음 구성요소들의 선택 이유와 활용패턴

  • DNS
  • CDN [Push vs Pull]
  • 로드 밸런서 [Active-Passive, Active-Active, Layer 4, Layer 7]
  • Reverse Proxy
  • Application layer scaling [Microservices, Service Discovery]
  • DB [RDBMS, NoSQL]
    > RDBMS (Master-slave, Master-master, Federation, Sharding, Denormalization, SQL Tuning)
    > NoSQL (Key-Value, Wide-Column, Graph, Document)
  • 캐시
    > Client caching, CDN caching, Webserver caching, Database caching, Application caching, Cache @query level, Cache @object level
    > Eviction 정책 (Cache aside, Write through, Write behind, Refresh ahead)
  • 비동기 처리
    > Message queues
    > Task queues
    > Back pressure
  • 커뮤니케이션
    > TCP
    > UDP
    > REST
    > RPC

템플릿

시스템 디자인을 고민하기 위한 서비스 기본 구조입니다.
두가지 중 마음에 드는 것을 골라서 사용하세요.

템플릿 1번
system-desing-template2

템플릿 2번
system-desing-template1

@hrkim3468
Copy link
Contributor Author

시스템 디자인 템플릿
https://leetcode.com/discuss/career/229177/My-System-Design-Template

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant