분할 정복: 컨텍스트 압축의 알고리즘 원리
AI 실전편에서 배웠어요: 대화가 너무 길어 담을 수 없으면 AI가 Compaction을 합니다—옛 대화를 요약으로 누르는 거죠. 그때는 “이사 전에 잡동사니를 포장하는 것 같다”고 했어요. 이번 강의는 포장지를 벗깁니다: 이천 년 역사의 알고리즘 패턴, 바로 분할 정복. 지난 강의의 재귀는 “나누기”, 이번엔 나머지 반쪽—“나누고 다시 합치기”입니다.
아래는 당신과 AI가 인테리어 방안을 논의한 전체 대화예요. 메시지 12개, 약 3600 token으로 컨텍스트 윈도우가 곧 터질 지경입니다. 「압축 시작」을 누르고 세 막을 주목하세요: 먼저 나누기(세 구간), 다음 처리(구간마다 요약 하나), 마지막 합치기(요약 셋을 하나로)—위쪽 token 카운터가 얼마나 줄었는지 알려 줍니다.
방금 세 막에는 정식 이름이 있어요: 분할 정복(Divide and Conquer). 교과서에서 가장 유명한 얼굴은 병합 정렬—숫자 열을 작게 자르고, 각각 정렬한 뒤 둘씩 합칩니다. 병합 정렬은 숫자를, Compaction은 말을 누르지만 뼈대는 똑같아요:
✂️ 작게 자르기
큰 문제를 바로 못 풀면 작은 덩어리로 자릅니다. 병합 정렬: 숫자 열을 반으로 잘라 하나만 남을 때까지. Compaction: 긴 대화를 주제나 턴으로 몇 구간 나눕니다.
🔧 덩어리마다 해결
작으면 쉽습니다. 병합 정렬: 짧은 구간을 각각 정렬. Compaction: 구간마다 요약—짧아서 AI가 한 번에 읽고 정확히 정리해요. 이 단계는 병렬로도 돌려 더 빨라집니다.
🧩 결과 합치기
작은 성과를 완전한 답으로 조립합니다. 병합 정렬: 정렬된 두 구간을 하나로. Compaction: 요약 몇 개를 총요약 하나로. 구간이 아직 많다면? 재귀로 한 바퀴 더—지난 강의 맛이 돌아옵니다.
⚠️ 요약은 손실 압축—디테일이 사라져요
이 강의가 전하고 싶은 것
- 분할 정복 = 작게 나누고, 각각 처리하고, 다시 합치기: 못 푸는 큰 문제가 분명히 풀리는 작은 문제 더미가 됩니다
- Compaction은 AI 속 분할 정복의 진짜 모습: 구간 나누기 → 구간별 요약 → 합치기—병합 정렬과 같은 뼈대
- 최근 대화가 가장 소중해요: 실제 Agent는 옛것만 누르고 새것은 남깁니다—충실도와 공간은 늘 맞바꿉니다
- 압축은 손실이에요: “8만 이내” “빨강 금지” 같은 핵심 사실은 따로 저장—요약에 맡기지 마세요
- 구간이 아직 많으면 재귀로 한 번 더: 지난 강의 재귀 + 이번 합치기 = 완전한 분할 정복