Tooling

VS Code 에이전트 — 실전 개발에서 쓸 수 있게 만드는 세 가지 축

VS Code 1.110이 도입한 컨텍스트 관리, 에이전트 제어, 확장성 기능이 AI 에이전트를 실무에 투입 가능하게 만든 방식을 분석한다.

11 min read
VS CodeAI AgentCopilot개발 도구생산성
VS Code 에이전트 — 실전 개발에서 쓸 수 있게 만드는 세 가지 축

AI 에이전트를 개발에 쓸 때 가장 큰 불만은 "내가 에이전트에 맞춰야 한다"는 것이다. 기존 워크플로우를 버리고 에이전트가 요구하는 방식으로 일해야 한다면, 아무리 성능이 좋아도 팀에 도입하기 어렵다. VS Code 팀이 1.110에서 집중한 것은 정반대다. 에이전트가 기존 워크플로우에 적응하게 만드는 것. 이를 위해 컨텍스트 관리, 에이전트 제어, 확장성이라는 세 가지 축을 설계했다.


컨텍스트 관리 — 에이전트의 기억력 문제를 해결한다

AI 에이전트의 근본적 한계는 컨텍스트 윈도우다. 대화가 길어지면 초반 맥락을 잊고, 큰 출력을 만나면 버퍼가 넘친다. VS Code는 세 가지 방식으로 이 문제에 대응한다.

[💡 잠깐! 이 용어는?] 컨텍스트 윈도우(Context Window): AI 모델이 한 번에 처리할 수 있는 텍스트의 최대 길이다. 이 창을 넘으면 이전 대화 내용이 잘려나간다. 비유하면 화이트보드의 크기와 같다 — 보드가 꽉 차면 오래된 내용을 지워야 새로 쓸 수 있다.

대용량 출력 스트리밍

빌드 로그나 테스트 결과가 수천 줄일 때, 전체를 컨텍스트에 밀어넣으면 순식간에 창이 가득 찬다. VS Code는 대용량 출력을 스트리밍 방식으로 처리한다. 에이전트가 출력의 관련 부분만 선택적으로 읽을 수 있어서, 10,000줄짜리 빌드 로그에서 에러 메시지 30줄만 뽑아 컨텍스트에 넣는 식이다.

영속 메모리(Persistent Memory)

세션 간에 유지되는 메모리 시스템이다. 프로젝트의 코딩 컨벤션, 자주 쓰는 패턴, 이전 세션에서 배운 맥락을 저장해둔다. 새 세션을 열어도 "이 프로젝트에서는 vitest를 쓰고, 테스트 파일은 __tests__/ 폴더에 넣는다"는 정보가 이미 로드되어 있다.

세션 압축(/compact)

대화 상태문제해결
짧은 대화없음
긴 대화 (컨텍스트 70%+)초반 맥락 유실 위험/compact 명령으로 요약
압축 후핵심 결정사항만 남음새 작업 공간 확보

/compact는 긴 대화 히스토리를 요약해서 핵심 맥락만 남긴다. 비유하면 회의록 전체를 보관하는 대신, 액션 아이템과 결정 사항만 정리한 요약본으로 교체하는 것이다. 컨텍스트 공간이 확보되면서 후속 작업의 정확도가 올라간다.


에이전트 제어 — 사람이 주도권을 쥔다

자율적으로 동작하는 에이전트에게 가장 필요한 건 정지 버튼이다. VS Code는 사후 통제가 아니라 실시간 개입을 가능하게 만들었다.

응답 중간 개입

에이전트가 잘못된 방향으로 코드를 작성하고 있을 때, 응답이 끝나기를 기다릴 필요가 없다. 진행 중인 응답에 방향 수정 메시지를 끼워넣을 수 있다. 에이전트가 useState로 상태를 관리하고 있는데 zustand를 쓰고 싶다면, 완성을 기다리지 않고 바로 "zustand로 바꿔"라고 지시할 수 있다.

세션 포크(/fork)

에이전트와 대화하다 보면 "이 방향도 시도해보고 싶은데, 지금 대화를 망치기는 싫다"는 순간이 온다. /fork는 현재 대화 시점에서 독립적인 브랜치를 만든다. Git 브랜치와 같은 개념이다. 원래 대화는 그대로 두고, 포크된 세션에서 실험적인 접근을 시도할 수 있다.

훅(Hooks) — 정책 강제

팀 단위로 에이전트를 쓸 때 가장 중요한 건 일관성이다. 훅을 설정하면 에이전트의 특정 행동에 자동으로 정책을 적용할 수 있다.

.vscode/settings.json
{
  "chat.agent.hooks": {
    "beforeSave": {
      "command": "npx eslint --fix ${file}",
      "description": "저장 전 린트 자동 수정"
    },
    "afterEdit": {
      "command": "npx prettier --write ${file}",
      "description": "편집 후 포맷팅"
    }
  }
}

에이전트가 파일을 저장하기 전에 린터를 돌리고, 편집 후에 포맷터를 적용하는 식이다. 개발자가 직접 하든 에이전트가 하든 같은 코드 품질 기준이 적용된다.

[💡 잠깐! 이 용어는?] 훅(Hook): 특정 이벤트가 발생했을 때 자동으로 실행되는 스크립트나 명령어다. Git의 pre-commit hook, CI/CD의 파이프라인 트리거 등과 같은 개념이다.


확장성 — 에이전트를 팀 도구로 만든다

에이전트가 실무에 정착하려면 팀별로 커스터마이징할 수 있어야 한다. VS Code는 세 가지 확장 메커니즘을 제공한다.

슬래시 커맨드로 재사용 가능한 스킬

반복적으로 사용하는 에이전트 워크플로우를 슬래시 커맨드로 패키징할 수 있다. 예를 들어 /review 커맨드를 만들면, 에이전트가 코드 리뷰 체크리스트를 자동으로 실행하고 결과를 요약한다.

확장 방식용도예시
슬래시 커맨드재사용 가능한 워크플로우/review, /test, /deploy
브라우저 통합UI 검증, 시각적 테스트에이전트가 브라우저를 열어 렌더링 확인
Copilot CLI터미널 명령어 생성자연어 → 셸 커맨드 변환

브라우저 기반 UI 검증

에이전트가 코드를 수정한 뒤 브라우저를 직접 열어서 결과를 확인할 수 있다. CSS를 수정하고 "방금 바꾼 스타일이 모바일에서도 잘 보이는지 확인해줘"라고 하면, 에이전트가 내장 브라우저에서 페이지를 열고 뷰포트를 조정해서 스크린샷을 찍어 보여준다.

Copilot CLI 통합

터미널에서도 에이전트 기능을 쓸 수 있다. "현재 브랜치에서 변경된 파일 중 테스트가 없는 것만 골라서 기본 테스트를 생성해줘" 같은 자연어 명령을 터미널에서 직접 실행할 수 있다.


핵심 — 에이전트가 워크플로우에 맞추는 것

기존 접근VS Code 접근
에이전트 전용 워크플로우 학습 필요기존 도구 체인에 에이전트가 끼어드는 구조
에이전트 실수는 사후에 발견실시간 개입과 방향 수정
세션 종료 시 맥락 소멸영속 메모리로 맥락 누적
개인 도구로만 사용훅과 커맨드로 팀 정책 강제

에이전트가 아무리 똑똑해도, 기존에 검증된 린팅 규칙, 테스트 파이프라인, 배포 프로세스를 무시한다면 실무에서 쓸 수 없다. VS Code의 접근은 에이전트를 "팀의 주니어 개발자"처럼 기존 시스템 안에서 작동하게 만드는 것이다. 주니어에게도 코드 리뷰와 CI를 적용하듯, 에이전트에게도 같은 정책을 적용한다.


정리

  • 컨텍스트 관리: 대용량 출력 스트리밍, 영속 메모리, /compact 압축으로 에이전트의 기억력 한계를 극복한다.
  • 에이전트 제어: 응답 중간 개입, /fork 세션 분기, 훅 기반 정책 강제로 사람이 주도권을 유지한다.
  • 확장성: 슬래시 커맨드, 브라우저 통합, CLI 통합으로 에이전트를 팀 단위 도구로 확장한다.
  • 핵심 메시지는 하나다 — 에이전트가 기존 워크플로우에 적응해야지, 사람이 에이전트에 적응하면 안 된다.

참고: