목록으로
개발/아키텍처

바이브 코딩 시대, 개발자와 아키텍트를 가르는 숫자 감각 (Latency Numbers)

L1 캐시부터 HDD·대륙 간 네트워크까지, 메모리 계층 간 레이턴시의 '차수(Order of Magnitude)' 감각을 정리합니다. 1ns를 1초로 환산한 비유, 그리고 캐시·MSA·1M QPS 설계를 숫자로 판단하는 법까지 다룹니다.

guideintermediate
13 min read
레이턴시 계층과 성능 게이지레이턴시 계층과 성능 게이지
그림 1. 사용자 요청이 거치는 계층과 레이턴시

들어가며

AI가 코드를 대신 짜주면서 누구나 개발에 진입할 수 있는 시대가 됐습니다. 하지만 '코드를 작성하는 것'과 '근거 있는 의사결정으로 시스템을 설계하는 것'은 전혀 다른 영역입니다.

진정한 엔지니어이자 아키텍트라면 "DB 조회가 느리니 캐시를 달자"는 직관적인 느낌을 넘어, "캐시를 달면 얼마나, 왜 빨라지는지"를 객관적인 숫자(차수)로 증명할 수 있어야 합니다. 그 근거의 핵심이 바로 메모리 계층 간 레이턴시차수 감각입니다.

계층레이턴시1ns를 1초로 환산RAM 대비
L1 캐시1 ns1초기준 최상위
메인 메모리(RAM)100 ns약 1분 40초1배 (기준)
NVMe SSD20 μs약 5시간 30분약 200배 느림
SATA SSD100 μs약 28시간약 1,000배 느림
데이터센터 내부 RTT500 μs약 5.8일약 5,000배 느림
HDD 탐색5 ms약 2개월약 5만~10만 배 느림

이 표 하나에 글의 핵심이 담겨 있습니다. 단위가 ns → μs → ms로 바뀌는 순간, 비용은 단순히 몇 배가 아니라 자릿수 자체가 점프합니다.

메모리 계층과 레이턴시

컴퓨터 시스템은 속도·용량·비용의 트레이드오프(Trade-off)를 맞추기 위해 메모리를 계층으로 나눠 둡니다. CPU 캐시는 빠르지만 작고 비싸며, HDD는 느리지만 크고 쌉니다. 그래서 빠른 계층에서 가능한 한 많은 요청을 처리하고, 느린 계층까지 내려가는 일을 줄이는 것이 성능 설계의 본질입니다.

각 계층 간 속도 차이는 상상 이상으로 거대합니다. 1나노초(ns)를 1초로 환산해 보면 체감이 분명해집니다.

메모리 계층과 레이턴시를 아키텍처 계층에 매핑한 다이어그램메모리 계층과 레이턴시를 아키텍처 계층에 매핑한 다이어그램
그림 2. 레이턴시 차수와 아키텍처 계층의 매핑 — 위로 갈수록 빠르고 가깝고 저렴하다

CPU 입장에서 RAM에서 데이터를 가져오는 것은 잠깐 커피를 타오는 정도의 시간입니다. 하지만 최신 NVMe SSD라도 약 5시간을 기다려야 하고, HDD에서 데이터를 가져오는 것은 무려 '두 달짜리 휴가'를 다녀오는 것과 같습니다. 이 격차 때문에 "어느 계층에서 데이터를 읽느냐"가 시스템 성능을 사실상 결정합니다.

위 다이어그램의 핵심은 단순한 속도 순서가 아닙니다. 각 레이턴시 계층이 아키텍처 계층(앱 → 네트워크 → DB·스토리지)과 어떻게 대응되는지를 함께 보여 줍니다. 로컬 캐시가 빠른 이유(RAM, 100ns), 분산 캐시 Redis가 네트워크 비용을 감수하는 이유(DC RTT, 500μs), 디스크 조회가 치명적인 이유(HDD, 5ms)가 모두 이 차수의 격차에서 나옵니다.

'모든 프로그래머가 알아야 할 숫자'의 역사

이 중요한 수치들은 한 천재의 머리에서 나온 것이 아니라, 업계 거장들이 발전시켜 온 공용 자산입니다.

인물시점기여
피터 노빅 (Peter Norvig)2001에세이 "10년이 걸리는 프로그래밍"에서 로컬 하드웨어의 물리적 제약을 설명하며 최초로 11가지 레이턴시 수치를 제시
제프 딘 (Jeff Dean)2009구글의 거대한 분산 시스템 경험을 바탕으로 네트워크 압축 트레이드오프, SSD 지연, 데이터센터 내부 RTT 비용을 추가
콜린 스콧 (Colin Scott)2012~하드웨어 발전에 따른 연도별 수치 변화를 인터랙티브하게 시각화
  • 피터 노빅의 원본 표에는 SSD나 데이터센터 RTT가 없었습니다. 당시는 로컬 PC의 물리적 제약이 중심이었기 때문입니다.
  • 제프 딘은 여기에 분산 시스템 관점을 더했습니다. 대표적으로 네트워크 압축의 트레이드오프 — '그냥 전송(약 10μs)' vs '압축 후 전송(압축 약 3μs + 전송)' — 처럼, 한 단계 더 들어간 의사결정을 수치로 제시했습니다.
  • 콜린 스콧의 통찰이 특히 중요합니다. 하드웨어가 계속 발전해 절대값은 변하더라도, 계층 간의 상대적 서열과 격차(배수)는 시대가 지나도 변하지 않는다는 점입니다.

실무 아키텍처 설계에 적용하기

이런 수치 감각이 있으면 시스템을 직접 구현해 보지 않고도 성능을 추정하고 의사결정을 내릴 수 있습니다.

캐시(Redis) 도입 의사결정

디스크(HDD) 탐색이 밀리초(ms) 단위라면, 메모리 조회는 나노초(ns) 단위이고 분산 캐시의 내부 네트워크 비용을 더해도 약 500μs 수준입니다. 단위 자체가 다르므로, 캐시 도입 시 압도적인 성능 향상이 있을 것임을 숫자로 확신할 수 있습니다.

마이크로서비스(MSA) 분리의 진짜 비용

단일 서버 메모리에서의 함수 호출은 나노초(ns) 단위입니다. 그런데 기능을 다른 서비스로 분리해 네트워크 통신을 거치면 기본 500μs(마이크로초)가 듭니다. 즉, 분리하는 순간 호출 비용이 최소 10만 배 증가합니다. 무조건적인 MSA 분리가 정답이 아니며, 그 비용을 감수할 분명한 이유가 있을 때만 신중히 적용해야 함을 알 수 있습니다.

초당 100만 요청(1M QPS) 시스템 설계

메모리 조회(100ns)만으로는 이론상 단일 서버가 초당 1,000만 건을 처리할 수 있습니다. 하지만 DB(ms)나 네트워크(μs)를 타는 순간 병목이 발생합니다. 이 차수 비교만으로 왜 캐시가 필수인지, 왜 네트워크 호출을 최소화해야 하는지에 대한 근거를 댈 수 있습니다. QPS가 커질수록 단일 요청의 레이턴시가 곧 처리 한계를 결정하기 때문입니다.

이 차수 감각이 실제 캐싱·복제·인덱스·샤딩 같은 전략으로 어떻게 이어지는지는 읽기 성능 vs 쓰기 성능 최적화 전략에서 계층별로 자세히 다룹니다. 이 글이 "왜 계층마다 비용이 다른가(why)"라면, 그 글은 "그래서 어떻게 최적화하는가(how)"입니다.

명심해야 할 4가지

1. 정확한 수치를 통째로 외울 필요는 없다

중요한 것은 나노초·마이크로초·밀리초 단위 간의 '규모(차수)의 격차'를 체감하는 감각입니다. 100ns인지 120ns인지보다, "RAM은 ns, SSD는 μs, HDD는 ms"라는 자릿수 구분이 핵심입니다.

2. 핵심 계층 몇 가지만 기억하라

L1 캐시 · 메인 메모리 · SSD · 데이터센터 내부 RTT · 대륙 간 네트워크 비용. 이 다섯 계층만 알아도 웬만한 성능 추정은 가능합니다.

3. 절대값이 아닌 비율을 보라

연도마다 하드웨어 스펙(절대값)은 변하지만, RAM이 SSD보다 압도적으로 빠르다는 비율적 격차는 그대로 유지됩니다. 그래서 오래된 수치표라도 상대 비교용으로는 여전히 유효합니다.

4. 레이턴시가 전부는 아니다

응답 속도(Latency)뿐 아니라 처리량(Throughput)도 함께 고려해야 합니다. 작은 데이터를 무작위로 여러 번 읽는 것보다 큰 데이터를 순차적으로 읽을 때가 처리량 면에서 유리하고, 여러 호출을 배치(Batch)로 묶어 네트워크 비용을 줄이는 것도 중요한 전략입니다.

마치며

레이턴시 숫자 감각은 단순한 암기 지식이 아니라, 설계 의사결정을 숫자로 뒷받침하는 도구입니다. 정리하면 다음과 같습니다.

  • 메모리 계층 간 레이턴시는 ns → μs → ms로 자릿수 자체가 바뀌며, 1ns를 1초로 환산하면 L1(1초)과 HDD(약 2개월)만큼 벌어집니다.
  • 이 수치는 노빅 → 제프 딘 → 콜린 스콧으로 이어진 공용 자산이며, 절대값은 변해도 계층 간 비율은 변하지 않습니다.
  • 차수 감각이 있으면 캐시 도입, MSA 분리 비용(10만 배 증가), 1M QPS 병목 지점을 구현 전에 숫자로 추정할 수 있습니다.
  • 외울 것은 정확한 값이 아니라 차수의 격차이며, 레이턴시뿐 아니라 처리량(배치·순차 접근)도 함께 봐야 합니다.

출처: 두 편의 YouTube 영상(영상 1, 영상 2)을 바탕으로 정리했으며, 본문의 수치는 표준 자료 Latency Numbers Every Programmer Should Know(Peter Norvig·Jeff Dean·Colin Scott)와 대조해 검증했습니다.

레이턴시
한 작업을 요청한 뒤 결과가 돌아오기까지의 지연 시간을 뜻합니다. 메모리 조회는 나노초(ns), SSD는 마이크로초(μs), 디스크·원거리 네트워크는 밀리초(ms) 단위로, 계층마다 자릿수 자체가 달라집니다. 처리량(Throughput)과는 구분되는 개념입니다.
차수
값의 규모를 10의 거듭제곱 단위로 나타낸 등급입니다. 100ns와 100μs는 단순히 '몇 배 차이'가 아니라 1,000배, 즉 세 자릿수(차수)가 다릅니다. 레이턴시 감각의 핵심은 정확한 숫자가 아니라 이 차수의 격차를 체감하는 데 있습니다.
RTT
Round Trip Time의 약자로, 요청이 상대에게 도달했다가 응답이 돌아오기까지의 왕복 지연입니다. 같은 데이터센터 내부 RTT는 약 500μs, 대륙을 가로지르는 RTT는 약 150ms로, 네트워크를 한 번 타는 비용의 기준이 됩니다.
QPS
Queries Per Second의 약자로, 시스템이 1초에 처리하는 요청 수를 의미합니다. 1M QPS는 초당 100만 요청을 뜻하며, 단일 요청의 레이턴시가 곧 단일 서버의 처리 한계를 결정하기 때문에 대규모 트래픽 설계의 핵심 지표가 됩니다.
MSA
Microservice Architecture의 약자입니다. 하나의 애플리케이션을 작은 독립 서비스들로 나누고, 서비스 간에는 네트워크로 통신합니다. 단일 서버 내 함수 호출(ns)이 네트워크 호출(μs~ms)로 바뀌면서 호출 비용이 수만 배 증가하므로, 분리에는 분명한 대가가 따릅니다.
처리량
Throughput. 단위 시간에 처리 가능한 작업이나 데이터의 총량입니다. 응답 속도(Latency)와는 다른 축으로, 작은 데이터를 무작위로 여러 번 읽는 것보다 큰 데이터를 순차적으로 읽거나 여러 호출을 배치(Batch)로 묶을 때 유리해집니다.

관련 글