Skip to main content

좋은 AI 시스템을 만든다는 말은 종종 오해를 부릅니다. 더 큰 모델을 쓰고, 더 긴 컨텍스트를 넣고, 더 많은 문서를 검색하고, 더 복잡한 에이전트 루프를 돌리면 당연히 더 좋아질 것처럼 들리기 때문입니다. 하지만 실전에서는 꼭 그렇지 않습니다.

오히려 많은 팀이 비슷한 함정에 빠집니다. 성능을 올리겠다고 문서를 더 넣었더니 답변이 느려지고 산만해집니다. 속도를 올리겠다고 작은 모델로 바꿨더니 중요한 예외를 놓칩니다. 비용을 줄이겠다고 요약을 과하게 했더니 결정적인 문장 하나가 사라져서 전체 작업이 틀어집니다.

이 장의 핵심은 단순합니다. 좋은 시스템은 가장 비싼 시스템이 아니라, 목적에 맞게 균형 잡힌 시스템이라는 점입니다. 사용자가 지금 원하는 것이 즉시성인지, 깊이 있는 추론인지, 반복 업무의 처리량인지, 고위험 판단의 정확성인지에 따라 최적의 설계는 달라집니다.

비용 속도 정확도의 균형

세 가지 숫자는 항상 함께 움직인다

LLM 시스템에서는 비용, 속도, 정확도를 각각 따로 최적화하기 어렵습니다. 전용 추론 환경에서는 처리량, 지연 시간, 비용이 서로 밀고 당기는 관계를 이루고, 한쪽을 세게 당기면 다른 쪽이 불리해지는 경우가 많습니다.1 API를 쓰는 팀도 본질은 비슷합니다. 더 긴 입력은 더 많은 비용과 더 긴 대기 시간을 만들고, 더 강한 모델은 대개 더 비싸고 느리지만 어려운 작업에서는 품질을 끌어올립니다.2

이 관계를 아주 현실적으로 바꾸어 말하면 이렇습니다.

  • 더 많이 넣으면 보통 더 비싸고 느려진다.

  • 더 빨리 내보내려면 보통 덜 생각하게 해야 한다.

  • 더 정확하게 하려면 보통 더 좋은 모델, 더 좋은 컨텍스트, 더 많은 검증이 필요하다.

문제는 세 가지 중 하나만 보면 시스템을 그르치기 쉽다는 데 있습니다. 비용만 보면 사용자가 떠나고, 속도만 보면 답이 가벼워지고, 정확도만 보면 유지비가 감당되지 않습니다. 그래서 컨텍스트 엔지니어는 늘 이렇게 물어야 합니다. 무엇을 얼마나 잘해야 하는가가 아니라, 어떤 상황에서 무엇을 우선해야 하는가라고 말입니다.

먼저 계산해야 할 것은 요청당 경제성이다

모델 가격표만 보고 시스템 비용을 판단하면 거의 항상 틀립니다. 실제 비용은 모델 사용료만이 아니라, 입력 토큰 수, 출력 토큰 수, 검색 호출, 도구 호출, 재시도, 실패 후 재실행까지 모두 합쳐서 만들어집니다.24

가장 먼저 잡아야 할 식은 거창하지 않습니다.

요청당 총비용 = 입력 비용 + 출력 비용 + 검색·도구 비용 + 재시도 비용

여기에 운영 관점에서는 한 줄이 더 붙습니다.

사용자당 총비용 = 요청당 총비용 × 사용자당 요청 수

이 계산이 중요한 이유는, AI 제품의 비용이 보통 "한 번의 호출"이 아니라 "한 번의 업무 완료"에서 폭발하기 때문입니다. 특히 에이전트는 한 작업을 끝내기 위해 10번, 20번, 많게는 수십 번 모델을 부를 수 있습니다. 호출 하나는 싸 보여도 작업 하나는 비쌀 수 있습니다.3

속도도 비슷합니다. 사용자가 느끼는 지연은 단순히 모델이 답변을 완료하는 시간만이 아닙니다. 첫 토큰이 나오기까지의 시간, 검색이나 도구 호출의 왕복 시간, 최종 출력 길이까지 모두 더해진 결과입니다.24 그래서 시스템을 개선할 때는 "응답이 느리다"를 한 문장으로 보지 말고, 다음처럼 쪼개서 봐야 합니다.

첫째, 첫 응답이 늦은가. 둘째, 중간에 도구 왕복이 많은가. 셋째, 답이 너무 길어서 끝까지 오래 걸리는가. 원인이 다르면 처방도 달라집니다.

긴 컨텍스트는 공짜가 아니다

실무에서 가장 흔한 낭비는 "일단 다 넣자"는 습관입니다. 긴 시스템 프롬프트, 길어진 대화 기록, 통째로 붙인 문서, 이전 단계의 장황한 도구 결과가 계속 쌓입니다. 이렇게 되면 모델은 필요한 정보보다 불필요한 정보를 더 오래 바라보게 됩니다.

실제로 많은 API 호출에서 입력 토큰의 큰 비율이 모델에 필요하지 않은 맥락으로 낭비된다는 지적이 있습니다. 오래된 대화 기록, 반복되는 지시문, 필요한 함수 몇 개만 있으면 되는데 파일 전체를 붙이는 식의 입력이 대표적입니다.3 이런 낭비는 두 번 손해입니다. 비용 청구서에 한 번 찍히고, 긴 입력을 처리하느라 지연 시간에 또 한 번 찍힙니다.3

그래서 긴 컨텍스트를 설계할 때는 "넣을 수 있는가"보다 "지금 꼭 봐야 하는가"를 먼저 따져야 합니다. 예를 들어 고객지원 챗봇이 환불 정책을 답할 때, 지난 20턴의 잡담까지 매번 넣을 필요는 없습니다. 코딩 에이전트가 버그 하나를 고칠 때도 저장소 전체를 통째로 넣기보다 관련 파일, 최근 에러 로그, 테스트 실패 요약만 주는 편이 더 낫습니다.

긴 컨텍스트가 정확도를 높이는 경우는 분명 있습니다. 하지만 그것은 더 많은 정보가 있어서가 아니라, 더 적절한 정보가 있어서입니다. 이 차이를 놓치면 시스템은 비싸고 둔해집니다.

검색 범위가 넓을수록 항상 더 정확해지는 것은 아니다

RAG에서도 비슷한 착각이 생깁니다. top-k를 늘리고, 더 많은 문서를 긁어오고, 관련 있어 보이는 문단을 잔뜩 넣으면 답이 좋아질 것 같지만, 일정 지점을 지나면 오히려 노이즈가 늘어납니다.4

검색 범위를 넓히면 얻는 것도 있습니다. 놓칠 뻔한 근거를 잡아올 가능성이 커집니다. 하지만 동시에 세 가지 문제가 따라옵니다. 입력 토큰이 늘고, 검색 후 재정렬 비용이 늘고, 모델이 서로 비슷하지만 미묘하게 다른 조각들 사이에서 헷갈릴 가능성도 커집니다.

그래서 검색 설계는 "많이 가져오기"가 아니라 "잘 거르기"의 문제입니다. 큰 지식베이스를 다루고 자주 업데이트되는 환경이라면 일반적인 RAG가 잘 맞습니다. 반대로 데이터셋이 작고 비교적 고정돼 있으며, 모델이 문서 전체를 한 번에 보며 추론하는 편이 유리하다면 CAG 같은 접근이 더 빠르고 단순할 수 있습니다. 반복 질문이 많은 환경이라면 cRAG처럼 캐시를 곁들인 구조가 훨씬 경제적일 수 있습니다.5

여기서 중요한 교훈은 하나입니다. 검색은 정확도를 올리는 도구이지만, 검색 범위 자체가 정확도를 보장하지는 않는다는 것입니다. 필요한 문서를 더 많이 찾는 것과, 필요 없는 문서를 덜 넣는 것은 같은 만큼 중요합니다.

캐싱은 비용을 아끼는 기능이 아니라 설계 원칙이다

많은 팀이 캐시를 "나중에 붙이는 성능 최적화" 정도로 생각합니다. 하지만 AI 시스템에서는 캐시가 처음부터 아키텍처의 일부여야 합니다. 이유는 간단합니다. 반복되는 일이 너무 많기 때문입니다.

사용자들은 생각보다 비슷한 질문을 반복합니다. 에이전트는 생각보다 같은 시스템 프롬프트와 같은 문서 머리말을 계속 다시 읽습니다. RAG는 생각보다 같은 검색 결과를 여러 번 가져옵니다. 이 반복을 그냥 두면, 시스템은 매번 처음 보는 일처럼 비싼 계산을 다시 하게 됩니다.37

캐시는 크게 세 층에서 생각할 수 있습니다.

  • 프롬프트 캐시는 공통 접두부를 다시 계산하지 않게 해 줍니다. 같은 시스템 지시문, 같은 긴 배경 문서, 같은 대화 앞부분이 반복되는 환경에서 특히 효과가 큽니다.3

  • 검색 캐시는 같은 질문군이 비슷한 문서를 계속 찾는 상황에서 유리합니다. 자주 묻는 사내 정책, 반복되는 제품 문의가 대표적입니다.57

  • 응답 캐시는 의미상 같은 질문에 이전 답을 재사용하는 방식입니다. FAQ, 고객지원, 내부 헬프데스크처럼 반복성이 높은 영역에서 강력합니다.57

연구와 구현 사례를 보면, RAG의 병목은 종종 "지식 주입으로 인한 긴 시퀀스"에 있습니다. 이때 검색된 지식의 중간 상태를 계층적으로 캐시하는 방식은 시간당 처리량과 첫 응답 속도를 유의미하게 개선할 수 있습니다.6

물론 캐시는 만능이 아닙니다. 정책이 바뀌었는데 옛 답을 캐시에서 꺼내 주면 속도는 빨라도 틀린 시스템이 됩니다. 그래서 캐시에는 항상 유효기간, 버전, 원문 변경 감지 같은 장치가 함께 있어야 합니다. 빠른데 낡은 시스템은 대개 느리지만 정확한 시스템보다 더 위험합니다.

요약과 압축은 싸게 만드는 기술이지만, 싸구려로 만들면 안 된다

컨텍스트를 줄이는 가장 쉬운 방법은 요약입니다. 긴 대화는 짧게 정리하고, 긴 검색 결과는 핵심만 뽑고, 장황한 로그는 에러 원인 중심으로 압축합니다. 이 방식은 비용과 지연을 줄이는 데 큰 효과가 있습니다.34

하지만 요약은 늘 작은 위험을 품고 있습니다. 사람도 회의 내용을 요약하다 보면 중요한 문장을 빼먹곤 합니다. 모델도 마찬가지입니다. 특히 파일 경로, 버전 번호, 에러 코드, 승인 여부, 날짜 같은 세부 정보는 "대충 요약"되는 순간 사라지기 쉽습니다.3

그래서 압축은 작업 종류에 따라 달리 써야 합니다.

설명형 작업에서는 서술 요약이 잘 맞습니다. 사용자가 전체 분위기와 핵심 결론만 알면 되는 경우가 많기 때문입니다. 반면 코딩, 운영, 정책 집행처럼 세부 식별자가 중요한 작업에서는 추출형 압축이 더 안전합니다. 다시 말해, 새로운 문장으로 바꾸기보다 중요한 줄을 그대로 남기고 나머지를 버리는 방식이 낫습니다.

이 차이를 무시하면 겉보기에는 토큰을 아꼈지만, 실제로는 에이전트가 같은 사실을 다시 찾고 다시 추론하느라 전체 작업이 더 길어질 수 있습니다.3

모델 선택은 실력 자랑이 아니라 배치 전략이다

모든 요청에 가장 강한 모델을 붙이는 방식은 데모에서는 보기 좋지만, 운영에서는 금방 무거워집니다. 분류, 추출, 간단한 변환, 짧은 요약 같은 일은 더 작고 빠른 모델로도 충분한 경우가 많습니다. 반대로 복잡한 추론, 긴 문맥 해석, 위험도가 높은 판단은 더 강한 모델이 값을 합니다.247

핵심은 모델을 하나 고르는 것이 아니라 일의 종류에 맞게 배치하는 것입니다. 예를 들어 티켓 분류와 우선순위 결정은 작은 모델이 맡고, 실제 고객 답변 초안 작성은 중간급 모델이 맡고, 법무나 환불 규정처럼 실수 비용이 큰 문장은 상위 모델이 맡게 할 수 있습니다.

이런 모델 라우팅은 비용 절감만을 위한 꼼수가 아닙니다. 속도 개선에도 직접 도움이 됩니다. 쉬운 요청을 작은 모델로 보내면 첫 토큰이 더 빨리 나오고, 큰 모델의 자리를 어려운 요청에 비워 둘 수 있기 때문입니다.27

실무적으로는 세 단계로 나누어 생각하면 쉽습니다.

  • 가벼운 작업: 분류, 추출, 포맷 변환, 간단한 사실 응답

  • 근거 중심 작업: 검색된 문서를 바탕으로 요약, 비교, 답변 작성

  • 고난도 작업: 다단계 추론, 복잡한 계획, 고위험 판단, 장문 생성

모델 선택을 잘하는 팀은 "가장 똑똑한 모델이 누구인가"보다 "이 요청에 필요한 최소한의 모델이 누구인가"를 먼저 묻습니다. 이 질문이 단가를 지키고, 동시에 전체 시스템을 더 민첩하게 만듭니다.

사용자는 실제 속도보다 체감 속도를 먼저 느낀다

속도를 설계할 때 놓치기 쉬운 것이 체감 지연입니다. 전체 응답 시간이 같아도, 첫 글자가 빨리 보이는 시스템은 훨씬 빠르게 느껴집니다. 그래서 긴 답변이나 여러 단계가 필요한 작업에서는 스트리밍이 큰 역할을 합니다.47

물론 스트리밍이 실제 계산량을 줄여 주는 것은 아닙니다. 하지만 사용자는 "시스템이 일하고 있다"는 감각을 받습니다. 대기 화면이 멍하니 멈춰 있는 것과, 답이 조금씩이라도 흘러나오는 것은 경험이 완전히 다릅니다.

다만 스트리밍으로 숨길 수 없는 지연도 있습니다. 검색, 도구 호출, 승인 대기처럼 첫 토큰이 나오기 전에 해야 하는 일이 너무 많으면 사용자는 여전히 느리다고 느낍니다. 이 경우에는 출력 방식을 바꾸는 것보다 도구 왕복을 줄이고, 병렬화하고, 공통 프리픽스를 캐시하는 것이 먼저입니다.34

빠른 경로와 깊은 경로를 나눠라

균형 잡힌 시스템은 하나의 정답 경로만 갖고 있지 않습니다. 보통은 빠른 경로와 깊은 경로를 함께 둡니다.

빠른 경로는 반복적이고 위험이 낮은 요청을 처리합니다. 캐시가 맞으면 바로 답하고, 작은 모델로 충분하면 즉시 응답합니다. 깊은 경로는 복잡하거나 위험이 큰 요청을 처리합니다. 더 넓게 검색하고, 더 강한 모델을 쓰고, 필요하면 사람 승인을 거칩니다.

예를 들면 이런 식입니다.

  • FAQ나 반복 문의는 의미 캐시를 먼저 확인하고, 캐시가 맞으면 즉시 반환한다.

  • 일반적인 문서 질의응답은 제한된 top-k 검색과 중간급 모델로 처리한다.

  • 규정 해석, 큰 금액이 걸린 업무, 자동 실행이 포함된 요청은 상위 모델과 추가 검증 단계를 사용한다.

이 구조의 장점은 명확합니다. 모든 요청을 가장 비싸게 처리하지 않아도 되고, 그렇다고 모든 요청을 가볍게 처리하지도 않아도 됩니다. 대부분의 요청은 싸고 빠르게, 중요한 요청만 깊고 신중하게 처리하는 것입니다.

어떤 순서로 최적화해야 하는가

실무에서는 종종 순서가 뒤집힙니다. 원래는 프롬프트와 컨텍스트 낭비를 줄여야 하는데, 먼저 더 싼 모델부터 찾습니다. 원래는 출력 길이를 제한해야 하는데, 먼저 인프라를 갈아엎습니다. 이 순서가 뒤집히면 힘은 많이 들고 효과는 작습니다.

대체로 효과가 큰 순서는 다음과 같습니다.34

첫째, 불필요한 입력을 줄입니다. 긴 히스토리, 중복 지시문, 과도한 검색 결과부터 깎습니다.

둘째, 반복을 캐시합니다. 프롬프트 접두부, 검색 결과, 자주 나오는 응답을 재사용합니다.

셋째, 출력 길이를 통제합니다. 필요 이상으로 길게 말하지 않게 합니다.

넷째, 모델을 라우팅합니다. 쉬운 일은 작은 모델로, 어려운 일은 강한 모델로 보냅니다.

다섯째, 그래도 부족할 때만 더 큰 모델, 더 긴 컨텍스트, 더 무거운 추론 경로를 씁니다.

이 순서가 좋은 이유는, 앞단의 최적화가 뒷단의 모든 비용을 함께 줄여 주기 때문입니다. 입력이 줄면 어떤 모델을 쓰든 비용과 지연이 모두 내려갑니다. 반대로 앞단이 비대하면, 어떤 고급 모델을 붙여도 계속 비싼 시스템으로 남습니다.

균형은 제품의 성격에 따라 달라진다

마지막으로 꼭 기억할 점이 있습니다. 비용, 속도, 정확도의 정답 비율은 제품마다 다릅니다.

실시간 고객 응대에서는 속도가 매우 중요합니다. 약간 덜 화려하더라도 빨리, 짧게, 근거 있게 답하는 편이 낫습니다. 반면 계약서 분석이나 의료·금융 같은 고위험 영역에서는 느려도 더 정확하고 더 보수적인 시스템이 필요합니다. 야간 배치 보고서처럼 사람이 기다리지 않는 작업은 속도보다 단가와 처리량이 더 중요할 수 있습니다.14

그러니 좋은 설계자는 "AI는 원래 느리다"거나 "무조건 최고 모델을 써야 한다" 같은 말을 하지 않습니다. 대신 이렇게 말합니다.

이 기능은 첫 답이 2초 안에 보여야 한다.

이 작업은 틀리면 안 되니 추가 검증이 필요하다.

이 경로는 하루 10만 건을 처리해야 하니 캐시와 라우팅이 먼저다.

이렇게 요구사항이 문장으로 분명해지는 순간, 비용·속도·정확도는 추상적인 철학이 아니라 설계 가능한 조건이 됩니다.

가장 좋은 시스템은 가장 비싼 시스템이 아니다

컨텍스트 엔지니어링은 단지 모델에 더 많은 정보를 넣는 기술이 아닙니다. 언제 줄이고, 언제 생략하고, 언제 재사용하고, 언제 더 강한 판단을 호출할지 정하는 기술입니다.

긴 컨텍스트는 때로 필요하지만 항상 이롭지는 않습니다. 넓은 검색은 때로 정답을 구하지만, 때로 노이즈를 데려옵니다. 캐시는 비용과 지연을 크게 줄여 주지만, 신선도 관리가 없으면 독이 됩니다. 요약은 토큰을 아끼지만, 세부를 잃으면 전체 작업을 망칩니다. 큰 모델은 강력하지만, 모든 요청에 필요한 것은 아닙니다.

결국 좋은 시스템은 화려한 시스템이 아니라 목적에 맞는 시스템입니다. 사용자가 무엇을 기다리는지, 어떤 실수를 견딜 수 없는지, 어디에 반복이 많은지, 어떤 단계에서 검증이 필요한지 이해하고 나면 비로소 균형이 보입니다.

그 균형을 설계할 수 있을 때, 우리는 AI를 "잘 말하게" 만드는 사람을 넘어, 제대로 일하게 만드는 사람이 됩니다.

참고

1The LLM Inference Trilemma: Throughput, Latency, Cost

2The Cost of Intelligence: Understanding LLM Pricing, Tokens, and Latency Tradeoffs

3LLM Inference Optimization: A Practical Guide to Cutting Cost and Latency

4Cost and Latency Tradeoffs for LLM Apps in 2026

5From RAG to CAG, Improving Inference Accuracy and Speed

6RAGCache: Efficient Knowledge Caching for Retrieval-Augmented Generation

75 Ways to Optimize Costs and Latency in LLM-Powered Applications

책 목록

컨텍스트 엔지니어링: 프롬프트를 넘어 AI가 제대로 일하게 만드는 정보 설계의 기술

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기