책 내용 요약
2의 제곱수
2의 제곱수는 데이터의 계산을 다룰 때 규모 추정 등 다양하게 사용된다.
| 2의 x 제곱 | 근사치 | 이름 | 축약형 |
| 10 | 1천 (thousand) | 1킬로바이트 | 1KB |
| 20 | 1백만 (million) | 1메가바이트 | 1MB |
| 30 | 10억 (billion) | 1기가바이트 | 1GB |
| 40 | 1조 (trillion) | 1테라바이트 | 1TB |
| 50 | 1000조 (quadrillion) | 1페타바이트 | 1PB |
모든 프로그래머가 알아야 하는 응답지연 값
아래 응답지연 값들을 통해서 컴퓨터 연산들의 처리 속도가 어느 정도인지 짐작할 수 있다.
| 연산명 | 시간 |
| L1 캐시 참조 | 0.5 ns |
| 분기 예측 오류 (branch mispredict) | 5 ns |
| L2 캐시 참조 | 7 ns |
| 뮤텍스 (mutex) 락 / 언락 | 100 ns |
| 주 메모리 참조 | 100 ns |
| Zippy로 1 KB 압축 | 10,000 ns = 10 µs |
| 1 Gbps 네트워크로 2 KB 전송 | 20,000 ns = 20 µs |
| 메모리에서 1 MB 순차적으로 read | 250,000 ns = 250 µs |
| 같은 데이터 센터 내에서의 메시지 왕복 지연시간 | 500,000 ns = 500 µs |
| 디스크 탐색 (seek) | 10,000,000 ns = 10 ms |
| 네트워크에서 1 MB 순차적으로 read | 10,000,000 ns = 10 ms |
| 디스크에서 1 MB 순차적으로 read | 30,000,000 ns = 30 ms |
| 한 패킷의 CA (캘리포니아) 로부터 네덜란드까지의 왕복 지연시간 | 150,000,000 ns = 150 ms |
이를 통해, 다음과 같은 사실도 알 수 있다.
- 메모리는 빠르지만 디스크는 느리다.
- 디스크 탐색은 가능한 피하라.
- 단순한 압축 알고리즘은 빠르다.
- 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라.
- 데이터 센터는 보통 여러 지역에 분산되어 있고, 센터들 간에 데이터를 주고받는 데는 시간이 걸린다.
가용성에 관계된 수치들
고가용성 (HA, High Availability)은 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력을 지칭하는 용어다.
| 가용률 | 하루 당 장애시간 | 주 당 장애시간 | 개월 당 장애시간 | 연 간 장애시간 |
| 99% | 14.40 분 | 1.68 시간 | 7.31 시간 | 3.65 일 |
| 99.9% | 1.44 분 | 10.08 분 | 43.83 분 | 8.77 시간 |
| 99.99% | 8.64 초 | 1.01 분 | 4.38 분 | 52.60 분 |
| 99.999% | 864.00 밀리초 | 6.05 초 | 26.30 초 | 5.26 분 |
| 99.9999% | 86.40 밀리초 | 604.80 밀리초 | 2.63 초 | 31.56 초 |
예제: 트위터 QPS와 저장소 요구량 추정
QPS (Query Per Second): 검색 엔진이나 데이터베이스와 같은 정보 검색 시스템이 1초 동안 받는 검색 트래픽의 양
가정
- 월간 능동 사용자 (MAU)는 3억 명
- 50% 사용자가 매일 트위터를 이용
- 평균적으로 각 사용자가 매일 2건의 트윗 업로드
- 미디어를 포함하는 트윗은 10% 정도
- 데이터는 5년간 보관
추정
- QPS 추정치
- 일간 능동 사용자 (DAU) = 3억 * 50% = 1.5억
- QPS = 1.5억 * 2 트윗 * 24시간 / 3600초 = 약 3,500
- 최대 QPS (Peek QPS) = 2 * QPS = 약 7,000
- 미디어 저장을 위한 저장소 요구량
- 평균 트윗 크기
- tweet_id에 64 바이트
- 텍스트에 140 바이트
- 미디어에 1 MB
- 미디어 저장소 요구량 = 1.5억 * 2 * 10% * 1 MB = 30TB / 일
- 5년간 미디어를 보관하기 위한 저장소 요구량 = 30TB * 365 * 5 = 약 55PB
- 평균 트윗 크기
팁
- 면접장에서는 복잡한 계산을 실제로 구체적으로 하는 것 보다는 근사치를 활용하는 것이 시간을 아낀다. 99,987 / 9.1 의 실제 값을 구하기보다는 100,000 / 10 로 간소화하라.
- 가정들은 나중에 살펴볼 수 있도록 적어두라.
- 단위를 붙여두는 습관을 들이면 모호함을 방지할 수 있다.
- 많이 출제되는 개략적 규모 추정 문제를 해결하기 위해서는 QPS, 최대 QPS, 저장소 요구량, 캐시 요구량, 서버 수 등을 추정하는 연습을 해 두어야 한다.
Reference
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1 | 2. 개략적인 규모 추정
'[2026] System design & CS' 카테고리의 다른 글
| [가상 면접 사례로 배우는 대규모 시스템 설계 기초] 4. 처리율 제한 장치의 설계 (작성 중) (0) | 2026.02.21 |
|---|---|
| [가상 면접 사례로 배우는 대규모 시스템 설계 기초] 3. 시스템 설계 면접 공략법 (0) | 2026.02.16 |
| [가상 면접 사례로 배우는 대규모 시스템 설계 기초] 1. 사용자 수에 따른 규모 확장성 (내용 정리 / 핵심 키워드 / 토론 주제) (1) | 2026.02.10 |