00:00:00AI의 발전과 출시되는 각각의 새로운 모델의 성능 향상으로 인해,
00:00:04우리가 코드를 작성하는 방식은 완전히 변화되었습니다.
00:00:07이제 ClodCode,
00:00:08Cursor,
00:00:09Antigravity 등 코딩에 특화된 많은 도구들이 있으며,
00:00:12각각 고유한 기능을 가지고 있습니다.
00:00:14하지만 좋은 모델만으로 여러분이 생산하는 코드의 품질이 결정되지는 않습니다.
00:00:18도구를 어떻게 사용하고 컨텍스트를 어떻게 관리하는지가 그만큼 중요합니다.
00:00:22이러한 모든 도구들은 컨텍스트 엔지니어링을 위한 고유한 메커니즘을 가지고 있지만,
00:00:25Cursor는 새로운 접근법을 위해 대대적인 변화를 주었고,
00:00:28이를 앱 자체에 기본적으로 구축했습니다.
00:00:29그들의 글을 읽으면서, 이 원칙들이 정말로 강력하다는 것을 깨달았습니다.
00:00:33오늘 이야기할 내용이 많은데,
00:00:35이러한 아이디어들은 애플리케이션을 구축하는 데 사용하는 모든 플랫폼에 폭넓게 적용될 수 있기 때문입니다.
00:00:40AI 에이전트와 작업할 때 컨텍스트 관리는 항상 중요했습니다.
00:00:43왜냐하면 좋은 컨텍스트 관리가 출력 품질을 결정하기 때문입니다..
00:00:47우리는 이전 영상에서 컨텍스트 관리가 얼마나 중요한지에 대해 이야기했고,
00:00:50이를 위한 워크플로우에 대해서도 논의했습니다.
00:00:53Cursor는 컨텍스트 관리 기능을 제품에 직접 구현했고, 이에 대한 글을 발표했습니다.
00:00:58이러한 원칙들은 모델에서 좋은 결과를 얻으려면 컨텍스트 윈도우에 가능한 한 적은 세부 정보를 제공하는 것이 더 낫다는 그들의 관찰에 기반합니다.
00:01:06모델이 한 번에 받는 정보가 적을수록,
00:01:08한 번에 처리해야 할 데이터가 적어지고,
00:01:10이는 혼란을 줄이고 관련 정보만 포함되기 때문에 지금 수행해야 할 작업에 더 집중할 수 있다는 의미입니다.
00:01:17이러한 접근법을 그들은 동적 컨텍스트 발견이라고 부릅니다.
00:01:20이 아이디어는 구조화된 노트 작성입니다.
00:01:22즉,
00:01:22지금 당장 필요하지 않은 정보는 컨텍스트 윈도우에 있어서는 안 되며,
00:01:26잠재적으로 혼란스럽거나 모순된 세부 정보를 제외하면 에이전트의 응답 품질이 크게 향상됩니다.
00:01:32Cursor의 최신 릴리스는 곧 사용자들에게 출시될 다섯 가지 동적 컨텍스트 관리 방법을 추가합니다.
00:01:37Cursor가 이것을 제품 업데이트로 구현하고 있지만,
00:01:40이러한 원칙들은 모든 AI 에이전트에 광범위하게 적용 가능합니다.
00:01:44Cursor가 언급한 첫 번째 업데이트는 긴 도구 응답은 파일로 저장되어야 한다는 것입니다.
00:01:48MCP는 종종 컨텍스트 윈도우에 남아있는 큰 응답을 반환합니다.
00:01:52응답의 모든 정보가 항상 필요한 것은 아닙니다.
00:01:55Cursor는 대부분의 코딩 도구의 일반적인 접근 방식이 긴 MCP 응답을 잘라내는 것이며,
00:02:01이는 데이터 손실이나 컨텍스트에 필요할 수 있는 중요한 정보가 제거되는 것으로 이어진다고 언급했습니다.
00:02:07Claude의 Chrome 확장 프로그램은 매우 도구 중심적인 확장 프로그램이며,
00:02:10컨텍스트 윈도우에 방대한 덩어리를 로드하기 때문에 몇 가지 프롬프트만으로도 컨텍스트를 채울 수 있습니다.
00:02:15그래서 저는 Claude.md 파일에 50줄 이상의 MCP 도구 응답은 터미널에서 echo 명령을 실행하여 .context 폴더 내의 MCP 폴더에 저장해야 한다는 지침을 추가했습니다.
00:02:27랜딩 페이지의 UI를 분석하기 위해 Chrome 확장 프로그램을 실행했을 때,
00:02:31Claude가 컨텍스트 윈도우를 크게 부풀리는 ReadPage와 같은 도구를 만날 때마다,
00:02:35MCP 응답을 파일에 저장하여 추가 읽기를 위해 사용했고,
00:02:38이를 사용하여 전체 페이지를 분석하고 보고서를 제공했습니다.
00:02:42이 해결 방법은 Claude가 파일에서 응답을 필요한 만큼 여러 번 분석할 수 있게 함으로써 도구 응답 분석의 정확도를 향상시켰고,
00:02:49반복적인 도구 호출의 필요성을 제거했습니다.
00:02:52이전 MCP 호출의 데이터가 필요할 때,
00:02:54Claude는 도구 호출을 하는 대신 .context 폴더에서 직접 읽을 수 있어 상당한 시간을 절약합니다.
00:03:00다음 변경 사항으로 넘어가기 전에, 우리의 스폰서인 Zen Rose의 이야기를 들어봅시다.
00:03:04AI 제품, 자동화 또는 데이터 중심 시스템을 구축하고 있다면, 한 가지는 이미 알고 있을 것입니다.
00:03:09모든 것은 신뢰할 수 있는 웹 데이터에서 시작됩니다.
00:03:11하지만 대규모로 깨끗하고 구조화된 데이터를 얻는 것은 들리는 것보다 어렵습니다.
00:03:15바로 여기서 Zen Rose가 스택에 완벽하게 들어맞습니다..
00:03:18Zen Rose는 복잡한 웹사이트에서 데이터 추출을 처리하면서 자동으로 안티봇 우회를 관리하므로,
00:03:24여러분은 실제로 중요한 데이터 사용에 집중할 수 있습니다.
00:03:27복잡한 출력을 처리하는 대신,
00:03:29Zen Rose는 JSON이나 Markdown과 같은 구조화된 결과를 제공하여 파이프라인에 바로 연결할 수 있습니다.
00:03:35통합이 용이하고 비즈니스 중심적이라서,
00:03:37인프라를 일일이 관리하고 싶지 않은 AI 스타트업,
00:03:40데이터 팀,
00:03:41자동화 개발자들에게 이상적입니다..
00:03:43리드 강화, AI 에이전트 구동, 리서치 자동화 등 어떤 작업이든 Zen Rose는 그냥 작동합니다.
00:03:47웹 데이터에 의존하는 작업이라면, Zen Rose는 당신의 기술 스택에 꼭 있어야 할 도구입니다..
00:03:52고정된 댓글의 링크를 클릭하고 오늘부터 개발을 시작하세요.
00:03:55컨텍스트 윈도우가 가득 찼을 때 요약 단계가 복잡하고 많은 정보를 잃게 된다는 것을 우리는 알고 있습니다.
00:04:01Cursor와 Claude Code를 포함한 대부분의 도구들은 요약 단계를 실행하고 요약을 시작점으로 하여 새로운 컨텍스트 윈도우로 세션을 시작합니다..
00:04:09압축을 반복할수록 요약은 당신에게 중요할 수 있지만 모델의 요약이 놓칠 수 있는 세부 사항들을 잊기 시작합니다.
00:04:16자동 압축에 대한 제어는 한계가 있으며,
00:04:19반복적인 압축을 여러 번 수행해야 한다면 중요한 정보의 손실로 이어집니다.
00:04:24Cursor의 해결책은 모든 이전 채팅 기록을 파일로 저장하여 에이전트가 나중에 참조할 수 있도록 하는 것입니다.
00:04:30매우 구체적인 프롬프트를 제공했는데 모델이 요약에서 정보를 찾을 수 없을 때,
00:04:34이전 대화 기록이 지식 베이스 역할을 합니다.
00:04:37모델은 그 대화 기록을 사용하여 솔루션을 생성하고, 요약에서 손실된 모든 것을 복구할 수 있습니다.
00:04:43Cursor의 구현이 배포되어 모두가 사용할 수 있을 때까지,
00:04:47저는 Claude Code로 이 기능을 구현해 보았습니다.
00:04:50Claude.md 파일 안에 지시사항을 추가하여 각 턴마다 채팅 기록을 업데이트하고 모든 주요 결정과 수행된 단계를 문서화하도록 했습니다.
00:04:58.context 폴더 안에 history 폴더를 사용했으며, 각 파일 이름은 세션을 반영하도록 했습니다.
00:05:03그래서 제가 어떤 작업을 수행하도록 요청하면,
00:05:06작업 실행 세션이 끝날 때 해당 히스토리 파일에 채팅 기록을 문서화하고 모든 것을 그 파일에 추가합니다.
00:05:12이런 방식으로 .context 폴더는 모든 세션과 수행된 모든 작업의 상세한 기록을 담게 됩니다.
00:05:18에이전트에게는 MCP가 야기하는 컨텍스트 문제를 관리하는 데 도움이 되는 스킬이 제공되었습니다.
00:05:23스킬의 전체 목적은 에이전트가 스크립트와 지시 파일을 통해 안내받음으로써 자체 기능을 더 잘 활용하고,
00:05:29점진적 공개를 통해 컨텍스트 비대화를 줄이도록 하는 것입니다.
00:05:33Anthropic이 이 아이디어를 처음 제시했는데,
00:05:36기본적으로 에이전트에게 특정 작업을 더 잘 수행하기 위해 발견하고 사용할 수 있는 일련의 지시사항,
00:05:41스크립트,
00:05:42리소스를 제공하는 것입니다.
00:05:43Anthropic은 기본적으로 이러한 에이전트 스킬을 오픈소스로 공개하여 다른 이들이 구현할 수 있는 표준을 설정했습니다.
00:05:50이후 Codex,
00:05:51Gemini 등이 에이전트 스킬을 구현하기 시작했고,
00:05:53마침내 Cursor가 같은 방식을 도입했습니다.
00:05:56Cursor의 스킬은 기본적으로 실행 파일과 스크립트를 하나의 스킬로 묶어 에이전트가 각각의 작업에 사용할 수 있도록 한 것입니다.
00:06:03정적 컨텍스트에는 스킬의 이름과 설명만 포함됩니다..
00:06:07에이전트들은 정적 컨텍스트 안에 들어오면 grep과 Cursor의 시맨틱 검색을 사용해 스스로 스킬을 가져올 수 있습니다.
00:06:13이것이 차별화 요소인데,
00:06:15Cursor의 시맨틱 검색은 grep 명령의 정규식 기반 패턴 매칭 대신,
00:06:19백그라운드에서 자체 임베딩 모델과 인덱싱 파이프라인을 사용하기 때문입니다.
00:06:23Claude의 스킬은 스크립트가 얼마나 많은 파일을 사용하든 상관없이 이름과 설명만 컨텍스트에 노출시켜 컨텍스트 비대화를 방지합니다.
00:06:30제 프로젝트에서는 5개의 스킬을 구성했는데,
00:06:33각각 전체의 약 0.2%에 불과한 아주 적은 토큰만 소비해서 작업 공간을 더 많이 확보할 수 있었습니다.
00:06:38또 다른 차이점은 Claude의 스킬이 /commands를 통해서도 접근 가능하다는 것인데,
00:06:44필요할 때마다 수동으로 실행할 수 있어서 스킬이 제대로 온디맨드 방식으로 로드되지 않는다는 사람들의 불만을 해결합니다.
00:06:50MCP는 많은 도구들이 모두 컨텍스트 윈도우에 노출되어 불필요하게 컨텍스트 윈도우를 비대하게 만듭니다.
00:06:56Cursor는 이 문제를 직접 다루면서 컨텍스트 비대화를 해결할 책임은 MCP 서버가 아니라 코딩 에이전트에게 있다고 강조했습니다.
00:07:03이에 대한 해결책은 폴더에 도구 설명을 동기화하는 동적 컨텍스트 디스커버리였습니다.
00:07:08Cursor의 아이디어는 연결된 각 MCP의 이름을 딴 별도 폴더에 모든 MCP를 배치하고,
00:07:13각 폴더 내에 모든 도구를 나열하는 것입니다.
00:07:15이렇게 하면 에이전트는 도구 이름만 받고, 도구가 필요할 때마다 폴더를 통해 찾아봅니다.
00:07:20테스트 결과,
00:07:21MCP 도구의 동적 디스커버리가 사용량을 46.9% 감소시킨다는 것을 발견했는데,
00:07:25장시간 실행되는 시스템에서 작업할 때는 엄청난 차이를 만듭니다.
00:07:29이 구현은 MCP 서버가 실수로 연결이 끊기거나 재인증이 필요한 경우에도 도움이 됩니다.
00:07:34일반적으로는 시스템이 그냥 그 도구들을 잊어버리지만,
00:07:37이제는 에이전트가 실제로 사용자에게 재인증이 필요하다고 알릴 수 있습니다.
00:07:41Claude에도 이 문제를 해결하기 위해 특별히 설계된 고급 검색 도구가 있는데,
00:07:45특정 플래그 세트를 사용해 Claude에게 로드 여부를 알려줍니다.
00:07:49Cursor의 동적 컨텍스트 디스커버리 아이디어를 그대로 구현했지만,
00:07:53이것은 개발자 플랫폼에 한정되어 있고 API로 개발하는 사람들만 사용할 수 있습니다.
00:07:58Claude Code에서 MCP가 사용되는 방식은 Anthropic에 의해 내장되어 있어서 수정할 수 없습니다.
00:08:04Claude Code에서 이것을 구현할 방법을 찾던 중에 숨겨진 플래그를 발견했습니다.
00:08:09이 플래그를 설정하지 않으면 제가 연결한 모든 MCP 도구가 Claude Code의 컨텍스트에 노출되었습니다.
00:08:15enable experimental MCP CLI 플래그를 설정하자 모든 도구가 컨텍스트 윈도우에서 제거되어 이전에 MCP 도구가 차지했던 공간이 확보되었습니다.
00:08:24하지만 이 CLI가 활성화되면 MCP의 연결이 끊어진다는 의미는 아닙니다.
00:08:28유일한 차이점은 컨텍스트 윈도우에 미리 노출되지 않는다는 것입니다.
00:08:31모든 스키마를 컨텍스트에 넣는 대신,
00:08:33Claude는 이제 MCP CLI라는 중간 bash 레이어를 사용하는데,
00:08:37이것이 모든 MCP 관련 작업을 처리합니다.
00:08:40Claude는 이 중간 레이어를 사용해 도구를 검색하고, 정보를 얻고, 실행합니다.
00:08:44MCP 도구 호출이 필요한 작업을 Claude에게 요청하면 일반적인 방법 대신 MCP CLI를 통해 MCP를 사용하고 요구된 작업을 수행합니다.
00:08:52이 도구를 사용함으로써 Claude는 단지 이 중간 레이어를 통해 모든 작업을 평소처럼 실행합니다.
00:08:58Cursor에서는 제한된 접근 권한 때문에 터미널 오류를 보고하기가 어렵습니다.
00:09:02터미널에 오류가 표시되면 채팅에 추가한 다음 수정해야 했습니다.
00:09:06이에 대한 Cursor의 해결책 역시 터미널 세션을 파일로 이동하는 것입니다.
00:09:10따라서 질문을 하면 해당 히스토리 파일을 참조하고 grep을 사용해 관련 출력을 추출합니다..
00:09:20서버 로그는 보통 장시간 실행되고 에이전트에게 불필요한 정보가 많이 포함되어 있기 때문에,
00:09:25grep 작업을 사용하는 것이 더 효율적입니다.
00:09:28패턴 매칭이 가능하기 때문이죠.
00:09:30이 아이디어는 CLI 기반 코딩 에이전트에서 가져온 것인데,
00:09:33명령을 실행한 후 출력을 Claude Code 등이 기본적으로 하는 방식과 똑같이 컨텍스트에 주입합니다.
00:09:39Claude가 이를 지능적으로 처리하긴 하지만,
00:09:42Claude.md의 지시사항을 통해 더욱 세밀하게 관리할 수 있습니다.
00:09:46모든 터미널 로그를 .context 폴더 내부의 terminal 폴더에 있는 파일에 추가하도록 지시하는 것이죠.
00:09:52기본적으로 Claude가 npm 명령을 실행하면,
00:09:55출력 스트림과 입력 스트림을 모두 문서 파일에 기록하는 특수 명령을 실행합니다.
00:09:59여기서 2는 표준 에러 스트림을, 1은 표준 출력 스트림을 나타냅니다.
00:10:03이 로그들을 terminal 폴더에 타임스탬프와 함께 저장합니다.
00:10:07그런 다음 로그를 검색해야 할 때는 지정된 패턴으로 grep 명령을 사용하고 마지막 20줄을 불러와 핵심만 추출합니다..
00:10:15그래서 제가 개발 서버를 테스트할 때마다 이러한 명령들이 사용되었고,
00:10:19Claude.md 파일에 따라 터미널 실행 내역이 파일에 계속 기록되었습니다.
00:10:23서버를 실행한 후 Claude는 로그 파일을 참조하여 문제의 원인을 파악하고 저를 위해 문제를 해결했습니다..
00:10:29Claude Code에 대한 이 추가 기능이 당장의 작업에는 큰 영향을 미치지 않는 것처럼 보여 별것 아닌 것처럼 느껴질 수 있지만,
00:10:36앱의 작동 상황을 나중에 다시 참조하고 싶을 때 매우 유용합니다.
00:10:39제 앱을 다운시킨 서비스가 무엇인지 확인해야 했을 때처럼,
00:10:42테스트를 다시 실행하는 대신 Claude에게 테스트 로그를 참조하라고 지시하기만 하면 되었습니다.
00:10:47이미 본 에러를 재현하기 위해 2분짜리 테스트 스위트를 다시 돌릴 필요가 없었죠.
00:10:51이것으로 이번 영상을 마무리하겠습니다.
00:10:53채널을 후원하고 이런 영상을 계속 만들 수 있도록 돕고 싶으시다면, 아래의 슈퍼 땡스 버튼을 이용해 주세요.
00:10:59언제나처럼 시청해 주셔서 감사드리며, 다음 영상에서 뵙겠습니다..