MemoryLake
모든 글로 돌아가기
News2026년 9월 21일·12 분 소요

관련 여부와 상관없이 모든 요청에 포함되는 Qwen Code 확장 프로그램 — 새로운 기여도 표시 행과 자체 가이드가 인정한 사실 (2026)

2026년 9월 20일, Qwen Code v0.24.2가 출시되었습니다. 변경 사항 목록의 주요 항목은 단순한 터미널 출력 수정처럼 보입니다. /context detail 상세 분석의 각 컨텍스트 파일이 이제 설치 디렉터리 아래의 익명 경로로 표시되는 대신, 해당 파일을 가져온 확장 프로그램의 이름으로 명명된다는 점입니다.

흥미로운 부분은 이 새로운 행이 아닙니다. 그 옆에 함께 추가된 내용입니다. 이번 변경으로 Qwen Code 자체 확장 프로그램 가이드가 개정되었는데, 개정판은 이전 가이드에는 없던 문장으로 시작합니다. "이곳은 지침을 배치하기에 가장 비용이 많이 드는 위치입니다."

이는 플랫폼 제공업체가 확장 프로그램 개발자들에게, 자사 문서가 그동안 권장해 온 방식이 사용자들에게 문서에 언급되지 않은 비용을 치르게 하고 있었다고 고백하는 것과 다름없습니다. Qwen Code 확장 프로그램을 두세 개 이상 설치했다면, 오늘날 보내는 모든 요청에 그 비용의 일부가 포함되어 있으며, 이번 릴리스 전까지는 상세 분석을 통해서도 그것이 누구의 비용인지 알 수 없었습니다.

Qwen Code가 실제로 배포한 내용

9월 20일에 두 개의 풀 리퀘스트(PR)가 병합되었고, 같은 날 오후 v0.24.2에 반영되어 배포되었습니다.

첫 번째 변경 사항은 /context detail 출력을 수정했습니다. 이제 활성화된 확장 프로그램에 속한 컨텍스트 파일은 Extension: Report Tools · QWEN.md와 같이 확장 프로그램 이름 뒤에 파일명이 붙는 형식으로 렌더링됩니다. 소유한 확장 프로그램이 없는 파일은 기존의 경로 표시를 그대로 유지합니다. 명시된 이유는 단호합니다. 이전에는 확장 프로그램의 컨텍스트 파일이 "설치 디렉터리 아래의 경로로 표시되어, 독자가 어떤 확장 프로그램이 비용을 지불하고 있는지 알 수 없었기 때문"입니다.

두 번째 변경 사항은 확장 프로그램이 지침을 전달하는 방식 자체를 바꾸었습니다. 이제 확장 프로그램은 경로 조건부 규칙(path-conditional rules)을 제공할 수 있습니다. 이는 개발자가 "파일별 안내를 항상 로드되는 컨텍스트 파일에서 분리"하여 "시작할 때부터 전송되는 대신 일치하는 파일에 액세스할 때 주입"되도록 하는 방법으로 설명됩니다. 이와 함께 확장 프로그램 가이드에는 비용에 관한 문장이 다음과 같이 온전히 실려 있습니다.

"확장 프로그램의 컨텍스트 파일은 해당 확장 프로그램이 활성화된 모든 세션의 모든 요청의 시스템 프롬프트에 병합됩니다. 현재 작업이 확장 프로그램과 관련이 있는지 여부와는 무관하며, 관련성 필터링이나 크기 제한도 없습니다."

이 문장의 근거가 되는 측정값은 풀 리퀘스트가 참조하는 추적 이슈에 나와 있습니다. 샘플링된 한 세션에서 "9개 확장 프로그램의 컨텍스트 파일이 총 9,989 토큰에 달했습니다." 반면, 동일한 세션의 스킬(skill) 목록은 84개의 스킬이 합쳐서 4,620 토큰에 불과했습니다. 스킬은 이름과 설명으로만 나열되고 호출될 때만 본문을 로드하기 때문입니다.

새로운 경고도 추가되었습니다. Qwen Code는 이제 항상 켜져 있는 누적 컨텍스트가 모델의 컨텍스트 창에서 도출된 임계값(최대 예상 10,000 토큰으로 제한)을 초과할 때 경고를 표시합니다. 풀 리퀘스트는 이 경고의 성격을 명확히 하고 있습니다. "이것은 경고일 뿐이며, 텍스트 잘림(truncation)이나 확장 프로그램별 할당량 제한이 아닙니다."

이것이 바꾸는 것과 바꾸지 않는 것

이 변경 자체가 자동으로 무언가를 줄여주지는 않습니다. 풀 리퀘스트에서도 이를 직접 언급하고 있습니다. "조건부 대안을 제공하는 것은 확장 프로그램 개발자가 실제로 적절한 안내를 그곳으로 이동할 때만 상주 콘텐츠를 줄여줍니다." 메커니즘은 새로워졌지만 마이그레이션은 자동이 아닙니다. 개발자의 표현을 빌리자면, "기존 컨텍스트 파일은 자동으로 마이그레이션되지 않습니다."

따라서 업데이트하는 당일에도 설치된 모든 확장 프로그램은 전날과 정확히 동일한 양의 컨텍스트를 차지합니다. 달라진 점은 이제 항목별 목록을 볼 수 있게 되었다는 것과, 확장 프로그램 개발자들에게 지침을 둘 더 좋은 위치가 생겼다는 것입니다.

의도보다는 동작 방식을 설명하는 다음 두 가지 세부 사항을 주의 깊게 읽어볼 필요가 있습니다.

확장 프로그램 규칙은 반드시 paths: 프런트매터(front-matter) 항목을 포함해야 합니다. 이것이 없는 규칙은 "경고와 함께 건너뛰어집니다." 자동으로 항상 켜져 있는 규칙이 되지도 않고, 소리 없이 사라지지도 않습니다. 규칙은 "확장 프로그램 소유자별로 라벨이 지정"되며, 이는 새로운 화면에 적용된 것과 동일한 기여도 표시 개념입니다.

또한 풀 리퀘스트에서 명확히 밝히고 있는 신뢰 처리의 비대칭성이 있습니다. "설치된 확장 프로그램 규칙은 기존 확장 프로그램-컨텍스트 경계와 마찬가지로 워크스페이스 신뢰(workspace trust)의 제한을 받지 않지만, 프로젝트 규칙은 신뢰 제한을 유지합니다." 내가 설치한 확장 프로그램은 이미 보증한 것으로 취급되지만, 방금 연 리포지토리에 있는 규칙 파일은 그렇지 않습니다. 이는 간과한 것이 아니라 의도된 경계이며, 확장 프로그램 가이드가 확장 프로그램에 무엇이 포함되어야 하는지에 대해 한 문단을 할애하여 설명하는 이유이기도 합니다.

사람들이 오해하기 쉬운 점

가장 먼저 퍼질 해석은 "Qwen Code에 확장 프로그램 비용을 보여주는 명령어가 추가되었다"는 것입니다. 이는 사실이지만 그리 유용하지는 않은 정보입니다. 해당 명령어는 이미 존재했기 때문입니다. /context detail은 한동안 메모리 파일을 한 행에 하나씩 나열해 왔습니다. 단지 그 행이 어떤 확장 프로그램에 속해 있는지 알려주지 못했을 뿐입니다.

두 번째 해석은 더 해롭습니다. 이번 릴리스로 확장 프로그램이 더 가벼워졌다는 오해입니다. 그렇지 않습니다. 조건부 규칙 경로는 확장 프로그램 개발자가 사용할 수 있는 옵션일 뿐이며, 개발자가 안내를 그곳으로 옮기기 전까지는 기존 파일이 계속해서 병합됩니다. 확장 프로그램을 비활성화하는 것 외에는 본인의 프로젝트에서 할 수 있는 조치로 이를 바꿀 수 없습니다.

세 번째 오해는 한 문단을 할애할 가치가 있습니다. 항상 켜져 있는 지침이 문제이므로 모든 것을 조건부로 만들어야 한다고 결론짓기 쉽습니다. 하지만 가이드는 그렇게 말하지 않습니다. 가이드는 "컨텍스트 파일에는 항상 참인 몇 가지 사실(확장 프로그램의 정체성, 어휘, 강력한 제약 조건 등)만 유지하고, 시나리오별 안내는 스킬에 배치하라"고 조언합니다. 어떤 사실들은 실제로 항상 참입니다. 문제는 항상 켜져 있는 컨텍스트가 존재한다는 사실 자체가 아니라, 시나리오별 안내가 마치 항상 참인 사실인 것처럼 등록되었고 시스템의 그 누구도 이를 알려주지 않았다는 점입니다.

이 차이는 긴 컨텍스트 창이 메모리와 같지 않은 이유의 배경에 있는 논리와 동일합니다. 창이 커지면 더 많은 것을 담을 수 있을 뿐, 그곳에 담길 자격이 있는지가 달라지지는 않습니다.

해결책: 항목별 목록을 읽고, 항상 참인 사실이 무엇인지 결정하기

개발자를 대신해 확장 프로그램의 컨텍스트 파일을 마이그레이션할 수는 없습니다. 하지만 내가 무엇을 짊어지고 있는지 파악하고, 내 파일 중 무엇을 항상 켜져 있는 레이어에 남겨둘지 결정한 뒤 나머지를 옮길 수는 있습니다.

Step 1: 변경하기 전에 항목별 목록 확인하기

실제로 작업 중인 프로젝트에서 세션을 열고 한 차례 대화를 진행한 뒤, 상세 컨텍스트 분석을 실행합니다. 특히 메모리 파일(memory-files) 섹션을 읽어보세요. v0.24.2 이후에는 각 확장 프로그램 소유 파일에 확장 프로그램 이름이 표시되므로, 경로 목록 대신 소유자 목록을 얻을 수 있습니다.

이 목록을 도구 외부의 다른 곳에 각 이름 옆에 파일 크기와 함께 적어두세요. 나중에 비교해 볼 것이며, 분석 결과 자체는 세션에 따라 변하는 실시간 데이터이기 때문입니다.

이 단계에서 사람들은 보통 두 가지 사실에 놀라곤 합니다. 첫째는 분포가 불균등하다는 점입니다. 샘플링된 세션에서는 단 두 개의 확장 프로그램이 전체 확장 프로그램 용량의 약 3분의 1을 차지했습니다. 둘째는 가장 많은 용량을 차지하는 확장 프로그램이 가장 자주 사용되는 확장 프로그램인 경우는 드물다는 점입니다.

Step 2: 항상 참인 사실과 시나리오별 안내 분리하기

이제 본인의 행들을 살펴보세요. 프로젝트 자체의 지침 파일과 거기서 참조하는 모든 항목이 해당됩니다. 각 줄을 다음 두 가지 범주 중 하나로 분류하세요.

항상 참인 사실: 프로젝트의 이름과 목적, 빌드 및 테스트 명령어, 어떤 작업을 하든 적용되는 제약 조건, 도구가 잘못 이해하기 쉬운 어휘 등. 이들은 항상 켜져 있는 파일에 속하며, 대개 생각보다 분량이 적습니다.

특정 상황에서만 참인 사실: 결제 모듈 작업 방법, 마이그레이션 디렉터리 규칙, 릴리스 체크리스트 등. 이들은 시나리오별 안내입니다. Qwen Code가 권장하는 방식은 스킬(skill)을 사용하는 것입니다. 스킬은 이름과 설명으로 나열되고 호출될 때 본문을 로드하며, 파일 경로로 제한된 스킬은 "일치하는 파일을 터치하기 전에는 목록에 표시조차 되지 않습니다."

이 분류 작업은 실제 작업 내용에 따라 달라지므로 아무도 대신해 줄 수 없습니다. 하지만 이 작업은 지속적으로 효과를 발휘합니다. 이러한 분류가 바로 에이전트가 지침 파일을 실제로 읽게 만드는 비결이기 때문입니다. 진정으로 항상 참인 사실들로 구성된 짧은 파일이 긴 파일보다 훨씬 더 안정적으로 준수됩니다.

Step 3: 작성해 둔 목록과 비교하여 분석 다시 읽기

동일한 프로젝트에서 상세 분석을 다시 실행하고, Step 1에서 적어둔 목록과 한 줄씩 비교해 보세요. 두 가지를 확인해야 합니다. 내가 옮긴 줄들이 항상 켜져 있는 레이어에서 사라졌는지, 그리고 내가 손대지 않은 확장 프로그램 행들은 그대로 유지되고 있는지입니다.

누적 경고가 계속 표시된다면 어떤 소유자가 이를 유발하고 있는지 확인하세요. 이 목록은 확장 프로그램 개발자에게 전달할 가치가 있으며, 이제는 모호한 설명 대신 정확한 수치로 제시할 수 있습니다.

이 기록을 보관해 두세요. 설치된 확장 프로그램이 다음 업데이트에서 알림 없이 컨텍스트 파일을 변경할 수 있으며, 이를 알아차릴 수 있는 유일한 방법은 이전의 수치를 기록해 두는 것뿐입니다.

MemoryLake에서 설정하기

Step 2의 분류 작업을 거치면 오랫동안 유용한 자산이 만들어집니다. 여러 세션에 걸쳐 참인 짧은 사실들의 집합과, 특정 상황에서만 참인 더 긴 사실들의 집합입니다. MemoryLake는 첫 번째 집합을 보관하여, 이번 달에 어떤 도구를 사용하든 관계없이 유지되도록 돕는 공간입니다.

항목은 본인의 언어로 직접 작성합니다. Qwen Code 자체 메모리 폴더, 확장 프로그램 설치 디렉터리 또는 다른 제공업체의 저장소에서 데이터를 읽거나 쓰거나 삭제하지 않습니다.

Step 1: API 키 생성하기

로그인 후 대시보드에서 키를 생성합니다. 이 키는 에이전트가 내가 작성한 항목을 읽을 수 있도록 허용하며, 특정 에디터나 CLI가 아닌 워크스페이스 단위로 범위가 지정됩니다.

에이전트에서 사용할 새 키를 생성하고 복사하는 API 키 화면을 보여주는 MemoryLake 콘솔
에이전트에서 사용할 새 키를 생성하고 복사하는 API 키 화면을 보여주는 MemoryLake 콘솔

Step 2: 첫 번째 메모리 업로드하기

위의 Step 2에서 정리한 '항상 참인 사실' 목록으로 시작하세요. 프로젝트의 목적, 명령어, 어떤 작업을 하든 유지되어야 하는 제약 조건 등이 포함됩니다. 각 항목은 새로운 동료에게 설명하듯 한 번에 하나의 사실만 명확하게 작성하세요.

첫 번째 문서가 업로드되어 검색 가능한 메모리로 나열된 MemoryLake 워크스페이스
첫 번째 문서가 업로드되어 검색 가능한 메모리로 나열된 MemoryLake 워크스페이스

Step 3: AI 및 에이전트 연결하기

에이전트가 워크스페이스를 바라보도록 설정합니다. 이제 어디서 작업하든 동일한 짧은 사실 집합을 사용할 수 있으므로, 도구를 변경하더라도 사실을 잃어버리지 않고 프로젝트 지침 파일을 짧게 유지할 수 있습니다.

메모리 레이어에 연결할 수 있는 AI 클라이언트 및 에이전트 프레임워크를 나열한 MemoryLake 연동 화면
메모리 레이어에 연결할 수 있는 AI 클라이언트 및 에이전트 프레임워크를 나열한 MemoryLake 연동 화면

실제 업무에서 달라지는 점

실질적인 변화는 '비율'에서 '목록'으로의 전환입니다. 이번 릴리스 이전에는 "내 프롬프트에서 확장 프로그램이 차지하는 비중이 얼마나 되는가"에 대한 정직한 답변은 이름 없는 숫자에 불과했습니다. 이제는 직접 읽을 수 있는 소유자 목록이 제공되며, 내 파일과 별개로 조치를 취할 수 있는 대상이 명확해졌습니다.

이는 생각보다 중요한데, 두 그룹의 해결 방법이 다르기 때문입니다. 내가 작성한 항상 켜져 있는 콘텐츠는 오늘 당장 줄일 수 있습니다. 반면 확장 프로그램의 콘텐츠는 개발자가 옮겨야 하므로, 우리가 할 수 있는 가장 유용한 일은 개발자에게 정확히 어떤 파일이 얼마나 큰지 알려주는 것입니다.

또한 늘어나는 컨텍스트 비용을 바라보는 관점도 달라집니다. 컨텍스트 창을 거의 사용하지 않는 것처럼 보이는 세션이라도, 매 요청마다 큰 고정 접두사(prefix)를 전달하고 있을 수 있습니다. 접두사는 절대적인 값인 반면 창 사용량은 상대적인 비율이기 때문입니다. 컨텍스트 구성을 보지 않고 토큰 사용량만 모니터링해 온 팀들은 항목별 분석을 확인한 후에야 고정된 부분을 발견하곤 합니다. 그리고 비용 절감은 더 큰 창을 쓰는 것보다 매번 전송하던 것을 중단하는 데서 발생합니다.

한 가지 더 언급할 만한 결과는, 도구를 이동할 때 '항상 참인 사실' 집합이 가장 깔끔하게 이전된다는 점입니다. 시나리오별 안내는 대개 특정 도구의 필터링 메커니즘에 맞춘 어휘로 표현되기 때문에 도구를 바꿀 때 그대로 유지되기 어렵습니다. 이는 모델을 변경할 때 컨텍스트가 자동으로 따라올 것이라 가정하지 말고 의도적으로 이전해야 하는 이유와 같습니다.

항상 켜져 있는 레이어를 작게 유지하기 위한 모범 사례

확장 프로그램을 설치하기 전후로 분석을 실행하세요. 항목별 분석은 실행 비용이 저렴하며, 설치로 인해 무엇이 추가되었는지 보여주는 유일한 기록입니다. 이전 기록이 없다면 이후 기록은 아무것도 알려주지 못합니다.

항상 참인 목록은 도구가 재작성할 수 없는 곳에 기록하세요. 확장 프로그램 파일은 업데이트 시 변경됩니다. 본인의 파일은 편집할 때 변경됩니다. 두 곳 모두의 외부에서 기록을 유지해야 어느 쪽이 변경되었는지 파악할 수 있습니다.

동작하는 가장 좁은 범위의 전달 방식을 선택하세요. 파일 경로로 제한된 스킬은 일치하는 파일이 터치되기 전에는 나열되지 않습니다. 제한이 없는 스킬은 이름과 설명으로 나열됩니다. 컨텍스트 파일은 항상 전체가 전송됩니다. 이 목록의 아래로 내려갈수록 비용이 많이 들므로, 가장 아래 단계부터 시작하여 진정으로 매번 적용되어야 하는 경우에만 위 단계로 이동하세요.

기능 목록이 아니라 프롬프트에 상주시키는 용량을 기준으로 확장 프로그램을 평가하세요. 일주일에 한 번 유용한 작업을 수행하면서 긴 컨텍스트 파일을 차지하는 확장 프로그램은 그 사이의 모든 요청에서 비용을 지불하고 있는 셈입니다. 때로는 합리적인 거래일 수 있지만, 이는 의식적인 결정이어야 합니다.

개발자에게 특정 파일을 명시하여 요청하세요. 이제 행에 라벨이 지정되므로, 일반적인 우려를 설명하는 대신 확장 프로그램 이름과 크기를 명시하여 요청할 수 있습니다. 개발자에게는 안내를 조건부 규칙으로 이동할 수 있는 문서화된 경로가 있으므로, 정확한 리포트를 제공하는 것이 해당 경로를 사용하도록 유도하는 가장 좋은 방법입니다.

카탈로그 변경 후 다시 확인하세요. 확장 프로그램 카탈로그가 새로 고쳐질 때, 설치 및 활성화된 항목이 눈에 띄는 이벤트 없이 변경될 수 있습니다. 이는 원래 있어야 할 카탈로그에서 스킬이 조용히 누락되는 문제와 동일한 범주의 문제입니다.

결론

새로운 기여도 표시 행은 출력상의 작은 변화이지만, 알 수 있는 정보의 측면에서는 큰 변화입니다. 처음으로 "어떤 확장 프로그램이 내 프롬프트에 이것을 넣었는가"에 대한 답이 경로가 아닌 이름으로 제공되며, 비용이 많이 드는 방식을 권장했던 가이드가 이제 그 비용을 명시하고 있습니다.

이 중 어느 것도 스스로 용량을 줄여주지는 않습니다. 조건부 규칙 경로는 확장 프로그램 개발자가 이를 적용하는지에 달려 있고, 본인의 항상 켜져 있는 파일은 직접 분류하는지에 달려 있습니다. 이번 릴리스가 제공하는 것은 분석 데이터이며, 내가 기록해 둔 분석 데이터는 막연히 불평하는 청구서와 항목별로 따져볼 수 있는 청구서의 차이를 만듭니다.

분석부터 시작하여 본인의 줄들을 '항상 참인 것'과 '때때로 참인 것'으로 분류하고, 항상 참인 세트는 현재 도구보다 더 오래 유지될 수 있는 곳에 보관하세요. 호출할 수 있는 스킬은 메모리가 아니며, 모든 것을 하나로 묶어 처리하기 전에 이를 명확히 구분하는 것이 중요합니다. 전송하고 있다는 사실조차 잊고 있던 컨텍스트 파일 역시 메모리가 아닙니다.

자주 묻는 질문

v0.24.2를 사용하면 확장 프로그램 비용이 저렴해지나요?

아닙니다. 이번 릴리스는 상세 분석에 기여도 표시를 추가하고 확장 프로그램 개발자를 위한 조건부 규칙 경로를 제공할 뿐입니다. 풀 리퀘스트에서는 "기존 컨텍스트 파일은 자동으로 마이그레이션되지 않으며", 조건부 대안은 "확장 프로그램 개발자가 실제로 적절한 안내를 그곳으로 이동할 때만 상주 콘텐츠를 줄여준다"고 명시하고 있습니다.

새로운 행은 정확히 어떤 모습인가요?

활성화된 확장 프로그램이 소유한 컨텍스트 파일은 Extension: Report Tools · QWEN.md와 같이 확장 프로그램의 표시 이름 뒤에 파일 이름이 붙는 형식으로 렌더링됩니다. 소유한 확장 프로그램이 없는 행은 이전과 동일한 상대 경로를 유지합니다.

관련 없는 작업을 할 때도 확장 프로그램의 컨텍스트 파일이 전송되는 이유는 무엇인가요?

해당 레이어에는 관련성 필터링이 없기 때문입니다. 확장 프로그램 가이드에 따르면, 이 파일은 크기 제한 없이 "현재 작업이 확장 프로그램과 관련이 있는지 여부와 무관하게" 확장 프로그램이 활성화된 모든 세션의 모든 요청의 시스템 프롬프트에 병합됩니다.

확장 프로그램이 paths: 항목 없이 규칙을 제공하면 어떻게 되나요?

해당 규칙은 건너뛰어지며, 시작 시 경고에 누락 사실이 표시됩니다. 풀 리퀘스트에서는 paths:가 없는 확장 프로그램 규칙은 "경고와 함께 건너뛰어진다"고 명시하고 있으므로, 필터링되지 않은 규칙이 기본적으로 항상 켜져 있는 규칙이 되지는 않습니다.

새로운 누적 경고가 제한 수치 역할을 하나요?

아닙니다. 풀 리퀘스트에서는 임계값 동작을 설명한 뒤 "이것은 경고일 뿐이며, 텍스트 잘림이나 확장 프로그램별 할당량 제한이 아니다"라고 밝히고 있습니다. 경고가 발생해도 아무것도 삭제되지 않으며, 사용자에게 알림만 제공되고 결정은 사용자의 몫으로 남습니다.

확장 프로그램 규칙도 프로젝트 규칙과 동일한 워크스페이스 신뢰 검사를 받나요?

아닙니다. 그 차이점은 문서에 명시되어 있습니다. "설치된 확장 프로그램 규칙은 기존 확장 프로그램-컨텍스트 경계와 마찬가지로 워크스페이스 신뢰의 제한을 받지 않지만, 프로젝트 규칙은 신뢰 제한을 유지합니다." 확장 프로그램을 설치하는 행위 자체가 신뢰 결정으로 취급되는 반면, 리포지토리를 여는 행위는 그렇지 않기 때문입니다.