카페에 시간당 평균 30명이 들어오고 한 사람이 주문부터 음료 수령까지 평균 12분을 보낸다면 매장 시스템 안에는 평균 몇 명이 있을까요? 12분을 0.2시간으로 바꾼 뒤 30명/시간을 곱하면 6명이 됩니다. 이처럼 평균 유입률과 평균 체류시간으로 시스템 안의 평균 개수를 구하는 관계가 리틀의 법칙(Little's law)입니다.
L = λW
L은 시스템 안에 있는 고객이나 작업의 장기 평균 개수, λ는 단위시간당 시스템에 들어오는 평균 개수, W는 한 항목이 시스템 안에서 보내는 평균 시간입니다. 고객 대신 웹 요청, 환자, 차량, 주문, 제조 중인 제품을 넣어도 같은 관계를 사용할 수 있습니다. 중요한 것은 세 값을 모두 같은 시스템 경계와 같은 시간 단위로 측정하는 일입니다.
리틀의 법칙에 나오는 L, λ, W의 뜻
| 기호 | 뜻 | 대표 단위 |
|---|---|---|
| L | 시스템 안에 있는 평균 고객·작업 수 | 명, 건, 개 |
| λ | 시스템으로 들어오는 평균 유효 도착률 | 명/시간, 건/초 |
| W | 한 항목의 평균 시스템 체류시간 | 시간, 분, 초 |
그리스 문자 λ는 ‘람다’라고 읽습니다. 예를 들어 λ=20명/시간이면 평균적으로 한 시간에 20명이 시스템 경계를 통과해 들어온다는 뜻입니다. W=0.5시간이면 한 사람이 들어와서 나갈 때까지 평균 30분을 보낸다는 뜻입니다. 두 값을 곱하면 `20명/시간×0.5시간=10명`이므로 시간 단위가 약분되고 사람 수만 남습니다.
L은 특정 순간에 반드시 10명이 있다는 뜻이 아닙니다. 어떤 때에는 4명, 다른 때에는 17명이 있을 수 있습니다. 긴 시간 동안 순간 고객 수를 평균했을 때 10명이라는 뜻입니다. W도 모든 고객이 정확히 30분 머문다는 뜻이 아니라 개별 체류시간의 평균입니다.
1961년 존 리틀이 증명한 대기열 공식
이 관계는 미국의 운영과학자 존 D. C. 리틀(John D. C. Little)의 이름을 땄습니다. 리틀은 1961년 학술지 Operations Research에 〈A Proof for the Queuing Formula: L=λW〉를 발표했습니다. 논문은 연속한 두 도착 사이의 평균시간을 1/λ, 시스템의 평균 고객 수를 L, 고객의 평균 체류시간을 W로 두고 일정한 조건에서 L=λW가 성립함을 증명했습니다.
원 논문의 조건은 세 평균이 유한하고 관련 확률과정이 엄격한 정상성을 가지며, 도착과정이 0이 아닌 평균을 지닌 계량적 추이성을 만족하는 경우로 표현됩니다. 실무에서는 시스템이 장기적으로 안정되어 있고 들어온 항목이 계속 쌓이기만 하지 않으며, 충분히 긴 기간의 평균을 같은 경계에서 측정한다는 조건으로 이해할 수 있습니다.
리틀의 법칙이 직관적으로 성립하는 이유
시간축 위에서 시스템 안의 고객 수 N(t)를 그린다고 생각해 보겠습니다. N(t) 그래프 아래의 넓이는 관찰기간 동안 모든 고객이 시스템에서 보낸 시간을 합한 값과 같습니다. 고객 한 명이 5분 머물면 5고객·분, 두 명이 각각 5분 머물면 10고객·분이 쌓입니다.
고객 수 그래프 아래 넓이 = 모든 고객의 체류시간 합
관찰시간을 T, 그동안 시스템에 들어온 고객 수를 A(T)라고 하겠습니다. 평균 도착률은 약 A(T)/T이고, 고객 한 명당 평균 체류시간은 체류시간 합을 A(T)로 나눈 값입니다. 두 값을 곱하면 A(T)가 약분됩니다.
λ_T×W_T = [A(T)/T]×[체류시간 합/A(T)] = 체류시간 합/T
체류시간 합을 T로 나눈 값은 N(t)의 시간평균, 즉 L_T입니다. 관찰 시작 전에 들어와 있던 고객과 종료 시점에도 남아 있는 고객이 만드는 경계 효과는 유한한 기간에서는 따로 처리해야 합니다. 안정된 시스템을 충분히 오래 관찰하면 이런 경계 효과가 전체 기간에 비해 작아져 장기 평균 L=λW가 나타납니다.
카페 대기열 예시: 평균 6명이 시스템 안에 있다
카페에 시간당 평균 30명이 들어오고, 입장해 주문 줄에 선 순간부터 음료를 받고 시스템을 떠날 때까지 평균 12분이 걸린다고 하겠습니다. λ의 단위가 시간당이므로 12분을 시간으로 바꿔야 합니다.
W = 12분÷60 = 0.2시간
L = 30명/시간×0.2시간 = 6명
평균 6명에는 주문을 기다리는 사람, 결제를 진행 중인 사람과 음료 제조를 기다리는 사람이 모두 포함됩니다. 시스템 경계를 ‘입장부터 음료 수령까지’로 정했기 때문입니다. 테이블에 앉아 음료를 마시는 시간까지 W에 포함하려면 L을 셀 때도 그 고객을 포함해야 합니다.
L과 Lq, W와 Wq를 구분해야 한다
대기열 이론에서는 시스템 전체와 순수한 대기 줄을 구분합니다. 아래첨자 q는 queue, 즉 줄에서 기다리는 부분을 뜻합니다.
| 기호 | 뜻 |
|---|---|
| L | 대기 중인 고객과 서비스 중인 고객을 합친 평균 시스템 고객 수 |
| Lq | 서비스를 받기 전 줄에서 기다리는 평균 고객 수 |
| W | 대기시간과 서비스시간을 합친 평균 체류시간 |
| Wq | 서비스가 시작되기 전까지의 평균 순수 대기시간 |
시스템 전체: L=λW
대기 줄만: Lq=λWq
앞의 카페에서 평균 체류시간 12분 중 순수 대기시간이 8분이고 주문·제조 등 서비스 관련 시간이 4분이라고 하겠습니다. Lq는 `30×(8/60)=4명`입니다. 서비스 단계에 있는 평균 인원은 `30×(4/60)=2명`이고, 두 수를 더하면 전체 L=6명이 됩니다.
단위를 맞추지 않으면 60배 오류가 생긴다
리틀의 법칙에서 가장 흔한 계산 오류는 λ와 W의 시간 단위를 다르게 쓰는 것입니다. 시간당 20명과 6분을 그대로 곱해 120명이라고 계산하면 안 됩니다. 6분은 0.1시간이므로 평균 고객 수는 2명입니다.
20명/시간×6분 = 20명/시간×0.1시간 = 2명
| 도착률 λ | 체류시간 W | 올바른 변환 | L |
|---|---|---|---|
| 20명/시간 | 6분 | 6/60=0.1시간 | 2명 |
| 4건/분 | 90초 | 90/60=1.5분 | 6건 |
| 120건/초 | 0.25초 | 변환 불필요 | 30건 |
| 40명/일 | 3.5일 | 변환 불필요 | 140명 |
단위 분석만 해도 많은 실수를 찾을 수 있습니다. λ의 분모에 있는 시간이 W와 곱해져 사라지고 사람·건·개 같은 항목 단위만 남아야 합니다. 시간²이나 명/시간 같은 단위가 결과에 남는다면 변환 또는 식의 방향을 다시 확인해야 합니다.
평균 체류시간 W를 역산하는 방법
평균 고객 수와 도착률을 알고 있다면 식을 W에 대해 정리할 수 있습니다.
W = L/λ
고객센터에 평균 18건의 상담 요청이 시스템 안에 있고 시간당 평균 24건이 처리 흐름에 들어온다고 하겠습니다. 평균 체류시간은 `18건÷24건/시간=0.75시간`, 즉 45분입니다. 여기서 L이 대기 중인 요청만 센 값이라면 결과도 순수 대기시간 Wq가 됩니다. 상담 중인 요청까지 L에 포함했다면 전체 체류시간 W가 됩니다.
필요한 처리율 λ를 역산하는 방법
평균 시스템 내 작업 수와 목표 체류시간을 알고 있다면 λ를 구할 수 있습니다.
λ = L/W
평균 90건의 작업이 진행 중이고 평균 체류시간이 3시간이라면 관측된 장기 처리 흐름은 `90÷3=30건/시간`입니다. 다만 이 계산값을 서버의 최대 처리능력이라고 부를 수는 없습니다. 리틀의 법칙은 관측된 평균 재공량과 흐름시간을 연결할 뿐, 설비가 낼 수 있는 최대 서비스율이나 여유 용량을 직접 계산하지 않습니다.
웹 서버 예시: 동시 처리 중인 요청 수
웹 서비스가 초당 평균 240개의 요청을 완료하고, 요청 하나가 시스템에 들어온 뒤 응답이 끝날 때까지 평균 0.15초가 걸린다고 하겠습니다. 안정된 상태에서 유효 유입률과 완료율이 같다면 평균 동시 요청 수는 다음과 같습니다.
L = 240건/초×0.15초 = 36건
평균적으로 36개의 요청이 대기, 연산, 데이터베이스 접근이나 네트워크 전송을 포함한 시스템 경계 안에 있다는 뜻입니다. 이 값은 필요한 스레드 수나 연결 풀 크기와 자동으로 같지 않습니다. 요청마다 자원을 쓰는 방식이 다르고, 평균은 순간 최대 동시성을 보여 주지 않기 때문입니다.
병원 예시: 평균 재원 환자 수
병동에 하루 평균 40명이 입원하고 평균 재원기간이 3.5일이라고 가정하겠습니다. 환자 흐름이 안정되어 장기적으로 입원 수와 퇴원 수가 맞는다면 평균 재원 환자 수는 `40명/일×3.5일=140명`입니다.
140은 필요한 병상 수를 그대로 뜻하지 않습니다. 일별 변동, 응급 입원, 병상 폐쇄, 성별·진료과별 배치, 목표 가동률과 최대 수요에 대한 여유가 별도로 필요합니다. 리틀의 법칙은 평균 점유를 알려 주지만 변동성과 서비스 수준을 정하지 않습니다.
제조업과 재고에서 쓰는 WIP=Throughput×Cycle Time
제조업에서는 L을 재공품(WIP, work in process), λ를 처리량 또는 산출률(throughput), W를 흐름시간이나 사이클타임으로 부릅니다. 용어가 달라도 관계는 같습니다.
평균 재공품 = 평균 처리량×평균 흐름시간
하루 평균 800개가 완성되고 원자재 투입부터 완제품 완료까지 평균 2.25일이 걸리면 평균 재공품은 `800개/일×2.25일=1,800개`입니다. 원자재 창고나 출하 대기 완제품을 시스템 경계에 포함한다면 L과 W를 잴 때도 같은 범위를 적용해야 합니다.
재고 관리에서는 보충 리드타임 동안의 평균 수요를 계산할 때도 비슷한 관계가 나타납니다. 하지만 안전재고는 수요와 리드타임의 변동에 대비하는 양이므로 평균 파이프라인 재고만 알려 주는 L=λW와 별도로 계산해야 합니다.
포아송 도착이나 선착순 줄이 아니어도 성립한다
리틀의 법칙은 특정한 대기열 분포를 풀어서 얻는 공식이 아닙니다. 정상적인 장기 평균이 존재하는 조건에서는 도착 간격이 지수분포인지, 서비스시간이 일정한지 또는 변동하는지에만 의존하지 않습니다. 서버가 한 대인지 여러 대인지, 선착순인지 우선순위 처리인지도 기본 관계 자체를 바꾸지 않습니다.
MIT의 대기열 강의 자료도 리틀의 법칙에 도착 간격과 서비스시간 분포, 대기 규칙, 서버 수에 대한 특정 제한이 없다는 점을 설명합니다. 이는 L=λW가 확률분포의 세부 모양보다 흐름량 보존에서 나오는 관계이기 때문입니다.
그렇다고 모든 대기열 성능을 이 식 하나로 알 수 있는 것은 아닙니다. 평균 도착률과 평균 서비스율만으로 평균 대기시간을 계산하려면 대기열 모형과 변동성 정보가 더 필요할 수 있습니다. 리틀의 법칙은 L, λ, W 중 두 값을 알고 있을 때 나머지 한 값을 연결해 줍니다.
안정된 시스템이라는 조건
시스템으로 들어오는 작업이 처리능력보다 계속 많으면 대기열은 시간에 따라 늘어납니다. 예를 들어 매시간 100건이 들어오지만 90건만 완료된다면 미처리 작업이 시간당 평균 10건씩 쌓입니다. 이 상태에서는 L과 W가 유한한 정상상태 평균으로 수렴하지 않을 수 있습니다.
단일 서버 M/M/1 모형에서는 안정 조건을 도착률 λ가 서비스율 μ보다 작다는 `λ<μ`로 씁니다. 하지만 리틀의 법칙 자체가 M/M/1 전용이라는 뜻은 아닙니다. 실제 시스템에서는 재시도, 취소, 우선순위, 여러 서버와 시간대별 용량이 있으므로 안정 여부를 해당 흐름에 맞게 판단해야 합니다.
도착률보다 유효 처리량을 써야 하는 경우
입구에서 고객을 돌려보내거나 요청을 차단하는 시스템에서는 ‘문 앞에 도착한 수’와 ‘시스템 안으로 받아들인 수’가 다릅니다. L과 W를 내부에 들어온 고객만 대상으로 측정했다면 λ도 실제로 입장한 유효 도착률을 써야 합니다. 차단된 고객까지 분자에 넣으면 경계가 일치하지 않습니다.
안정된 장기 상태에서는 시스템에 받아들인 평균 도착률과 평균 완료율이 같습니다. 따라서 자료가 더 정확하다면 완료 처리량을 λ로 사용할 수 있습니다. 단, 작업이 폐기되거나 중간에 취소되는 경우에는 어떤 종료를 완료로 셀지 먼저 정해야 합니다.
시스템 경계를 잘못 잡으면 계산이 어긋난다
리틀의 법칙에서 경계는 보이지 않는 상자와 같습니다. 고객이 상자 안으로 들어오는 시점과 나가는 시점을 먼저 정한 뒤 L, λ, W를 모두 그 상자에 맞춰 측정해야 합니다.
| 시스템 경계 | W에 포함되는 시간 | L에 포함되는 항목 |
|---|---|---|
| 카페 주문 줄 | 줄에 선 때부터 주문 시작까지 | 대기 중인 고객 |
| 카페 주문 시스템 | 줄 진입부터 음료 수령까지 | 대기·주문·제조 중인 고객 |
| 웹 API | 요청 수신부터 응답 완료까지 | 대기·처리·전송 중인 요청 |
| 병동 | 입원 처리부터 퇴원까지 | 현재 재원 환자 |
| 제조 공정 | 원자재 투입부터 완제품 완료까지 | 공정 내 모든 재공품 |
예를 들어 카페에서 W는 주문부터 음료 수령까지 재면서 L은 줄에 서 있는 사람만 센다면 서로 다른 경계를 섞은 것입니다. 이런 경우 L=λW가 맞지 않는 것처럼 보일 수 있지만 실제 문제는 공식이 아니라 측정 정의에 있습니다.
시간대별 수요가 크게 달라질 때의 주의점
점심시간에는 고객이 몰리고 오후에는 한산한 카페처럼 도착률이 시간에 따라 크게 달라질 수 있습니다. 하루 전체의 평균 L, 총 유효 도착 수를 영업시간으로 나눈 λ와 같은 고객 집합의 평균 W를 일관되게 계산하면 유한 관찰기간에도 흐름 보존 관계를 구성할 수 있습니다. 다만 시작 전 고객과 마감 후 남은 고객을 어떻게 처리했는지 밝혀야 합니다.
피크 30분의 평균 고객 수와 하루 전체의 평균 도착률, 하루 전체 고객의 평균 체류시간을 섞어 곱하면 안 됩니다. 측정 창이 다르면 같은 시스템처럼 보여도 서로 다른 표본을 사용하게 됩니다. 시간대별 운영을 평가하려면 같은 구간에서 L, λ와 W를 맞추거나 개별 고객의 입·출입 기록을 이용해야 합니다.
리틀의 법칙은 평균만 알려 준다
평균 체류시간이 10분이라고 해서 대부분의 고객이 10분 안에 끝난다는 뜻은 아닙니다. 절반은 2분 만에 끝나고 일부가 한 시간 넘게 기다려도 평균은 10분이 될 수 있습니다. 리틀의 법칙은 중앙값, 95백분위 대기시간이나 최대 대기시간을 계산하지 않습니다.
무작위 시점에 버스를 기다리는 사람이 긴 배차 간격을 더 자주 경험하는 검사 역설과 평균 대기시간의 차이도 평균 해석의 함정을 보여 줍니다. 리틀의 법칙에서 W는 시스템을 통과한 항목의 평균 체류시간이며, 임의 시점에 관측한 사람이 체감하는 잔여 대기시간과 같은 값이라고 보장되지 않습니다.
L을 줄이려면 λ와 W 중 무엇을 바꿔야 하나
장기 처리량 λ가 일정한 상태에서 평균 체류시간 W를 줄이면 평균 시스템 내 작업 수 L도 같은 비율로 줄어듭니다. 하루 800개를 계속 생산하면서 흐름시간을 2.25일에서 1.5일로 낮추면 평균 재공품은 1,800개에서 1,200개로 줄어듭니다.
그러나 L=λW는 원인과 결과의 방향을 자동으로 알려 주지 않습니다. 재공품을 무조건 줄이면 자재 부족으로 처리량이 떨어질 수 있고, 도착을 제한해 λ를 낮추면 L은 줄어도 고객을 거절하게 됩니다. 공정 개선으로 대기와 재작업을 줄였는지, 단순히 유입을 막았는지 운영 자료를 함께 봐야 합니다.
교통 흐름에 적용할 때
도로 구간을 하나의 시스템으로 잡으면 L은 구간 안의 평균 차량 수, λ는 시간당 통과 차량 수, W는 차량 한 대가 구간을 지나는 평균 시간이 됩니다. 시간당 1,200대가 통과하고 평균 통행시간이 3분이라면 구간 안에는 평균 `1,200×3/60=60대`가 있습니다.
혼잡이 심해져 통행시간이 늘면 같은 처리량에서도 구간 안 차량 수가 늘어납니다. 다만 경로 선택이 서로 영향을 주는 교통망에서는 브라에스의 역설과 네트워크 균형처럼 링크 하나의 평균 관계만으로 전체 흐름을 설명할 수 없는 현상도 있습니다. 리틀의 법칙은 정한 경계의 평균 흐름 관계를 제공하지만 운전자 경로 선택까지 결정하지는 않습니다.
리틀의 법칙을 잘못 적용하는 대표 사례
- 시간당 도착률에 분 단위 체류시간을 변환하지 않고 곱합니다.
- 대기 줄의 Lq와 서비스시간을 포함한 전체 W를 함께 사용합니다.
- 차단되거나 이탈한 요청까지 λ에 넣고 내부 고객의 W와 곱합니다.
- 대기열이 계속 증가하는 불안정한 기간의 평균을 정상상태로 해석합니다.
- 피크 시간 L과 하루 평균 λ·W처럼 측정기간이 다른 값을 섞습니다.
- 평균값으로 최대 동시성이나 95백분위 대기시간을 대신합니다.
- L=λW만으로 서비스 용량과 대기시간 분포까지 계산하려 합니다.
세 변수의 출처를 표로 정리하면 오류를 줄일 수 있습니다. 시스템의 입구와 출구, 관찰기간, 포함 대상, 시간 단위와 취소·재시도 처리 방법을 기록한 뒤 계산해야 합니다. 결과 단위가 고객이나 건수로 남는지도 확인합니다.
리틀의 법칙에 관한 자주 묻는 질문
λ는 도착률인가요, 처리율인가요?
안정된 장기 상태에서는 시스템에 실제로 받아들인 평균 도착률과 평균 완료율이 같습니다. 따라서 둘 중 신뢰할 수 있는 값을 쓸 수 있습니다. 입구에서 차단되거나 중간에 이탈하는 항목이 있다면 L과 W의 대상과 일치하는 유효 흐름률을 사용해야 합니다.
서비스시간도 W에 포함되나요?
시스템 전체에 대한 W라면 대기시간과 서비스시간을 모두 포함합니다. 순수한 줄만 분석하는 Wq에는 서비스시간을 넣지 않습니다. 어떤 시간을 포함할지는 시스템 경계를 어떻게 정했는지에 달려 있습니다.
고객이 한 명도 없는 시간도 L 계산에 포함하나요?
관찰기간의 시간평균을 구한다면 포함합니다. 고객 수가 0인 시간도 N(t) 그래프 아래 넓이에 0으로 반영됩니다. 바쁜 순간만 골라 평균을 내면 λ와 W도 같은 조건으로 다시 측정해야 합니다.
리틀의 법칙으로 직원 수를 계산할 수 있나요?
평균 시스템 고객 수나 체류시간을 연결할 수는 있지만 필요한 직원 수를 직접 결정하지는 않습니다. 직원 수 산정에는 서비스시간 분포, 목표 대기시간, 피크 수요, 휴식과 결근, 여러 업무를 함께 처리하는 방식이 필요합니다. 대기열 모형이나 시뮬레이션을 추가로 사용해야 합니다.
평균 대기시간이 두 배면 평균 줄 길이도 두 배인가요?
같은 유효 도착률 λ가 유지되고 같은 대기 줄 경계를 비교한다면 Lq=λWq이므로 두 배가 됩니다. 하지만 도착률도 함께 변하거나 고객 이탈이 늘면 단순히 두 배라고 할 수 없습니다.
짧은 하루 자료에도 사용할 수 있나요?
개별 입·출입 기록과 경계 항목을 정확히 처리하면 유한기간의 흐름 관계를 계산할 수 있습니다. 하지만 시작 전에 이미 있던 작업과 마감 후에도 남은 작업을 무시하거나 서로 다른 고객 집합으로 평균을 내면 오차가 생깁니다. 고전적인 L=λW는 장기 정상상태 평균으로 해석하는 것이 가장 단순합니다.
리틀의 법칙 계산 핵심 정리
리틀의 법칙은 `평균 시스템 내 고객 수 L=평균 유효 도착률 λ×평균 체류시간 W`입니다. λ가 시간당 단위라면 W도 시간으로, 초당 단위라면 W도 초로 맞춰야 합니다. 줄에서 기다리는 고객만 분석할 때는 `Lq=λWq`를 사용합니다.
이 관계는 포아송 도착, 지수 서비스시간, 서버 한 대나 선착순 대기열에만 제한되지 않습니다. 장기 평균이 유한하고 시스템이 안정적이며 L, λ, W를 같은 경계와 같은 관찰대상으로 측정할 때 넓게 성립합니다. 유입이 처리보다 계속 많아 작업이 끝없이 쌓이는 시스템에는 유한한 정상상태 평균이 없을 수 있습니다.
리틀의 법칙은 평균 사이의 보존 관계입니다. 순간 최대 고객 수, 대기시간의 분포, 필요한 서버 수나 목표 서비스 수준을 직접 알려 주지는 않습니다. 운영 판단에는 변동성, 피크 수요, 처리용량과 백분위 대기시간을 함께 확인해야 합니다.