Chapter 2 · 개략적인 규모 추정
모든 프로그래머가 알아야 하는
응답 지연값(Latency)
Jeff Dean의 Numbers Every Engineer Should Know | 시스템 설계의 직관적 기준
📋 목차
- 응답 지연값이란? 왜 중요한가
- 핵심 지연 시간 수치 표 (Jeff Dean)
- 시각화: 지연 시간 비교 바 차트
- 시스템 설계에서 얻는 인사이트
- 메모리 vs 디스크 vs 네트워크 비교
1 응답 지연값이란? 왜 중요한가
시스템을 설계할 때 "이 작업이 얼마나 빠른가?"에 대한 감각이 필요합니다. 메모리 접근은 얼마나 빠른지, 디스크 읽기는 얼마나 느린지, 네트워크 왕복은 어느 정도인지 알아야 올바른 아키텍처 결정을 내릴 수 있습니다.
💡 Jeff Dean의 Numbers Every Engineer Should Know
Google의 석학 엔지니어 Jeff Dean이 정리한 이 수치들은 시스템 설계의 기준점(baseline)이 됩니다. 정확한 숫자보다 상대적인 크기 차이를 이해하는 것이 핵심입니다.
Google의 석학 엔지니어 Jeff Dean이 정리한 이 수치들은 시스템 설계의 기준점(baseline)이 됩니다. 정확한 숫자보다 상대적인 크기 차이를 이해하는 것이 핵심입니다.
시간 단위를 먼저 정리해봅시다.
| 단위 | 기호 | 크기 | 예시 |
|---|---|---|---|
| 나노초 | ns | 10-9초 | CPU 연산 1회 |
| 마이크로초 | μs | 10-6초 | 메모리 접근 |
| 밀리초 | ms | 10-3초 | SSD 읽기, 네트워크 |
| 초 | s | 1초 | 사용자가 느끼는 지연 |
2 핵심 지연 시간 수치 (Jeff Dean)
| 작업 | 지연 시간 | 단위 환산 |
|---|---|---|
| 🟢 나노초 단위 (ns) — CPU/캐시 | ||
| L1 캐시 참조 | 0.5 ns | 기준 |
| 분기 예측 실패 (Branch Mispredict) | 5 ns | L1 캐시의 10배 |
| L2 캐시 참조 | 7 ns | L1 캐시의 14배 |
| 뮤텍스 lock/unlock | 100 ns | 0.1 μs |
| 🟡 마이크로초 단위 (μs) — 메모리/압축 | ||
| 메인 메모리 참조 | 100 ns | 0.1 μs |
| Zippy로 1KB 압축 | 10,000 ns | 10 μs |
| 1Gbps 네트워크로 2KB 전송 | 20,000 ns | 20 μs |
| 메모리에서 1MB 순차 읽기 | 250,000 ns | 250 μs |
| 같은 데이터센터 내 왕복 (RTT) | 500,000 ns | 0.5 ms |
| 🔴 밀리초 단위 (ms) — 디스크/네트워크 | ||
| HDD 탐색 (Disk Seek) | 10,000,000 ns | 10 ms |
| 네트워크에서 1MB 순차 읽기 | 10,000,000 ns | 10 ms |
| 디스크에서 1MB 순차 읽기 | 30,000,000 ns | 30 ms |
| CA → 네덜란드 → CA 패킷 왕복 | 150,000,000 ns | 150 ms |
3 시각화: 상대적 크기 비교
수치를 로그 스케일로 바라보면 얼마나 차이가 나는지 직관적으로 파악됩니다.
🟢 ns 단위 (캐시 · CPU)
🟡 μs 단위 (메모리 · 네트워크 소량)
🔴 ms 단위 (디스크 · 원거리 네트워크)
4 시스템 설계에서 얻는 인사이트
⚡
메모리는 디스크보다 압도적으로 빠르다
메모리 접근 ≈ 100ns, 디스크 탐색 ≈ 10ms
→ 10만 배 차이
→ 자주 쓰는 데이터는 캐싱이 핵심
→ 10만 배 차이
→ 자주 쓰는 데이터는 캐싱이 핵심
💾
순차 읽기는 탐색보다 훨씬 빠르다
디스크 탐색: 10ms
디스크 순차 읽기(1MB): 30ms
→ 같은 데이터량이라도 순차 접근이 유리
디스크 순차 읽기(1MB): 30ms
→ 같은 데이터량이라도 순차 접근이 유리
🌍
대륙 간 통신은 피하라
CA → NL → CA 왕복: 150ms
→ 같은 DC 내 RTT(0.5ms)의 300배
→ 지역별 분산 배치 설계 중요
→ 같은 DC 내 RTT(0.5ms)의 300배
→ 지역별 분산 배치 설계 중요
🏗️
아키텍처 선택의 근거
Redis(메모리) vs MySQL(디스크)
→ 읽기 성능 차이가 수천 배
→ 용도에 맞는 저장소 선택 필수
→ 읽기 성능 차이가 수천 배
→ 용도에 맞는 저장소 선택 필수
5 메모리 vs 디스크 vs 네트워크 핵심 비교
📊 1MB 데이터 읽기 기준 비교
🟢 메모리(RAM)에서 읽기
250 μs
기준
🟡 네트워크(1Gbps)에서 읽기
10 ms
RAM의 40배 느림
🔴 HDD 디스크에서 읽기
30 ms
RAM의 120배 느림
⚠️ 2020년대 업데이트 관점
Jeff Dean의 원본 수치는 HDD 기준이며, 현재는 NVMe SSD(0.1ms 미만)가 보편화되었습니다. 하지만 상대적인 비율의 감각과 캐시/메모리의 중요성은 여전히 동일하게 적용됩니다.
Jeff Dean의 원본 수치는 HDD 기준이며, 현재는 NVMe SSD(0.1ms 미만)가 보편화되었습니다. 하지만 상대적인 비율의 감각과 캐시/메모리의 중요성은 여전히 동일하게 적용됩니다.
🎯 핵심 정리
- 캐시(L1/L2) → 메모리 → 디스크 → 네트워크 순으로 속도가 느려짐
- 메모리 vs HDD: 약 10만 배 차이 — 캐싱이 핵심인 이유
- 같은 DC 내 RTT 0.5ms vs 대륙 간 150ms — 지역 분산 배치 설계 중요
- 디스크 순차 읽기 > 무작위 읽기 — I/O 패턴 최적화 중요
- 이 수치들은 면접에서 캐시 도입, DB 선택, 지역 배포 결정의 정량적 근거가 됨
'TechKnowledge > CS관련지식' 카테고리의 다른 글
| 대규모 시스템 설계 기초 학습용 ch2 (0) | 2026.04.05 |
|---|---|
| IT 지식 독서 요약 72, 73 월드 와이드 웹은 무료다/ URL의 의미 (0) | 2022.06.22 |
| IT 지식 독서요약 47,51 자바스크립트와 파이썬은 어떻게 작동할까? (0) | 2022.06.13 |
| Web Server와 WAS의 차이 (0) | 2022.06.04 |
| IT 지식 독서요약 소프트웨어 27. 작문과 비슷한 프로그래밍 (0) | 2022.06.03 |
