제66회 · LLM과 함께 배우는 생각그림

누적 막대·영역 차트는 전체 시간의 구성을 어떻게 보여 줄까?

전체 응답시간이 늘었을 때 어느 단계가 얼마나 차지했는지, 하루 비교와 시간 흐름을 서로 다른 도표로 읽습니다.

응답시간 100ms를 네 단계로 나눠 본다

검색 42ms, 생성 28ms, 검증 18ms, 대기 12ms가 순차로 실행되어 총 100ms가 되었다고 하자. 누적 막대는 한 막대의 높이를 총량으로, 색 구간의 길이를 구성 요소로 나타낸다. 여러 날을 나란히 놓으면 총시간과 단계별 변화가 함께 보인다. 각 구간은 같은 단위와 겹치지 않는 범주여야 한다.

이 글의 값은 실제 서비스 추적 결과가 아닌 교육용 자료다. 실제 운영 자료에서는 시작·종료 시각, 중첩 실행, 재시도, 캐시, 네트워크 대기를 먼저 정의한다. 병렬 단계의 시간을 단순 합하면 벽시계 총시간보다 커질 수 있다. 누적 차트는 합계가 뜻 있는 분해일 때 사용한다.

생각그림 1 · 네 단계의 절대 시간을 쌓은 누적 막대도표를 좌우로 움직여 전체 내용을 확인하세요.
실행일총 처리 시간(ms)42ms28ms18ms12ms월36ms31ms21ms12ms화30ms33ms25ms12ms수26ms30ms31ms13ms목
막대 전체는 100ms, 내부 구간은 서로 겹치지 않는 네 단계의 준비된 시간입니다.

누적 막대는 항목 비교, 누적 영역은 연속 변화에 맞는다

월·화·수·목처럼 몇 개 시점을 정확히 비교할 때는 누적 막대가 경계를 분명하게 보여 준다. 초·분·일 단위로 이어지는 흐름과 구성 변화의 큰 무늬를 볼 때는 누적 영역이 유용하다. 영역 차트는 인접 시점을 선으로 보간하므로 측정 사이가 연속적으로 변했다고 읽을 근거가 있는지 확인한다.

Observable Plot 공식 문서는 영역을 기준선과 윗선 사이의 영역으로 정의하고, 입력 순서대로 점을 연결하므로 시간 자료를 정렬해야 한다고 설명한다. 색 범례가 없으면 영역의 범주를 해석할 수 없다는 경고도 제공한다. 결측 시점은 0으로 자동 채우지 말고 끊김, 미수집, 실제 0을 구분한다.

생각그림 2 · 같은 네 단계를 시간축에서 잇는 누적 영역도표를 좌우로 움직여 전체 내용을 확인하세요.
시간단계별 시간의 누적 합(ms)
영역의 두께가 해당 단계의 값이며, 위쪽 경계의 높이는 그 아래 단계까지의 누적 합입니다.

절대 누적과 100% 누적은 서로 다른 질문에 답한다

절대 누적 막대는 총량과 구성량을 함께 보여 준다. 100% 누적 막대는 각 막대를 같은 높이로 맞춰 구성비 변화에 집중한다. 총시간이 80ms에서 160ms로 두 배가 되어도 구성비가 같으면 100% 차트에서는 변화가 보이지 않는다. 반대로 총량은 같아도 검색 비중이 늘면 구성비 차트에서 드러난다.

절대값과 비율을 한 축에 섞지 않는다. 비율 차트에는 분모인 총량을 라벨이나 별도 점 그래프로 제공한다. 비율이 5% 늘었다는 문장은 20%에서 25%로 바뀐 경우 +5%포인트이며 상대 증가는 25%다. 범주 합계가 100%인지 반올림 오차와 누락 범주를 검사한다.

생각그림 3 · 100% 누적 막대에서 구성비 비교도표를 좌우로 움직여 전체 내용을 확인하세요.
실행일구성 비율(%)42%28%18%12%월36%31%21%12%화30%33%25%12%수26%30%31%13%목
모든 막대 높이가 같으므로 총시간 증감은 보이지 않습니다. 총량을 별도 숫자로 함께 제공해야 합니다.

기준선에서 멀어진 구간은 정확한 비교가 어렵다

맨 아래 구간은 공통 0 기준선을 가져 길이를 비교하기 쉽다. 두 번째 이후 구간은 아래 경계가 움직여 시작점이 달라진다. 가운데 범주의 작은 차이를 정확히 비교하려면 그 범주를 아래로 재정렬하거나 작은 다중 막대, 선, 점 그래프로 분리한다. 누적 차트는 총량과 대략적 구성에 강하다.

범주 순서를 매 시점 값순으로 바꾸면 색 띠가 위아래로 이동해 흐름을 추적하기 어렵다. 운영 단계 순서처럼 의미 있는 고정 순서를 유지한다. 가장 중요한 범주를 기준선 가까이에 놓되 도표 전체에서 같은 순서를 쓴다. 범주가 많으면 작은 구간이 사라지므로 상위 범주와 기타를 나누고 기타의 상세 표를 제공한다.

생각그림 4 · 누적 위치에 따른 비교 난이도
위치공통 기준선읽기 쉬운 것보완 방법
맨 아래있음구간 값 변화직접 비교 가능
가운데없음대략적 두께별도 선·점 그래프
맨 위 경계총합 기준전체 총량총량 라벨
많은 작은 구간불안정구성 개요기타+상세 표
모든 색 구간을 같은 정밀도로 비교할 수 있다고 가정하지 않습니다.

총량과 부분의 합을 원자료로 되돌려 검산한다

각 시점에서 검색+생성+검증+대기가 총시간과 같은지 확인한다. 재시도 시간이 생성에 포함되면서 별도 재시도 범주에도 들어가면 중복 합산된다. 측정되지 않은 기타 시간이 있으면 차이를 숨기지 말고 미분류로 남긴다. 합계선은 부분 합과 독립 측정한 벽시계 시간을 함께 보여 오류를 찾게 한다.

일별 요청 수가 다르면 총 밀리초 합계가 트래픽을 반영한다. 한 요청당 평균, 중앙값, p95는 질문이 다르다. 평균 구성요소의 합이 전체 p95와 같지 않을 수 있다. 각 통계량을 어떤 단위에서 계산했는지 적고 서로 다른 백분위수를 쌓지 않는다. 지연 분포는 별도 히스토그램이나 상자그림으로 확인한다.

생각그림 5 · 누적 합 검산표
시점검색생성검증대기부분합벽시계
월42281812100100
화36312112100100
수30332512100101
목26303113100100
수요일의 1ms 차이는 반올림인지 미분류 시간인지 원 추적 자료로 확인해야 합니다.

병렬 실행에서는 막대 합계가 실제 지연과 다를 수 있다

검색 두 개를 병렬로 실행해 각각 40ms와 55ms가 걸리면 벽시계 검색 지연은 약 55ms와 조정 비용이다. 작업 시간을 95ms로 쌓으면 자원 사용량을 표현할 수 있지만 사용자 대기시간으로 읽으면 틀린다. 병렬 작업은 간트·시퀀스·임계경로 도표로 시간 겹침을 먼저 확인한다.

누적 막대에 CPU시간, GPU시간, 네트워크 대기, 사람 검토를 함께 쌓을 때도 합계의 의미를 정한다. 비용 합계는 가능하지만 벽시계 지연 합계는 겹침 때문에 달라질 수 있다. 도표 제목에 “누적 자원시간” 또는 “순차 벽시계 분해”를 적어 같은 길이를 다른 개념으로 해석하지 않게 한다.

생각그림 6 · 순차와 병렬 시간의 차이
순차 40+55벽시계 95ms
병렬 40∥55벽시계 약 55ms
작업량 합95ms·task
병렬을 단순 누적지연 과대표현
보완간트·임계경로
쌓을 수 있는 값인지보다 합계가 어떤 물리적 양을 뜻하는지 먼저 확인합니다.

음수와 순증감은 일반 누적 영역에 바로 넣지 않는다

캐시 절약 −12ms처럼 음수 효과를 양수 단계와 같은 누적 막대에 넣으면 기준선과 합계 해석이 복잡해진다. 시작값에서 증가와 감소를 이어 최종값을 만드는 질문에는 워터폴 차트가 더 알맞다. 양수·음수가 있는 시계열은 0 기준선 위아래로 분리하거나 순값과 구성값을 별도 패널로 제공한다.

오류율, 비용, 시간처럼 단위가 다른 지표도 한 누적 막대에 더하지 않는다. 정규화 점수로 쌓으면 합계가 원래 물리량이 아니므로 가중치와 기준점을 밝혀야 한다. 구성 범주가 서로 배타적이고 모두 같은 단위를 쓸 때 누적의 의미가 가장 명확하다.

생각그림 7 · 누적 차트 사용 전 자료 조건
같은 단위시간+시간
배타적 범주중복 없음
음수 기여워터폴 검토
다른 단위 합의미 없는 총합
결측=0 처리구분 필요
누적은 시각 효과가 아니라 더할 수 있는 자료 구조를 전제로 합니다.

LLM에는 긴 형식 원자료와 합계 규칙을 준다

시점, 단계, 값, 단위, 요청 수, 측정 방법을 한 행씩 제공한다. LLM에게 시점×단계 피벗표를 만들고 중복 키·결측·음수·단위 혼합을 찾게 한다. 시점별 부분합과 독립 총량의 차이를 계산한 뒤 절대 누적과 100% 누적 중 질문에 맞는 도표를 선택하게 한다.

영역 차트라면 시간 정렬, 보간 방식, 결측 처리와 범주 순서를 명시한다. 설명문은 아래 구간의 정확한 변화, 전체 합계, 구성비를 분리해 쓰게 한다. 실제 추적 자료가 없으면 자연스러운 지연 수치를 생성하지 않고 빈 표·검산식·SVG 사양만 반환하게 한다.

생각그림 8 · 추적 자료에서 누적 차트까지의 검산 흐름
긴 형식 원자료
중복·결측 확인
시점별 합계 검산
절대·100% 선택
순서·범례·한계 기록
도표를 그리기 전에 합계가 원자료의 정의와 일치하는지 검산합니다.

잘못된 누적 차트는 총량과 비율을 바꾸어 말한다

수정 전 보고서는 100% 누적 막대로 목요일의 총시간 감소를 설명했다. 범주 순서를 매일 크기순으로 바꾸어 같은 색이 위아래로 흔들렸고, 생성 재시도를 생성과 재시도 두 구간에 중복했다. 보간된 영역을 실제 초 단위 측정처럼 설명하고 범례와 총량을 생략했다.

수정 후 절대 누적 막대에 총시간 라벨을 넣고 100% 도표는 별도 패널로 분리했다. 고정된 운영 단계 순서와 같은 색을 유지하고 중복 범주를 정리했다. 영역 차트에는 실제 측정 시점과 결측을 표시하고, 병렬 단계는 임계경로 도표로 보완했다. 결론은 총량 변화와 구성 변화로 나누었다.

생각그림 9 · 누적 차트의 수정 전후
수정 전100%로 총량 주장
수정 전범주 순서·중복 변동
수정 후절대값+총량 라벨
수정 후비율·병렬 보완
절대량과 구성비를 분리하면 같은 색 띠가 답하는 질문이 분명해집니다.

복사해서 쓸 수 있는 LLM 요청문

아래 요청문은 교육용 예시다. 원문을 함께 제공하고, 모델이 빈칸을 추측하지 않도록 금지 조건을 넣었다. 결과를 받으면 원문 문장과 노드·선의 대응을 사람이 다시 확인한다.

다음 단계별 시간 자료로 누적 차트를 검산해 줘.
1. 시점·단계·값·단위·요청 수·측정법을 확인한다.
2. 단계 범주가 서로 배타적인지, 병렬 시간이 섞였는지 검사한다.
3. 시점별 부분합과 독립 벽시계 총량의 차이를 계산한다.
4. 총량 비교에는 절대 누적, 구성비 비교에는 100% 누적을 제안한다.
5. 영역 차트는 시간 정렬·보간·결측 처리 규칙을 적는다.
6. 범주 순서와 색을 모든 시점에서 고정한다.
7. 가운데 구간의 정밀 비교에는 별도 선·점 그래프를 제안한다.
8. 실제 추적값이 없으면 수치를 만들지 않는다.

[추적 자료] …
생각그림 10 · 요청문에서 결과와 검토까지
원문 붙이기
도표 목적 명시
추정 금지
문장별 대조
요청문은 도표를 자동으로 진실로 만들지 않습니다. 원문과 결과를 왕복해 확인하는 절차가 핵심입니다.

직접 실습하고 결과를 읽기

이 실습은 브라우저 안에 준비한 교육용 자료만 사용한다. 외부 LLM을 호출하거나 실제 기관 자료를 조회하지 않는다. 입력을 바꾸어 결과가 어떻게 달라지는지 보고, 설명과 맞지 않는 결과가 나오면 어떤 정보가 빠졌는지 적어 본다.

절대값과 100% 구성비가 답하는 질문을 비교하세요.

자료와 출처

아래 자료는 이번 글의 정의와 표기법을 확인하는 데 사용했다. 생각그림과 사례 문장은 원자료를 복제하지 않고 이 글의 교육 목적에 맞게 새로 구성했다.