이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

2025년 5월 (버전 1.101)

릴리스 날짜: 2025년 6월 12일

보안 업데이트: 다음 확장에 보안 업데이트가 있습니다: ms-python.python.

업데이트 1.101.1: 업데이트는 다음 이슈를 해결합니다.

업데이트 1.101.2: 업데이트는 다음 이슈를 해결합니다.

다운로드: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Visual Studio Code 2025년 5월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하실 만한 많은 업데이트가 있으며, 주요 하이라이트는 다음과 같습니다.

  • MCP

    • 프롬프트, 리소스 및 샘플링에 대한 지원으로 에이전트 코딩 흐름 확장 (더 보기).
    • 인증이 필요한 MCP 서버 액세스 (더 보기).
    • 개발 모드로 MCP 서버 디버깅 (더 보기).
    • 확장에서 MCP 서버 게시 (더 보기).
  • 채팅

    • 도구 세트로 관련 도구를 그룹화하고 관리 (더 보기).
  • 소스 제어

    • 소스 제어 그래프 보기에서 파일 보기 (더 보기).
    • VS Code 내에서 GitHub Copilot 코딩 에이전트의 작업 할당 및 추적 (더 보기).

온라인에서 릴리스 노트를 읽으려면 code.visualstudio.com업데이트로 이동하세요. Insiders: 새로운 기능을 가능한 한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insiders를 다운로드하여 최신 업데이트를 사용할 수 있을 때 즉시 사용해 볼 수 있습니다.

채팅

채팅 도구 세트

VS Code는 이제 제안 API 또는 UI를 통해 도구 세트를 정의할 수 있습니다. 도구 세트는 개별 도구와 마찬가지로 사용할 수 있는 다양한 도구 모음입니다. 도구 세트는 관련 도구를 함께 그룹화하고 에이전트 모드에서 빠르고 쉽게 활성화하거나 비활성화할 수 있도록 합니다. 예를 들어, 아래 도구 세트는 GitHub 알림 관리를 위한 것입니다 (GitHub MCP 서버 사용).

{
  "gh-news": {
    "tools": ["list_notifications", "dismiss_notification", "get_notification_details"],
    "description": "Manage GH notification",
    "icon": "github-project"
  }
}

도구 세트를 만들려면 명령 팔레트에서 도구 세트 구성 > 새 도구 세트 파일 만들기 명령을 실행합니다. 그런 다음 도구 세트에 포함할 도구를 선택하고 설명과 아이콘을 제공할 수 있습니다.

채팅 쿼리에서 도구 세트를 사용하려면 #-멘션하여 이름으로 참조합니다(예: #gh-news). 채팅 입력 상자의 도구 선택기에서 선택할 수도 있습니다.

Screenshot of the Chat view showing a query about unread notifications, using the 'gh-news' tool set highlighted in both the chat interface and a JSON configuration file which defines this tool set.

문서에서 도구 세트에 대해 자세히 알아보세요.

프롬프트에 대한 MCP 지원

VS Code의 Model Context Protocol 지원은 이제 프롬프트 지원을 포함합니다. 프롬프트는 MCP 서버에서 언어 모델에 대한 재사용 가능한 스니펫 또는 작업을 생성하도록 정의할 수 있습니다. 프롬프트는 채팅에서 슬래시 / 명령으로 /mcp.servername.promptname 형식으로 액세스할 수 있습니다. 일반 텍스트를 입력하거나 프롬프트 변수에 명령 출력을 포함할 수 있으며, 서버에서 제공하는 경우 완료 기능도 지원합니다.

다음 예는 AI를 사용하여 프롬프트를 생성하고, Gistpad MCP 서버를 사용하여 저장한 다음, 변경 로그 항목을 생성하는 데 사용하는 방법을 보여줍니다.

리소스에 대한 MCP 지원

VS Code의 Model Context Protocol 지원은 이제 리소스 템플릿 지원을 포함하는 리소스 지원을 포함합니다. 여러 곳에서 사용할 수 있습니다.

  1. MCP 도구 호출에서 반환된 리소스는 모델에서 사용할 수 있으며 채팅에 저장할 수 있습니다. 저장 버튼을 사용하거나 리소스를 탐색기 보기로 드래그하여 저장할 수 있습니다.
  2. 채팅의 컨텍스트 추가... 버튼을 선택한 다음 MCP 리소스...를 선택하여 리소스를 컨텍스트로 첨부할 수 있습니다.
  3. MCP: 리소스 찾아보기 명령 또는 MCP: 서버 목록 명령의 항목을 통해 서버 간 리소스를 검색하고 볼 수 있습니다.

채팅에 Gistpad MCP 서버의 리소스를 첨부하는 예는 다음과 같습니다.

샘플링에 대한 MCP 지원 (실험적)

VS Code의 Model Context Protocol 지원은 이제 MCP 서버가 모델에 다시 요청할 수 있도록 하는 샘플링을 포함합니다. MCP 서버가 샘플링 요청을 처음 할 때 확인 메시지가 표시되며, MCP 서버가 액세스할 수 있는 모델을 구성하고 요청 로그를 보려면 MCP: 서버 목록에서 해당 서버를 선택할 수 있습니다.

샘플링 지원은 아직 예비 단계이며 향후 반복에서 확장 및 개선할 계획입니다.

인증에 대한 MCP 지원

VS Code는 이제 인증이 필요한 MCP 서버를 지원하므로 해당 서비스에 대한 사용자 계정을 대신하여 작동하는 MCP 서버와 상호 작용할 수 있습니다.

이 기능은 클라이언트에 대한 MCP 인증 사양을 구현하며, 다음을 지원합니다.

  • 2025-3-26 사양 (MCP 서버가 인증 서버 역할을 함).
  • 초안 사양 (MCP 서버가 리소스 서버 역할을 함. 곧 최종 확정될 것으로 예상됨).

MCP 서버가 초안 사양을 구현하고 GitHub 또는 Entra를 인증 서버로 활용하는 경우, 계정에 액세스할 수 있는 MCP 서버를 관리할 수 있습니다.

Screenshot of the "Manage Trusted MCP Servers" option in the account menu.

Screenshot of the "Manage Trusted MCP Servers" Quick Pick.

해당 서버에서 사용할 계정을 관리할 수도 있습니다(이전 빠른 선택의 톱니바퀴 버튼을 통해).

Screenshot of the "Account Preference" Quick Pick.

동적 클라이언트 등록에 의존하는 다른 MCP 서버의 경우, 인증 상태를 다른 모든 것과 같은 위치에 포함합니다. 예를 들어 Linear의 경우입니다.

Screenshot of Linear appearing in the account menu.

여기서 로그아웃할 수도 있습니다. 이러한 서버의 경우 코드 인증 흐름뿐만 아니라 인증 서버가 지원하는 경우 장치 코드 흐름도 지원합니다.

또한 Authentication: Remove Dynamic Authentication Providers 명령을 도입하여 이러한 동적 클라이언트 등록을 정리할 수 있습니다. 이렇게 하면 VS Code에 발급된 클라이언트 ID와 이 인증 공급자와 관련된 모든 데이터가 삭제됩니다.

인증이 있는 서버에 대한 동일한 진입점인 MCP: 서버 추가... 명령을 사용하여 MCP 서버를 추가할 수 있음을 기억하십시오.

MCP 개발 모드

서버 구성에 dev 키를 추가하여 MCP 서버에 대해 개발 모드를 활성화할 수 있습니다. 이는 두 개의 속성을 가진 객체입니다.

  • watch: MCP 서버를 다시 시작할 파일 변경을 감시하는 파일 glob 패턴입니다.
  • debug: MCP 서버와 함께 디버거를 설정할 수 있습니다. 현재 Node.js 및 Python 서버를 각각 nodepython으로 실행하는 경우에만 디버깅을 지원합니다.

.vscode/mcp.json

{
  "servers": {
    "gistpad": {
      "command": "node",
      "args": ["build/index.js"],
+     "dev": {
+       "watch": "build/**/*.js",
+       "debug": { "type": "node" }
+     },

채팅 UX 개선

피드백을 기반으로 VS Code의 채팅 사용자 경험을 지속적으로 개선하고 있습니다. 이러한 피드백 중 하나는 채팅에서 사용자 메시지와 AI 응답을 구별하기 어렵다는 것이었습니다. 이를 해결하기 위해 사용자 메시지의 모양을 더 명확하게 만들었습니다.

이전 요청 취소도 이제 더 잘 보입니다. 요청 위로 마우스를 올리고 X 버튼을 선택하여 해당 요청과 이후의 모든 요청을 취소합니다. 또는 더 빠르게, ⌘Backspace (Windows, Linux Delete) 키보드 단축키를 사용하십시오!

마지막으로, 채팅 입력 상자의 첨부 파일이 이제 더 탐색 가능합니다.

문서에서 VS Code에서 채팅 사용에 대해 자세히 알아보세요.

편집을 더 효율적으로 적용

파일을 편집할 때 VS Code는 두 가지 다른 접근 방식을 사용할 수 있습니다. 파일을 위에서 아래로 다시 작성하거나 여러 개의 작은 편집을 수행합니다. 두 접근 방식 모두 다르며, 예를 들어 전자는 대형 파일의 경우 더 느릴 수 있고 중간 상태는 종종 성공적으로 컴파일되지 않습니다. 이 때문에 UI는 자동 저장 및 밑줄 표시를 조정하고 조건부로 비활성화하지만 필요한 경우에만 그렇습니다.

또한 유지되돌리기 명령에 대한 키 바인딩을 조정했습니다. 개별 변경 사항을 유지하고 되돌리는 것은 이제 ⌘Y (Windows, Linux Ctrl+Y)⌘N (Windows, Linux Ctrl+N)으로 수행됩니다. 같은 맥락에서 파일의 모든 변경 사항을 유지하고 되돌리는 키 바인딩도 조정했으며, 이제 ⇧⌘Y (Windows, Linux Ctrl+Shift+Y)⇧⌘N (Windows, Linux Ctrl+Shift+N)입니다. 이는 단순히 정렬뿐만 아니라 인기 있는 편집 명령(예: 모두 삭제)과의 이전 충돌도 제거합니다.

암시적 컨텍스트

채팅에 현재 파일을 컨텍스트로 추가하는 방식을 간소화하고 단순화했습니다. 많은 사용자가 이전에 사용했던 "눈 모양 토글"이 약간 번거롭다고 생각했습니다. 이제 현재 파일이 제안된 컨텍스트 항목으로 제공됩니다. 항목을 선택하여 채팅 컨텍스트에 추가하거나 제거하기만 하면 됩니다. 프롬프트 입력 필드에서 Shift+Tab, Enter를 누르면 키보드로 빠르게 수행할 수 있습니다.

또한 에이전트 모드에서는 현재 편집기에 대한 힌트가 포함됩니다. 여기에는 파일 내용이 포함되지 않고 파일 이름과 커서 위치만 포함됩니다. 에이전트는 이를 쿼리에 관련이 있다고 생각하면 자체적으로 파일 내용을 읽는 도구를 사용할 수 있습니다.

문서에서 채팅에서 컨텍스트 추가에 대해 자세히 알아보세요.

작업 구성 오류 수정

작업 및 문제 해결사를 구성하는 것은 까다로울 수 있습니다. 작업 구성에 오류가 있을 때 제공되는 GitHub Copilot으로 수정 작업을 사용하여 빠르고 효율적으로 해결하세요.

사용자 지정 채팅 모드 (미리 보기)

기본적으로 채팅 보기는 질문, 편집 및 에이전트의 세 가지 내장 채팅 모드를 지원합니다. 각 채팅 모드에는 LLM이 요청을 처리하는 방법을 설명하는 기본 지침 집합과 사용할 수 있는 도구 목록이 있습니다.

이제 채팅 보기에서 사용할 수 있는 사용자 지정 채팅 모드를 정의할 수 있습니다. 사용자 지정 채팅 모드를 사용하면 채팅 동작을 맞춤 설정하고 해당 모드에서 사용할 수 있는 도구를 지정할 수 있습니다. 이는 특히 전문적인 워크플로 또는 LLM에 특정 지침을 제공하려는 경우에 유용합니다. 예를 들어, 코드베이스에 대한 읽기 전용 액세스만 있는 새 기능 계획을 위한 사용자 지정 채팅 모드를 만들 수 있습니다.

사용자 지정 채팅 모드를 정의하고 사용하려면 다음 단계를 따르세요.

  1. 명령 팔레트에서 채팅: 채팅 모드 구성 명령을 사용하여 사용자 지정 모드를 정의합니다.
  2. 만들어진 *.chatprompt.md 파일에 사용자 지정 채팅 모드에 대한 지침과 사용 가능한 도구를 제공합니다.
  3. 채팅 보기에서 채팅 모드 드롭다운 목록에서 채팅 모드를 선택합니다.
  4. 채팅 프롬프트를 제출합니다.

Screenshot of the custom chat mode selected in the Chat view.

다음 예는 사용자 지정 "계획" 채팅 모드를 보여줍니다.

---
description: Generate an implementation plan for new features or refactoring existing code.
tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
---
# Planning mode instructions
You are in planning mode. Your task is to generate an implementation plan for a new feature or for refactoring existing code.
Don't make any code edits, just generate a plan.

The plan consists of a Markdown document that describes the implementation plan, including the following sections:

* Overview: A brief description of the feature or refactoring task.
* Requirements: A list of requirements for the feature or refactoring task.
* Implementation Steps: A detailed list of steps to implement the feature or refactoring task.
* Testing: A list of tests that need to be implemented to verify the feature or refactoring task.

참고: 이 기능은 개발 중이지만 시험해 보세요! VS Code Insiders에서 최신 진행 상황을 따르고 작동하지 않거나 누락된 부분을 알려주세요.

작업 진단 인식

채팅 에이전트가 작업을 실행할 때 이제 문제 해결사가 식별한 오류 또는 경고를 인식합니다. 이 진단 컨텍스트를 통해 채팅 에이전트는 문제가 발생할 때 더 지능적으로 응답할 수 있습니다.

터미널 cwd 컨텍스트

에이전트 모드에서 터미널이 열려 있고 셸 통합이 활성화된 경우 채팅 에이전트는 현재 작업 디렉터리(cwd)를 인식합니다. 이를 통해 더 정확하고 컨텍스트를 인식하는 명령 지원이 가능합니다.

플로팅 창 개선

채팅 세션을 플로팅 창으로 이동할 때 이제 제목 표시줄에 두 개의 새 작업이 있습니다.

  • 채팅을 원래 VS Code 창으로 다시 도킹합니다.
  • 플로팅 창에서 새 채팅 세션을 시작합니다.

Screenshot of the Chat view in a floating window, highlighting the Dock and New Chat buttons in the title bar.

가져오기 도구 확인

가져오기 도구를 사용하면 웹 페이지에서 정보를 가져올 수 있습니다. 잠재적인 프롬프트 주입에 대해 알려주는 경고 메시지를 확인에 추가했습니다.

Screenshot of the fetch tool with a warning about prompt injection.

더 많은 기본 제공 도구 사용자 지정

이제 에이전트 모드 또는 사용자 지정 모드에서 모든 기본 제공 도구를 활성화하거나 비활성화할 수 있습니다. 예를 들어, 에이전트 모드에서 파일을 직접 편집하는 것을 방지하려면 editFiles를 비활성화하거나 터미널 명령을 실행하려면 runCommands를 비활성화합니다.

에이전트 모드에서 도구 구성 버튼을 선택하여 도구 선택기를 열고 원하는 도구 세트를 선택합니다.

Screenshot of the tool picker, showing the "editFiles" tool set item cleared.

이 메뉴의 일부 항목은 여러 도구를 그룹화하는 도구 세트를 나타냅니다. 예를 들어, 텍스트 파일 및 노트북을 편집하거나 생성하기 위한 여러 도구를 모델에 제공하며, 이는 모델 패밀리에 따라 다를 수 있으며 editFiles는 이 모든 것을 그룹화합니다.

요소를 채팅으로 보내기 (실험적)

지난 마일스톤에서는 간단한 브라우저를 열고 포함된 브라우저에서 채팅에 추가할 웹 요소를 선택할 수 있는 새로운 실험 기능을 추가했습니다.

Screenshot showing the Live Preview extension, highlighting the overlay controls to select web elements from the web page.

이 기능을 계속 개선함에 따라 Live Preview 확장에서도 웹 요소를 선택하는 지원을 추가했습니다. 확장을 다운로드하고 HTML 파일에서 라이브 서버를 시작하여 이를 확인하십시오.

접근성

사용자 작업 필요 소리

채팅에서 사용자 작업이 필요함을 나타내는 접근성 신호를 추가했습니다. 소리를 미세 조정 중이므로 선택 사항입니다. 이 동작은 accessibility.signals.chatUserActionRequired로 구성할 수 있습니다.

새 코드 작업 소리

다음과 같은 구분되는 소리를 도입했습니다.

에이전트 모드 접근성 개선

이제 이전 도구 실행, 현재 도구 실행 및 보류 중인 확인을 포함하여 확인 대화 상자에 대한 풍부한 정보를 접근 가능한 보기에 포함합니다. 여기에는 사용될 입력이 포함됩니다.

응답에서 확인 대화 상자가 나타날 때, 화면 판독기 사용자의 컨텍스트를 더 잘 제공하기 위해 동작의 제목이 해당 코드 블록의 ARIA 레이블, 응답의 ARIA 레이블 및 라이브 알림에 포함됩니다.

편집기 환경

입력하면서 찾기

설정: editor.find.findOnType

입력하면서 찾기는 찾기 컨트롤의 기본 동작이었지만, 이제 기본값으로 유지할지 아니면 Enter 키를 누른 후에만 검색을 수행하도록 비활성화할지 제어할 수 있습니다.

기본 창 제목 표시줄을 사용한 사용자 지정 메뉴

설정: window.menuStyle

이제 window.menuStyle 설정을 사용하여 Windows 및 Linux의 메뉴 모음 및 컨텍스트 메뉴, macOS의 컨텍스트 메뉴에 사용되는 메뉴 스타일을 지정할 수 있습니다.

  • native: OS에서 렌더링
  • custom: VS Code에서 렌더링
  • inherit: window.titleBarStyle에 의해 설정된 제목 표시줄 스타일과 일치합니다 (사용자 지정 메뉴 모음 및 컨텍스트 메뉴와 함께 기본 제목 표시줄을 사용할 수 있습니다).

Linux 기본 창 컨텍스트 메뉴

이제 사용자 지정 제목 표시줄의 애플리케이션 아이콘을 마우스 오른쪽 버튼으로 클릭할 때 기본 창 컨텍스트 메뉴를 지원합니다.

Screenshot of the native window context menu over the custom title bar.

프로세스 탐색기 웹 지원

프로세스 탐색기는 워크벤치에서 편집기 창에 사용하는 플로팅 창 인프라를 사용하도록 변환되었습니다. 결과적으로 이는 원격 (예: Codespaces)에 연결될 때 웹에서 프로세스 탐색기를 지원한다는 것을 의미하기도 합니다.

Screenshot of the VS Code process explorer in a floating window.

Windows 셸 환경 검색

이제 Windows의 PowerShell에 대한 셸 환경 검색을 구현했습니다. 이는 VS Code가 PowerShell 프로필에 구성된 환경을 상속한다는 것을 의미합니다. 예를 들어 Node.js가 다양한 버전 관리자를 통해 구성하는 PATH 업데이트 등이 있습니다.

게시되지 않은 확장 경고

설치된 확장은 이제 Marketplace에서 더 이상 사용할 수 없을 때 경고 표시기를 표시하여 게시되지 않거나 제거된 잠재적으로 문제가 있는 확장을 식별하는 데 도움이 됩니다.

Screenshot of an extension with a warning indicator and a message indicating it's no longer available in the Marketplace.

설정 검색 제안 (미리 보기)

설정: workbench.settings.showAISearchToggle

이번 마일스톤에서는 문자열 일치를 기반으로 하는 결과 대신 의미적으로 유사한 결과를 찾기 위해 AI 검색을 시작하는 토글을 설정 편집기에 추가했습니다. 예를 들어, AI 검색은 "텍스트 크기 늘리기"를 검색할 때 editor.fontSize 설정을 찾습니다.

토글을 보려면 설정을 활성화하고 VS Code를 다시 로드하십시오. 또한 덜 정확한 설정 검색 결과 중 일부를 식별하고 수정하는 과정에 있으며, 자연어 쿼리가 예상 설정을 찾지 못한 경우 피드백을 환영합니다.

다음 마일스톤에서는 토글을 제거하고 실험적 설정을 더 느린 AI 검색 결과를 목록 끝에 직접 추가할 시기를 제어하는 설정으로 변경하는 것을 고려하고 있습니다.

검색 키워드 제안 (미리 보기)

설정: search.searchView.keywordSuggestions

지난 마일스톤에서는 관련 결과를 더 빨리 찾는 데 도움이 되도록 검색 보기에서 키워드 제안을 도입했습니다. 이제 제안의 성능을 크게 개선하여 이전보다 약 5배 빠르게 결과를 볼 수 있습니다.

또한 설정을 Chat 확장 프로그램에서 VS Code 코어로 이동하고 이름github.copilot.chat.search.keywordSuggestionssearch.searchView.keywordSuggestions으로 변경했습니다.

의미 검색 동작 옵션 (미리 보기)

설정: search.searchView.semanticSearchBehavior

검색 보기의 의미 검색을 사용하면 텍스트 일치뿐만 아니라 쿼리의 의미를 기반으로 결과를 얻을 수 있습니다. 검색할 정확한 용어를 모르는 경우 특히 유용합니다.

기본적으로 의미 검색은 UI에서 수동으로 트리거할 때만 실행됩니다. 이제 의미 검색이 트리거되는 시기를 제어하는 설정을 추가했습니다.

  • manual (기본값): UI에서 수동으로 트리거할 때만 의미 검색 실행 (⌘I (Windows, Linux Ctrl+I))
  • runOnEmpty: 텍스트 검색에서 결과가 없을 때 의미 검색 자동 실행
  • auto: 모든 검색 쿼리에 대해 텍스트 검색과 병렬로 항상 의미 검색 실행

편집 컨텍스트

설정: editor.editContext

Stable에서 editor.editContext 설정을 기본적으로 활성화했습니다. 이는 편집기 입력이 이제 EditContext API를 통해 제공됨을 의미합니다. 이는 특히 IME 환경과 관련하여 수많은 버그를 수정했으며, 앞으로 편집기 내에서 보다 다양하고 강력한 입력 경험을 제공할 것입니다.

EditContext API에 대한 자세한 내용은 MDN 문서를 참조하십시오.

코드 편집

NES 가져오기 제안

설정: github.copilot.nextEditSuggestions.fixes

지난 달 TypeScript 및 JavaScript에 대한 누락된 가져오기 문을 자동으로 제안하는 다음 편집 제안 지원을 도입했습니다. 이번 릴리스에서는 이러한 제안의 정확성과 안정성을 개선했으며 Python 파일에 대한 지원도 확장했습니다.

Screenshot showing NES suggesting an import statement.

NES는 모든 VS Code Insiders 사용자에게 활성화되며 6월에 Stable 사용자에게 기본적으로 점진적으로 활성화될 예정입니다. 언제든지 해당 설정을 통해 NES를 직접 활성화할 수 있습니다.

NES 수락 흐름

향상된 키보드 탐색을 통해 다음 편집 제안을 수락하는 것이 더 원활해졌습니다. 제안을 수락한 후에는 타이핑을 시작하지 않은 한 Tab 키를 한 번 눌러 후속 제안을 계속 수락할 수 있습니다. 타이핑을 시작하면 Tab 키를 눌러 먼저 커서를 다음 제안으로 이동한 다음 수락할 수 있습니다.

노트북

에이전트 셀 실행을 위한 따라가기 모드

설정: github.copilot.chat.notebook.followCellExecution.enabled

따라가기 모드를 사용하면 Notebook 보기가 현재 에이전트에서 실행 중인 셀로 자동 스크롤됩니다. Jupyter Notebook에서 에이전트 셀 실행을 위한 따라가기 모드를 활성화하거나 비활성화하려면 github.copilot.chat.notebook.followCellExecution.enabled 설정을 사용하십시오.

에이전트가 셀 실행 도구를 사용하면 Notebook 도구 모음이 핀 아이콘으로 업데이트되어 따라가기 모드의 상태를 나타냅니다. 기본 설정을 변경하지 않고도 중간 에이전트 응답에서 동작을 전환하여 에이전트가 반복하는 동안 실시간으로 작업하고, 에이전트가 계속 반복하는 동안 특정 코드 부분을 검토하려는 경우 전환할 수 있습니다. 다시 따라가려면 모드를 전환하고 다음 실행에서 참여하면 됩니다.

에이전트 모드용 노트북 도구

노트북 구성

Jupyter 확장 프로그램은 Jupyter Notebook의 커널을 구성하기 위한 도구를 제공합니다. 이 도구는 커널이 선택되어 노트북에서 사용할 준비가 되었는지 확인합니다. 여기에는 필요한 경우 가상 환경 생성 (권장 접근 방식)을 안내하거나 기존 Python 환경을 선택하도록 요청하는 것이 포함됩니다.

이 도구는 LLM이 사용자 상호 작용을 최소화하여 노트북에 대한 작업을 수행할 수 있도록 보장하여 에이전트 모드의 전반적인 사용자 경험을 개선합니다.

장기 실행 에이전트 워크플로

에이전트는 정확한 컨텍스트를 유지하기 위해 내부 Notebook 요약 도구에 액세스합니다. 이 요약은 컨텍스트가 너무 커서 에이전트가 복잡한 작업을 계속 수행하지 못하도록 대화 기록을 요약할 때도 포함됩니다.

실행 확인의 셀 미리 보기

에이전트가 셀을 실행하도록 확인을 요청할 때 노트북 셀의 코드 스니펫이 표시됩니다. 채팅 보기의 셀 링크를 통해 노트북의 셀로 직접 이동할 수도 있습니다.

소스 제어

Copilot 코딩 에이전트 통합

Copilot 코딩 에이전트를 사용하면 GitHub Copilot이 사람 개발자처럼 백그라운드에서 독립적으로 작업하여 작업을 완료할 수 있습니다. GitHub Pull Requests 확장을 확장하여 VS Code 내에서 에이전트의 작업을 더 쉽게 할당하고 추적할 수 있도록 했습니다.

확장에 다음과 같은 기능을 추가했습니다.

  • Copilot에 할당: VS Code의 이슈 또는 PR 보기에서 Copilot에 풀 요청 또는 이슈 할당
  • 내 대신 Copilot PR 쿼리: Copilot이 대신 작업 중인 모든 풀 요청을 빠르게 확인합니다.
  • PR 보기: Copilot 코딩 에이전트의 상태를 확인하고 브라우저에서 세션 세부 정보 열기.

Screenshot showing the GitHub Pull Requests view, highlighting the assign to Copilot action, and the PR query for work assigned to Copilot.

소스 제어 기록 항목 세부 정보

많은 요청에 따라 소스 제어 그래프 보기에서 항목을 선택하면 해당 기록 항목의 리소스가 표시됩니다. ... 메뉴에서 트리 보기 또는 목록 보기 표현을 선택할 수 있습니다.

다중 파일 diff 편집기에서 기록 항목의 모든 리소스를 열려면 마우스를 올렸을 때 변경 내용 열기 작업을 사용합니다. 그래프 보기에서 특정 리소스를 선택하면 해당 리소스에 대한 diff 편집기만 열립니다. 파일 열기 작업을 선택하여 해당 특정 버전의 파일을 엽니다.

채팅 컨텍스트에 기록 항목 추가

이제 소스 제어 기록 항목을 채팅 요청에 대한 컨텍스트로 추가할 수 있습니다. 특정 커밋 또는 풀 요청의 내용을 채팅 프롬프트에 대한 컨텍스트로 제공하려는 경우 유용할 수 있습니다.

Screenshot of the Chat view input box that has a history item added as context.

채팅에 기록 항목을 추가하려면 채팅 보기에서 컨텍스트 추가 > 소스 제어를 사용한 다음 특정 기록 항목을 선택합니다. 또는 소스 제어 그래프에서 기록 항목을 마우스 오른쪽 버튼으로 클릭한 다음 컨텍스트 메뉴에서 Copilot > 채팅에 기록 항목 추가를 선택합니다.

작업

인스턴스 정책

작업 runOptions에 이제 instancePolicy 속성이 있습니다. 이 속성은 작업이 instanceLimit에 도달했을 때 발생하는 일을 결정합니다.

옵션에는 prompt (기본값), silent, terminateNewest, terminateOldest, warn이 포함됩니다.

Screenshot showing an  being configured in a  file and displays the options with prompt as the default value.

터미널

언어 서버 기반 터미널 제안

이제 대화형 Python REPL 세션에 대해 터미널에서 언어 서버 자동 완성을 사용할 수 있습니다. 이를 통해 편집기에서 제공되는 동일한 언어 자동 완성 기능을 터미널 안에서도 사용할 수 있습니다. 현재는 Pylance를 통해 Python을 지원하며, 향후 더 많은 언어로 확장할 계획입니다.

사용해 보려면 다음 설정을 활성화했는지 확인하세요.

원격 개발

원격 개발 확장 프로그램을 사용하면 개발 컨테이너, SSH 또는 원격 터널을 통해 원격 머신 또는 Windows Subsystem for Linux(WSL)를 완전한 기능을 갖춘 개발 환경으로 사용할 수 있습니다.

주요 내용은 다음과 같습니다.

  • SSH 사전 연결 스크립트
  • 원격 탐색기 개선 사항

이러한 기능에 대한 자세한 내용은 원격 개발 릴리스 노트에서 확인할 수 있습니다.

확장 프로그램 기여

Python

Python 채팅 도구

Python 확장에 다음 채팅 도구가 포함되었습니다: "Python 환경 정보 가져오기", "Python 환경 실행 파일 정보 가져오기", "Python 패키지 설치" 및 "Python 환경 구성". 프롬프트에 #getPythonEnvironmentInfo #installPythonPackage를 추가하여 직접 참조하거나, 에이전트 모드는 적용 가능한 경우 자동으로 도구를 호출합니다. 이러한 도구는 파일 또는 작업 영역 컨텍스트를 기반으로 적절한 환경 정보를 원활하게 감지하고 정확한 환경 확인을 통해 패키지 설치를 처리합니다.

"Python 환경 구성" 도구는 Python 환경이 작업 영역에 대해 올바르게 설정되었는지 확인합니다. 여기에는 필요한 경우 가상 환경을 생성하고 작업 영역에 대해 활성 Python 환경으로 선택하는 것이 포함됩니다.

이전에 Python 환경 확장(미리 보기)에서 도입된 도구는 Python 확장으로 마이그레이션되어 Python 확장이 설치된 모든 사용자가 이러한 도구를 사용할 수 있게 되었습니다.

템플릿으로 프로젝트 생성

Python 환경 확장은 이제 Python 패키지 및 기본 스크립트의 프로젝트 생성을 지원하여 스캐폴딩을 건너뛰고 더 빠르게 코딩할 수 있습니다. **Python Envs: Create Project from Template** 명령을 사용하여 패키지를 만들 것인지 스크립트를 만들 것인지 선택하세요.

패키지 생성의 경우 패키지 이름을 지정하고, 가상 환경을 만들고, 테스트 하위 폴더, pyproject.toml, dev-requirements.txt 및 기본 __main__.py__init__.py 파일을 포함하는 스캐폴드 프로젝트를 받을 수 있습니다.

스크립트의 경우 선택한 이름으로 새 Python 파일을 만들고 기본 코드를 포함합니다.

PyEnv 및 Poetry 지원

Python 환경 확장에서는 환경 관리를 위해 pyenv를, 패키지 및 환경 관리를 위해 poetry를 지원합니다.

GitHub 풀 요청

풀 요청 및 이슈를 작업하고, 생성하고, 관리할 수 있는 GitHub Pull Requests 확장 프로그램에 더 많은 진전이 있었습니다. 새로운 기능은 다음과 같습니다.

  • 비공개 저장소의 이미지 주석이 이제 풀 요청 파일 주석에 표시됩니다.
  • "알림" 보기가 이제 기본적으로 축소되어 표시됩니다. -- 타임라인의 이슈 및 풀 요청 링크와 이슈/풀 요청 본문의 링크가 브라우저로 이동하는 대신 VS Code에서 열립니다.
  • "나에게 할당됨" 쿼리가 "풀 요청" 보기에서 제거되었으며, "로컬 풀 요청 브랜치" 및 "모두 열기" 쿼리는 githubPullRequests.queries 설정을 사용하여 제거할 수 있습니다. Copilot이 있는 저장소의 경우 설정이 구성되지 않은 경우 "Copilot on My Behalf" 쿼리가 추가됩니다.
  • Copilot "작업 시작", "작업 중지" 및 "세션 보기"가 이제 타임라인에 표시됩니다.

확장 프로그램의 0.112.0 릴리스에 대한 변경 로그를 검토하여 다른 주요 내용을 알아보세요.

확장 프로그램 작성

MCP 확장 API

확장 프로그램은 이제 MCP 서버 컬렉션을 게시할 수 있습니다. 이를 통해 MCP 서버를 확장 프로그램과 함께 번들로 묶거나 다른 소스에서 MCP 서버를 동적으로 검색하는 확장 프로그램을 구축할 수 있습니다. MCP 확장 개발 가이드 또는 MCP 확장 샘플을 확인하여 자세히 알아보세요.

확장 프로그램 패키징 시 비밀 검색

VSCE는 이제 확장 프로그램 패키징 시 비밀을 검색합니다. 소스 파일에서 비밀(예: API 키, 토큰, 자격 증명 또는 .env와 같은 환경 변수 파일)이 감지되면 VSCE는 패키징 프로세스 중에 오류를 표시합니다. 이렇게 하면 민감한 정보가 실수로 Marketplace에 게시되는 것을 방지할 수 있습니다. 확장 프로그램을 게시하기 전에 모든 오류를 검토하고 해결해야 합니다.

특정 검사를 건너뛰어야 하는 경우 VSCE를 실행할 때 --allow-package-secrets <secret_type> 또는 --allow-package-env-file 플래그를 사용할 수 있습니다. 이러한 플래그를 사용하면 패키징 중에 건너뛸 비밀 또는 환경 파일 검사를 구성할 수 있습니다.

웹 환경 감지

⚠️ 중대한 변경 사항 ⚠️

설정: extensions.supportNodeGlobalNavigator

Node.js 확장 호스트는 Electron 35 런타임 업데이트의 일환으로 v20에서 v22로 업데이트되었습니다. 이 업데이트는 데스크톱 및 원격 확장 호스트에서 navigator 전역 개체에 대한 지원을 제공합니다.

이 변경 사항은 navigator 개체의 존재에 의존하여 웹 환경을 감지하는 확장 프로그램에 중대한 변경 사항을 초래할 수 있습니다.

확장 프로그램 작성자가 마이그레이션하는 데 도움이 되도록 globalThis.navigator에 대한 폴리필을 만들었습니다. 이 폴리필은 undefined로 초기화되므로 확장 프로그램이 계속 올바르게 작동합니다. 폴리필은 extensions.supportNodeGlobalNavigator VS Code 설정 뒤에 있습니다. 기본적으로 이 설정은 비활성화되어 있으며 폴리필이 적용됩니다. 확장 프로그램이 navigator에 이러한 방식으로 액세스하려고 할 때 원격 분석을 수집하고 오류를 기록합니다(확장 프로그램 개발 모드에서).

향후 이 설정이 기본적으로 활성화될 수 있으므로 확장 프로그램 작성자는 코드를 새 navigator 전역 개체와 호환되도록 마이그레이션할 것을 강력히 권고합니다. 코드를 마이그레이션하려면 다음 단계를 따르세요.

  • 확장 프로그램 호스트 로그에서 확장 프로그램에서 시작된 PendingMigrationError를 확인하세요.
  • 필요한 경우 typeof navigator === 'object'와 같은 검사가 typeof process === 'object' && process.versions.node로 마이그레이션되었는지 확인하세요.
  • extensions.supportNodeGlobalNavigator를 활성화하세요.
  • 확장 프로그램 동작이 변경되지 않았는지 확인하세요.

제안된 API

인증 제공자: MCP에 대한 지원되는 인증 서버

현재 MCP 인증에서만 사용되는 이 API 제안을 통해 AuthenticationProvider는 해당 인증 서버를 선언할 수 있습니다.

예를 들어 GitHub 인증 제공자를 보면, 인증 제공자 기여authorizationServerGlobs 속성에 일반적인 GitHub 인증 URL이 포함되어 있습니다.

{
  "label": "GitHub",
  "id": "github",
  "authorizationServerGlobs": ["https://github.com/login/oauth"]
}

이 속성은 확장 프로그램 활성화에 사용됩니다. 요청된 인증 서버가 일치하면 확장 프로그램이 활성화됩니다.

또한, 인증 제공자를 등록할 때 최종 인증 서버 URL glob을 반드시 포함해야 합니다. GitHub 인증이 여기에서 하는 것과 같습니다.

vscode.authentication.registerAuthenticationProvider(
  type,
  this._githubServer.friendlyName,
  this,
  {
    supportsMultipleAccounts: true,
    supportedAuthorizationServers: [
      ghesUri ?? vscode.Uri.parse('https://github.com/login/oauth')
    ]
  }
);

더 복잡한 예로는 Microsoft 인증을 살펴보세요. 인증 서버는 테넌트가 경로에 배치되는지에 따라 달라집니다. 따라서 이를 위해 기여에서 와일드카드를 사용합니다 .

{
  "label": "Microsoft",
  "id": "microsoft",
  "authorizationServerGlobs": [
    "https://login.microsoftonline.com/*/v2.0"
  ]
},

그리고 등록에서 .

authentication.registerAuthenticationProvider('microsoft', 'Microsoft', authProvider, {
  supportsMultipleAccounts: true,
  supportedAuthorizationServers: [Uri.parse('https://login.microsoftonline.com/*/v2.0')]
});

그런 다음, 호출자가 인증을 요청할 때 인증 서버 URL을 전달하면, 이미 존재하는 AuthenticationProviderSessionOptions를 통해 getSessionscreateSession 함수로 전달됩니다.

언급했듯이, 이 기능은 현재 MCP 지원에서 사용되며, MCP 서버에서 인증할 인증 서버 URL을 받습니다. 해당 URL은 인증 제공자로 매핑되거나, 존재하지 않는 경우 해당 인증 서버에 대해 인증 제공자가 동적으로 생성됩니다.

전체 API 제안은 vscode 리포지토리에서 확인할 수 있으며, GitHub 이슈에서 여러분의 피드백을 기다립니다!

엔지니어링

Electron 35 업데이트

이번 마일스톤에서는 Electron 35 업데이트를 안정(Stable) 릴리스 사용자에게 제공합니다. 이 업데이트는 Chromium 134.0.6998.205 및 Node.js 22.15.1과 함께 제공됩니다. Insiders 빌드에서 자체 테스트하고 초기 피드백을 제공한 모든 분들께 감사드립니다.

실제 확장 프로그램에서 ESM 채택

지난 마일스톤에서 JavaScript 모듈(ESM) 지원을 발표했습니다. 이를 통해 확장 프로그램은 importexport 문을 사용할 수 있지만, 현재는 NodeJS 확장 호스트를 대상으로 하는 경우에만 해당됩니다.

이번 달에는 GitHub Issue Notebooks와 함께 실제 사용 사례를 적용했습니다. 이 확장 프로그램은 NodeJS 확장 호스트(ESM 확장을 지원함)와 웹 워커 확장 호스트(현재 ESM 확장을 지원하지 않음) 모두에서 실행될 수 있기 때문에 간단하지 않습니다. 이를 위해서는 더 복잡한 번들러 구성이 필요했으며, esbuild 구성에서 영감을 얻을 수 있습니다.

주요 수정 사항

  • 250077 - Tree-Sitter 기반 구문 강조는 모델 서비스에 의존합니다.

감사합니다

마지막으로, VS Code 기여자에 대한 진심 어린 감사의 말씀을 전합니다.

이슈 추적

이슈 추적에 대한 기여

풀 리퀘스트

vscode 기여

vscode-copilot-release에 대한 기여

vscode-css-languageservice에 대한 기여

vscode-custom-data에 대한 기여

vscode-eslint 기여

vscode-generator-code에 대한 기여

vscode-js-debug 기여

vscode-jupyter 기여

  • @WillHirsch: 패키지 설치 시 느낌표 대신 퍼센트 사용 진단 심각도 낮추기 PR #16601

vscode-languageserver-node에 기여

vscode-markdown-tm-grammar에 기여

vscode-prompt-tsx 기여

vscode-pull-request-github 기여

vscode-python-debugger 기여

debug-adapter-protocol에 기여

language-server-protocol 기여

lsprotocol에 대한 기여

© . This site is unofficial and not affiliated with Microsoft.