Skip to content

Recipers/study-system-design-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

시스템 설계 스터디

스터디 내용

정리 자료

챕터 정리 자료 질문
1장. 사용자 수에 따른 규모 확장성 강민우 / 추호성 강민우 / 추호성
2장. 개략적인 규모 추정 강민우 / 추호성 강민우 / 추호성
3장. 시스템 설계 면접 공략법 강민우 / 추호성 강민우 / 추호성
4장. 처리율 제한 장치의 설계 강민우 / 추호성 강민우 / 추호성
5장. 안정 해시 설계 강민우 / 추호성 강민우 / 추호성
6장. 키-값 저장소 설계 강민우 / 추호성 강민우
7장. 분산 시스템을 위한 유일 ID 생성기 설계 강민우 / 추호성 강민우
8장. URL 단축기 설계 강민우 / 추호성 강민우
9장. 웹 크롤러 설계 강민우 / 추호성 강민우 / 추호성
10장. 알림 시스템 설계 강민우 / 추호성 강민우 / 추호성
11장. 뉴스 피드 시스템 설계 강민우 / 추호성 강민우 / 추호성
12장. 채팅 시스템 설계 강민우 강민우
13장. 검색어 자동완성 시스템 강민우 / 추호성 추호성
14장. 유튜브 설계 강민우 / 추호성
15장. 구글 드라이브 설계 강민우 / 추호성 추호성

일정

1주차(1.23): ▣ 1, 2, 3장: 1 ~ 50p → 50p

  • 1장: 사용자 수에 따른 규모 확장성
  • 2장: 개략적인 규모 추정
  • 3장: 시스템 설계 면접 공략법

2주차(1.30): ▣ 4, 5장: 51 ~ 90p → 40p

  • 4장: 처리율 제한 장치의 설계
  • 5장: 안정 해시 설계

3주차(02.06): ▣ 6, 7, 8장: 91 ~ 140p → 50p

  • 6장: 키-값 저장소 설계
  • 7장: 분산 시스템을 위한 유일 ID 생성기 설계
  • 8장: URL 단축기 설계

4주차(2.13): ▣ 9, 10장: 141 ~ 182p → 42p

  • 9장: 웹 크롤러 설계
  • 10장: 알림 시스템 설계

5주차(2.20): ▣ 11, 12장: 183 ~ 246p → 39p

  • 11장: 뉴스 피드 시스템 설계
  • 12장: 채팅 시스템 설계

6주차(2.27): ▣ 13, 15장: 223 ~ 307p → 45p

  • 13장 : 검색어 자동완성 시스템 - 23p
  • 15장 : 구글 드라이브 설계 - 22p

7주차(03.06): ▣ 14, 16장: 247 ~ 276, 301 ~ 307p → 37p

  • 14장 : 유튜브 설계 - 30p
  • 16장 : 배움은 계속된다 - 7p

참여자

  • 강민우 (Back-end)
  • 추호성 (Back-end)

진행 방식

  • 각자 미리 정해둔 챕터 읽고 Github에 요약 → 리딩할 때 사용
  • 챕터마다 질문 만들기 (github 이슈로 질문 작성)
    • 최대한 본인이 질문에 대한 답변 달아오기 (명확한 정답이 없을 확률이 높아 어떤 방식이 더 좋을지 토론)
  • 주마다 한 명이 리딩하고, 해당 챕터에 대해서 공유 & 토론
    • 챕터마다 질문 뽑아서 토론 & 결론 정리
    • 읽으면서 인상깊었던 점, 중요하게 생각했던 것들 공유
    • 공부하면서 찾아봤던 추가적인 자료 공유

참고할 만한 링크

책 레퍼런스 링크 모음

Chapter 1: Scale From Zero to Millions of Users
  1. Hypertext Transfer Protocol
  2. Should you go Beyond Relational Databases?
  3. Replication
  4. Multi-master replication
  5. NDB Cluster Replication
  6. Caching Strategies
  7. Scaling Memcache at Facebook
  8. Single point of failure
  9. Amazon CloudFront
  10. Sticky Sessions
  11. Active-Active for Multi-Regional Resiliency
  12. EC2 High Memory Instances
  13. Running Stack Overflow
  14. NoSQL Use Cases
Chapter 2: Back-of-the-Envelope Estimation
  1. Google Back-Of-The-Envelope-Calculations
  2. System Design Primer
  3. Latency Numbers Every Programmer Should Know
  4. Amazon SLA
  5. Google Cloud SLA
  6. Azure SLA
Chapter 3: A Framework for System Design Interviews

(외부 레퍼런스 없음)

Chapter 4: Design a Rate Limiter
  1. Rate-limiting strategies
  2. Twitter Rate limits
  3. Google Docs limits
  4. IBM Microservices
  5. AWS API Gateway throttling
  6. Stripe rate limiters
  7. Shopify API limits
  8. Redis Rate Limiting
  9. Rate limiter design
  10. Cloudflare rate limiting
  11. Redis
  12. Lyft rate limiting
  13. Rate limiters design
  14. Edge computing
  15. Iptables Rate Limiting
  16. OSI model
Chapter 5: Design Consistent Hashing
  1. Consistent hashing
  2. Consistent Hashing Implementation
  3. Amazon Dynamo
  4. Cassandra Architecture
  5. Discord Elixir Scaling
  6. Stanford CS168 Lecture
  7. Google Maglev Load Balancer
Chapter 6: Design a Key-Value Store
  1. Amazon DynamoDB
  2. Memcached
  3. Redis
  4. Amazon Dynamo Paper
  5. Apache Cassandra
  6. Google Bigtable
  7. Merkle Tree
  8. Cassandra Architecture
  9. SSTable and LSM
  10. Bloom Filter
Chapter 7: Design a Unique ID Generator
  1. UUID
  2. Flickr Ticket Servers
  3. Twitter Snowflake
  4. Network Time Protocol
Chapter 8: Design a URL Shortener
  1. RESTful API Tutorial
  2. Bloom Filter
Chapter 9: Design a Web Crawler
  1. US Library of Congress Archives
  2. EU Web Archive
  3. Digimarc Watermarks
  4. Mercator Web Crawler
  5. Web Crawling Survey
  6. Duplicate Content Issues
  7. Rabin Fingerprinting
  8. Bloom Filter Paper
  9. Web Crawling Introduction
  10. PageRank Paper
  11. Google Dynamic Rendering
  12. Web Spam Detection
  13. IRLbot Paper
Chapter 10: Design a Notification System
  1. Twilio SMS
  2. Nexmo SMS
  3. SendGrid
  4. Mailchimp
  5. Exactly-Once Delivery
  6. Push Notifications Security
  7. RabbitMQ Monitoring
Chapter 11: Design a News Feed System
  1. Facebook News Feed
  2. Neo4j Friend Recommendations
Chapter 12: Design a Chat System
  1. Erlang at Facebook
  2. Messenger Scale
  3. Long Tail
  4. Facebook Messages Technology
  5. Discord Message Storage
  6. Twitter Snowflake
  7. Apache ZooKeeper
  8. WeChat Evolution
  9. WhatsApp Encryption
  10. Slack Edge Cache
Chapter 13: Design a Search Autocomplete System
  1. Facebook Typeahead
  2. Building Prefixy
  3. Prefix Hash Tree
  4. MongoDB
  5. Unicode FAQ
  6. Apache Hadoop
  7. Spark Streaming
  8. Apache Storm
  9. Apache Kafka
Chapter 14: Design YouTube
  1. YouTube Statistics
  2. Demographics
  3. CloudFront Pricing
  4. Netflix on AWS
  5. Akamai
  6. BLOB
  7. Streaming Protocols
  8. Facebook Video Processing
  9. Weibo Video Architecture
  10. Shared Access Signatures
  11. Seattle Conference on Scalability: YouTube Scalability
  12. Understanding the Characteristics of Internet Short Video Sharing: YouTube as a Case Study
  13. Content Popularity for Open Connect
Chapter 15: Design Google Drive
  1. Google Drive
  2. Upload file data
  3. Amazon S3
  4. Differential Synchronization
  5. Differential Synchronization Youtube Talk
  6. How We've Scaled Dropbox
  7. The rsync algorithm - Andrew Tridgell and Paul Mackerras (1996)
  8. Librsync
  9. ACID
  10. Dropbox Security Whitepaper
  11. Amazon S3 Glacier
Chapter 16: The Learning Continues

Real-world systems

Company engineering blogs



About

가상 면접 사례로 배우는 대규모 시스템 디자인 기초 1 스터디

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •