728x90
2의 제곱수
모든 프로그래머가 알아야 하는 응답지연 값
- 메모리는 빠르지만 디스크는 아직도 느리다.
- 디스크 탐색은 가능한 피하라
- 단순한 압축 알고리즘은 빠르다.
- 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라
- 데이터 센터는 보통 여러지역에 분산되어 있고, 센터들 간에 데이터를 주고 받는데에 시간이 걸린다.
통신할 때, 데이터를 압축하거나, 용량을 줄이는 것에 대해는 와닿는다.
예를 들어, 이미지를 저장하는데, 클라 -> 서버 -> 이미지서버라면, 2번의 통신에 용량이 큰 이미지가 들어갈 것이다.
용량이 큰 이미지는 클라이언트에서 바로 이미지 서버로 전송하는 것이 더 효율적일 것이다.
가용성에 관계된 수치들
고가용성(High availability)는 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력을 지칭하는 용어다.
퍼센트로 표현하는데 100%는 단 한번도 중단된 적이 없었음을 의미하고, 대부분은 99% ~ 100%이다.
예제: 트위터 QPS와 저장소 요구량 추정
가정
- 월간 능동 사용자는 3억명
- 50%의 사용자가 트위터를 매일 사용
- 평균적으로 각 사용자는 매일 2건 트윗 올림
- 미디어를 포함한 트윗은 10%정도
- 데이터는 5년간 보관된다.
추정
QPS(Query Per Second) 추정치
- 일간 능동 사용자(DAU) = 3억 * 50% = 1.5억
- QPS = 1.5억 * 2 트윗/24시간/3600초 = 약 3500개
- 최대 QPS = 2 * QPS = 7000
미디어 저장을 위한 저장소 요구량
- 평균 트윗 크기
- tweet_id에 64바이트
- 텍스트에 140바이트
- 미디어에 1MB
- 미디어 저장소 요구량 : 1.5 * 2 * 10% * 1MB = 30TB/일
- 5년간 미디어 저장소 요구 : 30TB * 365 * 5 = 약 55PB
팁
개략적인 규모 추정과 관계된 면접은 계산하는게 아니라, 결과를 내는 것이 중요하다.
- 근사치 계산은 생략
- 가정은 적어두라 나중에 볼 수 있도록
- 단위를 붙여라
- 많이 출제되는 개략적 규모 추정 문제는 QPS, 최대 QPS, 저장소 요구량, 캐시 요구량, 서버 수 등을 추정하는 것이다.
사실 한국에서 면접을 많이 보면서, 개략적인 규모 추정을 물어보는 분은 한분도 없긴했다..
저자가 외국인이라,, 그런가?
근데 읽다보니, 개략적인 규모 측정하는 능력은 필요하다고 느꼈고, 면접 때 물어보는 것도 합리적이라 생각이 들었다.
'개발 서적 완독하기 > 가상 면접 사례로 배우는 대규모 시스템 설계 기초' 카테고리의 다른 글
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 5장(안전 해시 설계) (2) | 2024.01.22 |
---|---|
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 4장(처리율 제한 장치의 설계) (0) | 2023.12.04 |
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 3장(시스템 설계 면접 공략법) (0) | 2023.11.06 |
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 1장 (사용자 수에 따른 규모 확장성) (0) | 2023.09.13 |