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

2025년 4월 (버전 1.100)

릴리스 날짜: 2025년 5월 8일

업데이트: VS Code 안정 버전에서 다음 편집 제안(NES)이 기본적으로 활성화되었습니다(자세히 보기).

업데이트 1.100.1: 이 업데이트는 이러한 보안 문제를 해결합니다.

업데이트 1.100.2: 이 업데이트는 이러한 문제를 해결합니다.

업데이트 1.100.3: 이 업데이트는 이러한 문제를 해결합니다.

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


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

  • 채팅

    • 사용자 지정 지침 및 재사용 가능한 프롬프트(자세히 보기).
    • GitHub, 확장 프로그램 및 노트북을 위한 도구를 사용하여 더 스마트한 결과 얻기(자세히 보기).
    • MCP에 대한 이미지 및 스트리머블 HTTP 지원(자세히 보기).
  • 채팅 성능

  • 편집기 환경

    • 채팅 및 편집기를 위한 향상된 다중 창 지원(자세히 보기).
    • 스테이징된 변경 사항을 더 쉽게 식별할 수 있습니다(자세히 보기).

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

채팅

프롬프트 및 지침 파일

Markdown 기반 지침 및 프롬프트 파일을 사용하여 VS Code의 AI 환경을 특정 코딩 관행 및 기술 스택에 맞게 조정할 수 있습니다. 이 두 가지 관련 개념의 구현 및 사용을 일치시켰지만, 각각 고유한 목적이 있습니다.

지침 파일

설정: chat.instructionsFilesLocations

지침 파일(사용자 지정 지침 또는 규칙이라고도 함)은 코드 스타일 규칙 또는 사용할 프레임워크와 같이 AI 모델에 대한 일반적인 지침 및 컨텍스트를 Markdown 파일로 설명하는 방법을 제공합니다. 지침 파일은 독립적인 채팅 요청이 아니라 채팅 요청에 적용할 수 있는 컨텍스트를 제공합니다.

지침 파일은 .instructions.md 파일 접미사를 사용합니다. 사용자 데이터 폴더 또는 작업 영역에 있을 수 있습니다. chat.instructionsFilesLocations 설정은 지침 파일이 포함된 폴더를 나열합니다.

특정 채팅 요청에 지침을 수동으로 첨부하거나 자동으로 추가할 수 있습니다.

  • 수동으로 추가하려면 채팅 보기에서 컨텍스트 추가 버튼을 클릭한 다음 지침...을 선택합니다. 또는 명령 팔레트에서 채팅: 지침 첨부... 명령을 사용합니다. 그러면 기존 지침 파일을 선택하거나 새 지침 파일을 만들어 첨부할 수 있는 선택기가 표시됩니다.

  • 프롬프트에 지침을 자동으로 추가하려면 instructions 파일에 applyTo Front Matter 헤더를 추가하여 지침이 적용되는 파일을 지정합니다. 채팅 요청에 지정된 glob 패턴과 일치하는 파일이 포함된 경우 지침 파일이 자동으로 첨부됩니다.

    다음 예는 TypeScript 파일에 대한 지침을 제공합니다(applyTo: '**/*.ts').

    ---
    applyTo: '**/*.ts'
    ---
    Place curly braces on separate lines for multi-line blocks:
    if (condition)
    {
      doSomething();
    }
    else
    {
      doSomethingElse();
    }
    

채팅: 새 지침 파일... 명령을 사용하여 지침 파일을 만들 수 있습니다. 또한 사용자 데이터 폴더에 생성된 파일은 설정 동기화 서비스를 통해 여러 사용자 컴퓨터에서 자동으로 동기화될 수 있습니다. 설정 백업 및 동기화... 대화 상자에서 프롬프트 및 지침 옵션을 확인하십시오.

문서에서 지침 파일에 대해 자세히 알아보세요.

프롬프트 파일

설정: chat.promptFilesLocations

프롬프트 파일은 프롬프트 텍스트, 채팅 모드 및 사용할 도구를 포함한 독립적이고 완전한 채팅 요청을 설명합니다. 프롬프트 파일은 일반적인 작업에 대한 재사용 가능한 채팅 요청을 만드는 데 유용합니다. 예를 들어 프런트엔드 구성 요소를 만드는 프롬프트 파일이나 보안 검토를 수행하는 프롬프트 파일을 추가할 수 있습니다.

프롬프트 파일은 .prompt.md 파일 접미사를 사용합니다. 사용자 데이터 폴더 또는 작업 영역에 있을 수 있습니다. chat.promptFilesLocations 설정은 프롬프트 파일이 검색되는 폴더를 나열합니다.

프롬프트 파일을 실행하는 몇 가지 방법이 있습니다.

  • 채팅 입력 필드에 /를 입력한 다음 프롬프트 파일 이름을 입력합니다. 슬래시 명령으로 채팅 보기에서 프롬프트를 실행하는 것을 보여주는 스크린샷.

  • 편집기에서 프롬프트 파일을 열고 편집기 도구 모음의 '재생' 버튼을 누릅니다. 이를 통해 채팅 보기로 다시 전환하지 않고도 프롬프트를 신속하게 반복하고 실행할 수 있습니다. 편집기의 재생 버튼을 사용하여 프롬프트를 실행하는 것을 보여주는 스크린샷.

  • 명령 팔레트에서 채팅: 프롬프트 파일 실행... 명령을 사용합니다.

프롬프트 파일은 어떻게 실행되어야 하는지를 나타내기 위해 다음 Front Matter 메타데이터 헤더를 가질 수 있습니다.

  • mode: 프롬프트 호출 시 사용할 채팅 모드(ask, edit 또는 agent 모드).
  • tools: modeagent인 경우 프롬프트에서 사용할 수 있는 도구 목록.

다음 예는 릴리스 노트를 생성하기 위한 프롬프트 파일로, 에이전트 모드에서 실행되며 일련의 도구를 사용할 수 있습니다.

---
mode: 'agent'
tools: ['getCurrentMilestone', 'getReleaseFeatures', 'file_search', 'semantic_search', 'read_file', 'insert_edit_into_file', 'create_file', 'replace_string_in_file', 'fetch_webpage', 'vscode_search_extensions_internal']
---
Generate release notes for the features I worked in the current release and update them in the release notes file. Use [release notes writing instructions file](.github/instructions/release-notes-writing.instructions.md) as a guide.

프롬프트 파일을 만들려면 명령 팔레트에서 채팅: 새 프롬프트 파일... 명령을 사용합니다.

문서에서 프롬프트 파일에 대해 자세히 알아보세요.

개선 사항 및 참고 사항

  • 지침 및 프롬프트 파일에 자체 언어 ID가 추가되어, 열려 있는 모든 문서의 언어 모드 대화 상자("프롬프트" 및 "지침" 각각)에서 구성할 수 있습니다. 이를 통해 예를 들어, 저장하기 전에 임시 프롬프트 파일로 제목 없는 문서를 사용할 수 있습니다.
  • 채팅: 프롬프트 사용 명령을 채팅: 프롬프트 실행으로 이름을 변경했습니다. 또한, 이 명령은 이전과 같이 채팅 컨텍스트로 첨부하는 대신 선택한 프롬프트를 *즉시* 실행합니다.
  • 두 파일 유형 모두 이제 헤더에 description 메타데이터를 지원하여, 짧고 사용자 친화적인 프롬프트 요약을 위한 공통 장소를 제공합니다. 향후 이 헤더는 applyTo 헤더와 함께 채팅 요청에 자동으로 포함되어야 하는지 여부를 결정하는 규칙으로 사용될 예정입니다(예: description: 'TypeScript로 작성된 프런트엔드 구성 요소의 코드 스타일 규칙.').

더 빠른 에이전트 모드 편집

에이전트 모드에서 OpenAI의 apply patch 편집 형식(GPT 4.1 및 o4-mini)과 Anthropic의 replace string 도구(Claude Sonnet 3.7 및 3.5)에 대한 지원을 구현했습니다. 이는 특히 대형 파일에서 훨씬 더 빠른 편집의 이점을 누릴 수 있음을 의미합니다.

OpenAI 모델에 대한 업데이트는 VS Code Insiders에서 기본적으로 활성화되어 있으며 점차 안정 버전으로 확대될 예정입니다. Anthropic 업데이트는 안정 및 Insiders 버전 모두에서 모든 사용자가 사용할 수 있습니다.

채팅의 기본 모델

VS Code의 채팅에서 GPT-4.1을 기본 모델로 점진적으로 확대하고 있습니다. 언제든지 채팅 보기에서 모델 전환기를 사용하여 다른 모델로 변경할 수 있습니다.

#githubRepo 도구를 사용하여 GitHub 리포지토리의 코드를 검색합니다.

GitHub 리포지토리에 대한 질문을 해야 하는데 편집기에서 열려 있지 않다고 상상해 보세요. 예를 들어, microsoft/vscode 리포지토리에서 특정 함수가 어떻게 구현되는지 알고 싶습니다.

이제 #githubRepo 도구를 사용하여 액세스할 수 있는 모든 GitHub 리포지토리에서 코드 스니펫을 검색할 수 있습니다. 이 도구는 user/repo를 추가 입력으로 사용합니다. 예를 들어, "TS에서 팩토리 패턴 구현 방법 #githubRepo microsoft/vscode"입니다.

또한 사용자 지정 지침을 사용하여 이 도구를 언제 어떻게 사용할지에 대한 힌트를 제공할 수 있습니다. 다음 예와 같습니다.

---
applyTo: '**'
---
Use the `#githubRepo` tool with `microsoft/vscode` to find relevant code snippets in the VS Code codebase.
Use the `#githubRepo` tool with `microsoft/typescript` to answer questions about how TypeScript is implemented.

Screenshot showing using the #githubRepo tool in agent mode with hints from instructions files.

현재 작업 중인 리포지토리에 대해 질문하려면 #codebase 도구를 사용할 수 있습니다.

또한 #githubRepo 도구는 관련 코드 스니펫 검색 전용입니다. GitHub MCP 서버는 GitHub 이슈 및 풀 요청 작업을 위한 도구를 제공합니다. VS Code에 MCP 서버를 추가하는 방법에 대해 자세히 알아보세요.

확장 프로그램 도구를 사용하여 Marketplace 확장 프로그램 찾기

채팅에서 확장 프로그램 도구(#extensions)를 사용하여 Marketplace의 확장 프로그램을 찾습니다. 채팅 프롬프트를 기반으로 도구가 자동으로 호출되거나 프롬프트에서 #extensions로 명시적으로 참조할 수 있습니다. 이 도구는 쿼리와 일치하는 확장 프로그램 목록을 반환합니다. 결과에서 직접 확장 프로그램을 설치할 수 있습니다.

웹 페이지 가져오기 도구 개선 사항

지난달에 웹 페이지의 내용을 채팅에서 직접 가져와 프롬프트 컨텍스트로 포함하는 가져오기 도구(#fetch)를 도입했습니다. 해당 릴리스 노트를 놓치셨다면 가져오기 도구의 초기 릴리스 릴리스 노트를 확인하세요.

이번 반복에서는 다음과 같은 몇 가지 큰 변경 사항을 도구에 적용했습니다.

  • 전체 페이지를 컨텍스트로: 이제 하위 집합 대신 전체 페이지를 컨텍스트로 추가합니다. 더 큰 컨텍스트 창을 사용하면 모델에 전체 페이지를 제공할 수 있습니다. 예를 들어, 가능한 한 많은 페이지를 필요로 하는 요약 질문을 이제 할 수 있습니다. 컨텍스트 창을 채울 수 있더라도 가져오기 도구는 관련성이 낮은 페이지 섹션을 제외할 만큼 충분히 스마트합니다. 이를 통해 컨텍스트 창 제한을 초과하지 않으면서도 중요한 부분을 유지할 수 있습니다.
  • 표준화된 페이지 형식(Markdown): 이전에는 작동했지만 사용자 지정 특성으로 인해 때때로 이해하기 어려웠던 사용자 지정 계층적 형식으로 가져온 웹 페이지를 포맷했습니다. 이제 가져온 웹 페이지를 표준화된 언어인 Markdown으로 변환합니다. 이는 관련성 감지의 신뢰성을 향상시키며 대부분의 언어 모델이 깊이 알고 있는 형식이므로 더 쉽게 추론할 수 있습니다.

가져오기 도구를 어떻게 사용하는지, 그리고 어떤 기능을 보고 싶은지 알려주시면 감사하겠습니다!

채팅 입력 개선 사항

채팅 입력란에 몇 가지 개선 사항이 있습니다.

  • 첨부 파일: #를 사용하여 프롬프트 텍스트에서 컨텍스트를 참조할 때 이제 첨부 파일 알약으로도 표시됩니다. 이를 통해 언어 모델에 전송되는 내용을 더 쉽게 이해할 수 있습니다.
  • 컨텍스트 선택기: 파일, 폴더 및 기타 첨부 파일 유형을 더 쉽게 선택할 수 있도록 컨텍스트 선택기를 간소화했습니다.
  • 완료 버튼: "완료" 버튼에 대한 피드백을 받아 제거했습니다! 더 이상 예기치 않은 세션 종료에 대한 혼란이 없습니다. 이제 새 채팅을 만들 때만 새 세션을 시작합니다(⌘N (Windows, Linux Ctrl+N)).

채팅 모드 키보드 단축키

키보드 단축키 ⌃⌘I (Windows, Linux Ctrl+Alt+I)는 여전히 채팅 보기만 열지만, ⇧⌘I (Windows Ctrl+Shift+I, Linux Ctrl+Shift+Alt+I) 단축키는 이제 채팅 보기를 열고 에이전트 모드로 전환됩니다. 다른 채팅 모드에 대한 키보드 단축키를 설정하려면 각 모드에 대한 명령이 있습니다.

  • workbench.action.chat.openAgent
  • workbench.action.chat.openEdit
  • workbench.action.chat.openAsk

에이전트 모드 편집에서 자동 수정 진단

설정: github.copilot.chat.agent.autoFix

에이전트 모드에서 파일 편집이 새 오류를 발생시키는 경우, 에이전트 모드는 이를 감지하고 후속 편집을 자동으로 제안할 수 있습니다. 이는 에이전트 모드에 오류를 수정하도록 요청하기 위해 후속 프롬프트를 보낼 필요가 없음을 의미합니다. github.copilot.chat.agent.autoFix을 사용하여 이 동작을 비활성화할 수 있습니다.

에이전트 모드에서 실행 취소 및 수동 편집 처리

이전에는 에이전트 모드 세션 중에 수동 편집을 하면 모델이 혼란스러워할 수 있었습니다. 이제 에이전트는 변경 사항에 대한 알림을 받고, 변경되었을 수 있는 파일을 편집하기 전에 필요에 따라 파일을 다시 읽습니다.

대화 요약 및 프롬프트 캐싱

프롬프트 캐싱을 최적화하기 위해 에이전트 모드 프롬프트가 빌드되는 방식을 일부 변경했습니다. 프롬프트 캐싱은 안정적인 프롬프트 접두사를 유지하여 모델 응답을 더 빠르게 만드는 방법입니다. 다음 요청은 해당 접두사에서 재개할 수 있으며, 결과적으로 각 요청이 조금 더 빨라집니다. 이는 에이전트 모드에서 일반적으로 발생하는 대형 컨텍스트를 가진 반복적인 요청 시리즈에서 특히 효과적입니다.

대화가 길어지거나 컨텍스트가 매우 커지면 에이전트 모드 세션에 "요약된 대화 기록" 메시지가 표시될 수 있습니다.

Screenshot showing a summarized conversation message in the Chat view.

FIFO를 유지하고 캐시를 끊는 대신, 현재까지의 대화를 가장 중요한 정보와 현재 작업 상태의 요약으로 압축합니다. 이를 통해 프롬프트 접두사를 안정적으로 유지하고 응답을 빠르게 유지할 수 있습니다.

Streamable HTTP에 대한 MCP 지원

이번 릴리스에서는 Model Context Protocol 서버에 대한 새로운 Streamable HTTP 전송 지원이 추가되었습니다. Streamable HTTP 서버는 기존 SSE 서버와 마찬가지로 구성되며, 구현은 SSE 서버와 하위 호환됩니다.

{
  "servers": {
    "my-mcp-server": {
      "url": "https://:3000/mcp"
    }
  }
}

VS Code에서 MCP 지원에 대해 자세히 알아보세요.

이미지 출력에 대한 MCP 지원

이제 도구 출력의 일부로 이미지를 생성하는 MCP 서버를 지원합니다.

모든 언어 모델이 도구 출력에서 이미지를 읽는 것을 지원하는 것은 아닙니다. 예를 들어, GPT-4.1은 비전 기능이 있지만 현재 도구에서 이미지를 읽는 것을 지원하지는 않습니다.

MCP 서버의 향상된 입력, 출력 및 진행 상황

MCP 서버 도구 입력 및 출력을 보여주는 UI를 개선했으며, MCP의 새 진행률 메시지에 대한 지원도 추가했습니다.

테마: Codesong (vscode.dev에서 미리보기)

MCP 구성 생성에서 입력 사용

비밀 정보를 안전하게 유지하기 위해 MCP: 서버 추가 명령에서 AI 지원 구성은 결과 구성에 인라인으로 포함하는 대신 비밀 정보에 대해 inputs를 생성합니다.

인라인 채팅 V2 (미리 보기)

설정: inlineChat.enableV2

인라인 채팅 ⌘I (Windows, Linux Ctrl+I)의 개선된 버전을 개발했습니다. 테마는 여전히 "코드로 채팅 가져오기"이지만, 백그라운드에서는 채팅 편집과 동일한 로직을 사용합니다. 이는 사용 가능한 컨텍스트를 더 잘 활용하고 더 나은 코드 편집 전략을 제공함을 의미합니다. inlineChat.enableV2를 통해 인라인 채팅 v2를 활성화할 수 있습니다.

또한, 선택적으로 활성화할 수 있는 더 가벼운 UX가 있습니다. inlineChat.hideOnRequest 설정을 사용하면 요청이 이루어지면 인라인 채팅이 숨겨집니다. 그런 다음 채팅 편집 오버레이로 최소화되어 변경 사항을 수락하거나 폐기하거나 인라인 채팅 컨트롤을 복원할 수 있습니다.

UI 요소를 선택하여 채팅에 첨부 (실험적)

설정: chat.sendElementsToChat.enabled

웹 애플리케이션을 개발하는 동안 웹 페이지의 특정 UI 요소에 대해 채팅에 질문하고 싶을 수 있습니다. 이제 내장된 Simple Browser를 사용하여 UI 요소를 채팅에 컨텍스트로 첨부할 수 있습니다.

내장된 Simple Browser를 통해 로컬로 호스팅된 사이트를 연 후 (Simple Browser: 보기 명령으로 실행), 이제 새로운 도구 모음이 표시됩니다. 여기서 시작을 선택하면 원하는 사이트의 모든 요소를 선택할 수 있습니다. 이렇게 하면 선택한 요소의 스크린샷과 해당 요소의 HTML 및 CSS가 첨부됩니다.

채팅에 첨부되는 내용을 구성하려면

이 실험적인 기능은 모든 Simple Browser에 대해 기본적으로 활성화되지만 chat.sendElementsToChat.enabled으로 비활성화할 수 있습니다.

에이전트 모드에서 작업 생성 및 실행 (실험적)

설정: github.copilot.chat.newWorkspaceCreation.enabled

이전 릴리스에서는 에이전트 모드를 사용한 작업 영역 생성을 활성화하는 github.copilot.chat.newWorkspaceCreation.enabled (실험적) 설정을 도입했습니다.

이제 이 생성 흐름이 끝나면 앱이나 프로젝트를 실행할 작업을 생성하고 실행하라는 메시지가 표시됩니다. 이를 통해 프로젝트 시작 프로세스가 간소화되고 작업 재사용이 용이해집니다.

접근성

병합 편집기 개선 사항

병합 편집기가 더 접근하기 쉬워졌습니다. 사용 가능한 작업을 알아보려면 병합 편집기 내에서 접근성 도움말 대화 상자를 엽니다 (⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)). 주요 작업에는 병합 편집기: 병합 완료 (⌘Enter (Windows, Linux Ctrl+Enter)) 및 병합 편집기 입력 간 전환 (⇧⌘T (Windows, Linux Ctrl+Shift+T))이 포함됩니다. 현재 초점이 맞춰진 입력도 이제 보조 기술에 알려집니다.

다음 편집 제안 개선 사항

새로운 설정 accessibility.signals.nextEditSuggestion은 예측된 제안을 사용할 수 있을 때 알립니다. 접근 가능한 보기 (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))를 통해 제안을 검토하고 수락합니다. 또한, accessibility.signals.diffLineAddedaccessibility.signals.diffLineRemoved은 탐색 중에 오디오 큐를 제공하여 차이점 검토를 접근 가능하게 만듭니다.

접근 가능한 보기에서 Copilot 사용자 요청 검토

에이전트 모드에서 도구 호출 또는 터미널 명령은 때때로 실행을 위해 사용자 권한이 필요합니다. 접근 가능한 보기 (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))에서 이러한 작업을 검토합니다.

고유한 접근성 사운드

accessibility.signals.save.sound에 고유한 사운드가 추가되었으며 더 이상 accessibility.signals.terminalCommandSucceeded.sound과 오디오를 공유하지 않습니다.

편집기 환경

플로팅 창 모드

VS Code의 플로팅 창을 사용하면 편집기 및 특정 보기를 메인 창에서 작은 창으로 이동하여 경량 다중 창 설정을 할 수 있습니다. 플로팅 창에는 두 가지 새로운 모드가 있습니다.

  • 컴팩트: 실제 콘텐츠를 위한 공간을 더 많이 확보하기 위해 특정 UI 요소를 숨깁니다.
  • 항상 위에: 창은 이 모드를 벗어날 때까지 다른 모든 창 위에 유지됩니다.

플로팅 편집기 창을 컴팩트 모드로 전환하는 방법의 예는 다음과 같습니다.

새 창에서 채팅을 만들 때 기본적으로 컴팩트 모드를 사용합니다. 항상 위에 있는 창 옵션과 결합하면 질문을 하기 위해 채팅 보기를 항상 유지할 수 있습니다!

이러한 작업을 키보드 단축키로 사용하려는 경우 새로운 명령을 도입했습니다.

  • workbench.action.toggleWindowAlwaysOnTop: 항상 위에 모드 토글
  • workbench.action.enableWindowAlwaysOnTop: 플로팅 창을 항상 위에 설정
  • workbench.action.disableWindowAlwaysOnTop: 플로팅 창을 일반으로 설정
  • workbench.action.toggleCompactAuxiliaryWindow: 컴팩트 모드 토글
  • workbench.action.enableCompactAuxiliaryWindow: 컴팩트 모드 활성화
  • workbench.action.disableCompactAuxiliaryWindow: 컴팩트 모드 비활성화

참고: 컴팩트 모드에서도 복잡한 편집기 레이아웃을 만들고 다른 편집기를 열 수 있습니다.

보조 사이드바 기본 표시 여부

설정: workbench.secondarySideBar.defaultVisibility

기본적으로 보조 사이드바는 새 작업 영역 또는 창을 열 때 숨겨집니다. 새 설정 workbench.secondarySideBar.defaultVisibility을 사용하면 새 작업 영역 또는 창에서 보조 사이드바가 자동으로 열려야 하는지 여부를 제어할 수 있습니다. 다음 중에서 선택할 수 있습니다.

  • hidden: 이것이 기본값이며 보조 사이드바를 숨김 상태로 유지합니다.
  • visibleInWorkspace: 폴더 또는 다중 루트 작업 영역을 열면 보조 사이드바가 열립니다.
  • visible: 보조 사이드바가 항상 열립니다.

작업 영역 또는 창이 열린 후에는 표시 여부가 작업 영역 상태가 되어 설정 값을 재정의합니다. 보조 사이드바를 닫으면 해당 작업 영역 또는 창에서 닫힌 상태로 유지됩니다.

확장 프로그램 서명 확인 필수

이제 모든 플랫폼(Windows, macOS, Linux)에서 확장 프로그램 서명 확인이 필수입니다. 이전에는 이 확인이 Windows 및 macOS에서만 필수였습니다. 이번 릴리스에서는 Linux에서도 확장 프로그램 서명 확인을 강제하여 설치 전에 모든 확장 프로그램이 올바르게 유효성 검사를 받도록 합니다.

이 변경 사항은 잠재적으로 악성인 확장 프로그램의 설치를 방지하여 보안을 더욱 강화합니다. 자세한 내용은 확장 프로그램 서명을 참조하세요.

참고: Linux ARM32 빌드에서는 이슈 #248308로 인해 필수 확장 프로그램 서명 확인이 비활성화되어 있습니다. 이는 다음 릴리스에서 해결될 것으로 예상됩니다.

확장 프로그램이 악성으로 식별되면 VS Code는 해당 확장 프로그램이 플래그가 지정된 이유를 설명하는 추가 정보 링크를 제공합니다. 이러한 "자세히 알아보기" 링크는 사용자에게 GitHub 이슈 또는 보안 우려에 대한 세부 정보가 포함된 문서로 연결하여 잠재적 위험을 더 잘 이해하도록 돕습니다.

VS Code 안정 버전에서 Copilot Chat 미리 보기 버전 설치 방지

VS Code는 이제 VS Code 안정 버전에서 Copilot Chat 확장 프로그램의 미리 보기 버전 설치를 방지합니다. 이를 통해 실수로 Copilot Chat 미리 보기 버전을 설치하여 작동하지 않는 상태에 갇히는 상황을 방지할 수 있습니다. 즉, VS Code의 Insiders 빌드에서만 Copilot Chat 확장 프로그램 미리 보기 버전을 설치할 수 있습니다.

초점 없이 보기 여는 명령

보기(트리 보기 및 웹뷰 보기)는 초점을 맞추지 않고도 열 수 있습니다. 이는 보기를 열고 싶지만 현재 편집기에서 초점을 잃고 싶지 않은 확장 프로그램 및 키보드 단축키에 유용합니다. 명령은 your-view-id.open이며, 속성 가방 인수 { preserveFocus: boolean}을 사용합니다.

키워드 제안을 통한 의미론적 텍스트 검색 (실험적)

설정: github.copilot.chat.search.keywordSuggestions

의미론적 텍스트 검색은 이제 AI 기반 키워드 제안을 지원합니다. 이 기능을 활성화하면 찾고 있는 코드를 찾는 데 도움이 될 수 있는 관련 참조 또는 정의가 표시되기 시작합니다.

코드 편집

새로운 다음 편집 제안 (NES) 모델

설정: github.copilot.nextEditSuggestions.enabled

더 빠르고 맥락에 맞는 코드 추천을 제공하도록 설계된 NES를 지원하는 새로운 모델을 소개합니다. 이 업데이트된 모델은 성능이 향상되어 지연 시간이 단축된 제안을 제공하며, 덜 방해가 되고 최근 편집 내용과 더 밀접하게 일치하는 제안을 제공합니다. 이 업데이트는 Visual Studio Code 내에서 AI 지원 개발 도구를 개선하려는 지속적인 노력의 일환입니다.

가져오기 제안

설정: github.copilot.nextEditSuggestions.fixes

다음 편집 제안(NES)은 이제 JavaScript 및 TypeScript 파일에서 누락된 가져오기 문을 자동으로 제안할 수 있습니다. github.copilot.nextEditSuggestions.fixes을 설정하여 이 기능을 활성화합니다. 향후 업데이트에서 다른 언어의 가져오기를 지원하도록 이 기능을 더욱 강화할 계획입니다.

Screenshot showing NES suggesting an import statement.

다음 편집 제안(NES) 기본 활성화

다음 편집 제안은 이제 VS Code Insiders에서 기본적으로 활성화되었으며 점차 안정 버전으로 확대될 예정입니다.

HTML 또는 Markdown에서 alt 텍스트 생성

이제 HTML 및 Markdown 파일에서 alt 텍스트를 생성하거나 업데이트할 수 있습니다. 포함된 이미지 줄로 이동하여 빠른 수정(⌘. (Windows, Linux Ctrl+.))을 트리거하거나 전구 아이콘을 선택하여 수행할 수 있습니다.

Screenshot that shows generating alt text for an image html element.

노트북

찾기 및 바꾸기 기록 유지

노트북 찾기 컨트롤은 이제 찾기 및 바꾸기 입력 필드 모두에 대한 지속적인 기록을 지원합니다. 이는 다시 로드해도 유지되며 설정 editor.find.historyeditor.find.replaceHistory에 의해 제어됩니다.

셀 출력 드래그 앤 드롭하여 채팅하기

채팅 내에서 셀 출력 사용에 대한 기존 지원을 강화하기 위해, 출력을 채팅 보기로 드래그하여 원활하게 첨부할 수 있습니다. 현재는 이미지 및 텍스트 출력만 지원됩니다. 이미지 MIME 타입이 있는 출력은 직접 드래그 가능하지만, 텍스트 선택과의 충돌을 피하기 위해 텍스트 출력은 드래그를 활성화하려면 alt 수정자 키를 눌러야 합니다. 향후 릴리스에서 UX 개선 사항을 탐색하고 있습니다.

에이전트 모드를 위한 노트북 도구

셀 실행

채팅에 이제 노트북 셀을 실행할 수 있는 LLM 도구가 포함되어, 에이전트가 셀 실행 결과를 기반으로 업데이트를 수행하거나 노트북을 구축하면서 자체 데이터 탐색을 수행할 수 있습니다.

커널 상태 가져오기

에이전트는 현재 커널 세션에서 어떤 셀이 실행되었는지 파악하고 커널 상태 도구를 사용하여 활성 변수를 읽을 수 있습니다.

패키지 나열/설치

Jupyter 확장 프로그램은 노트북의 커널로 사용되는 환경에 패키지를 나열하고 설치하는 도구를 제공합니다. 이 작업은 Python Environments 확장 프로그램이 있는 경우 해당 확장 프로그램으로 위임됩니다. 그렇지 않으면 pip 패키지 관리자를 사용하려고 시도합니다.

소스 제어

스테이징된 변경 사항에 대한 빠른 차이점 장식

오래된 기능 요청을 해결하기 위해 이번 마일스톤에서 스테이징된 변경 사항에 대한 빠른 차이점 편집기 장식이 추가되었습니다. 이제 소스 제어 보기를 열 필요 없이 편집기에서 바로 스테이징된 변경 사항을 볼 수 있습니다.

다음 테마 토큰을 사용하여 스테이징된 변경 사항 빠른 차이점 장식의 색상을 사용자 정의할 수 있습니다: editorGutter.addedSecondaryBackground, editorGutter.modifiedSecondaryBackground, editorGutter.deletedSecondaryBackground.

스테이징된 변경 사항에 대한 빠른 차이점 장식을 보지 않으려면 편집기 여백 컨텍스트 메뉴에서 사용할 수 있는 차이점 장식 하위 메뉴를 사용하여 숨길 수 있습니다.

디버깅

분해 보기 컨텍스트 메뉴

커뮤니티 기여 덕분에 이제 분해 보기에 컨텍스트 메뉴가 생겼습니다.

Screenshot that shows the context menu in the Disassembly view.

JavaScript 디버거 네트워크 보기

최신 Node.js 버전은 네트워크 디버깅 기능을 향상시켰습니다. 실험적인 네트워크 보기는 이를 잘 지원하는 최신 Node.js 버전(v22.14.0 이상)에서 기본적으로 활성화됩니다.

언어

CSS 및 HTML에 대한 브라우저 지원 보기

CSS 속성, HTML 요소 또는 HTML 속성에 마우스를 올리면 이제 Baseline을 사용하여 해당 속성 또는 요소가 브라우저에서 얼마나 잘 지원되는지에 대한 요약을 볼 수 있습니다.

Screenshot that shows baseline browser support in the CSS hover.

.*.env 파일에 대한 기본 구문 강조 표시

.*.env 파일 이름 형식은 이제 .ini 파일로 구문 강조 표시됩니다.

JavaScript 및 TypeScript에 대한 확장 가능한 호버 (실험적)

설정: typescript.experimental.expandableHover

JavaScript 및 TypeScript에 대한 확장 가능한 호버 기능을 계속해서 개선했습니다. 이 기능을 사용하면 호버 컨트롤의 +-를 사용하여 더 많은 또는 더 적은 유형 정보를 표시할 수 있습니다.

이 기능은 여전히 실험적이지만, typescript.experimental.expandableHover을 활성화하여 오늘 바로 시도해 볼 수 있습니다. TypeScript 버전 5.9 이상을 사용해야 하며, 예를 들어 TypeScript nightly 확장 프로그램을 설치해야 합니다.

원격 개발

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

Dev 컨테이너 지침 파일

Dev Container 기능 및 이미지는 이제 도구와 구성을 설명하는 지침 파일을 포함합니다. VS Code 채팅은 이 컨텍스트를 자동으로 사용하여 개발 중에 제안의 관련성과 정확성을 향상시킬 수 있습니다.

확장 프로그램 기여

Python

분기 범위 지원

Python에 대한 테스트 탐색기에서 이제 분기 범위가 지원됩니다! 이 기능을 사용하려면 coveragepy 버전이 7.7 이상이어야 합니다. pip install coverage==7.7을 실행하여 coverage를 업그레이드할 수 있습니다.

Python 환경 빠른 생성 명령

Python Environments 확장 프로그램에 빠른 생성 지원이 추가되어 환경 생성 프로세스가 더욱 원활해졌습니다. 빠른 생성은 머신에서 최신 Python 버전을 감지하여 가상 환경을 생성하고 한 번의 클릭으로 작업 공간 종속성을 설치하여 새로운 가상 환경을 만드는 데 필요한 입력을 최소화합니다. 이렇게 하면 venv 기반 환경의 경우 작업 공간에 .venv가 생성되고 conda 기반 환경의 경우 .conda가 생성됩니다. 명령 팔레트의 Python: Create Environment 명령을 통해 빠른 생성을 액세스할 수 있습니다.

Screenshot showing Quick Create in the Python: Create Environment quick pick.

Python 환경 채팅 도구

Python Environments 확장 프로그램(미리 보기)에 이제 두 가지 채팅 도구가 포함되었습니다: "Get Python Environment Information" 및 "Install Python Package". 이러한 도구를 사용하려면 프롬프트에 #pythonGetEnvironmentInfo #pythonInstallPackage를 추가하여 직접 참조하거나, 에이전트 모드가 해당되는 경우 자동으로 도구를 호출합니다. 이러한 도구는 파일 또는 작업 공간 컨텍스트를 기반으로 적절한 환경 정보를 원활하게 감지하고 정확한 환경 해결로 패키지 설치를 처리합니다.

Pylance 사용 시 색상 선택기

Pylance는 이제 Python 파일에서 인식된 색상 값에 대해 편집기 내에 대화형 색상 스와치를 직접 표시할 수 있으므로 실시간으로 색상을 시각화하고 선택하기가 더 쉬워집니다. 이를 사용해 보려면 python.analysis.enableColorPicker을 활성화할 수 있습니다. 지원되는 형식에는 #RGB(#001122와 같음) 및 #RGBA(#001122FF와 같음)가 포함됩니다.

Screenshot showing the color swatch displayed in the editor next to #RGB color format.

AI 코드 액션: 형식 문자열 변환 (실험적)

Pylance를 사용할 때 문자열 연결을 f-문자열 또는 format()으로 변환하는 새로운 실험적 AI 코드 액션이 있습니다. 이를 사용해 보려면 변환하려는 문자열의 기호를 선택할 때 전구에서 **Copilot으로 f-문자열로 변환** 또는 **Copilot으로 format() 호출로 변환** 코드 액션을 선택하거나 Ctrl + ./Cmd + .을 통해 선택하십시오.

Screenshot showing the convert strings Code Actions, powered by AI.

이 환경은 다음 설정을 통해 활성화됩니다.

"python.analysis.aiCodeActions": {"convertFormatString": true}

GitHub Pull Requests 및 Issues

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

  • 활성 풀 리퀘스트에 대한 질문을 채팅으로 문의하세요. 예: "Address all comments in the #activePullRequest".
  • 풀 리퀘스트를 볼 수 있듯이 웹뷰에서 이슈를 볼 수 있습니다.
  • "Pull Requests", "Issues", "Notifications" 보기에 대한 개선 및 정렬.
  • GitHub의 Project Padawan 릴리스를 위해 이슈를 Copilot에 할당하고, Copilot을 @-멘션하고, UI에 올바르게 표시되도록 준비했습니다.

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

확장 프로그램 작성

텍스트 인코딩

VS Code에서 텍스트 인코딩 작업을 위한 API를 최종 확정했습니다.

구체적으로, 이 새로운 API를 사용하면 다음을 수행할 수 있습니다.

  • TextDocument의 현재 encoding 가져오기
  • 특정 encoding으로 TextDocument 열기
  • 특정 encoding으로 stringUint8Array로 인코딩
  • 특정 encoding을 사용하여 Uint8Arraystring으로 디코딩

확장 프로그램에 대한 ESM 지원

NodeJS 확장 프로그램 호스트는 이제 JavaScript 모듈(ESM)을 사용하는 확장 프로그램을 지원합니다. 필요한 것은 확장 프로그램의 package.json 파일에 "type": "module" 항목뿐입니다. 이를 통해 JavaScript 코드는 importexport 문, 특수 모듈 import('vscode')를 사용할 수 있습니다. 샘플은 다음에서 찾을 수 있습니다: https://github.com/jrieken/vscode-esm-sample-extension.

ESM 지원은 아직 웹 워커 확장 프로그램 호스트에는 적용되지 않는다는 점에 유의하십시오. 해결해야 할 기술적 과제가 있습니다. https://github.com/microsoft/vscode/issues/130367에서 업데이트를 게시할 것입니다. 계속 지켜봐 주세요!

제안된 API

이미지에 대한 도구 호출

지난 버전에서 확장 프로그램이 이미지를 첨부하고 언어 모델에 비전 요청을 보낼 수 있도록 제안 API를 추가했습니다. 이번 버전에서는 도구 호출 결과에도 이미지를 포함하도록 이 API를 확장했습니다.

사용 예시를 확인하고 이 API의 상태를 최신으로 유지하려면 이 API 제안 이슈를 확인하세요.

확장 프로그램에서 제공하는 MCP 서버

확장 프로그램은 새로운 제안 API를 사용하여 프로그래밍 방식으로 서버를 편집기에 기여할 수 있습니다. 이는 사용자가 설정 또는 mcp.json에서 각 서버에 대한 구성을 하드코딩하는 대안입니다.

이 API에 관심이 있다면 샘플API 제안 이슈를 확인하여 API 상태를 최신으로 유지하세요.

MCP 도구 주석

VS Code는 이제 적절한 도구 주석으로 구성된 도구가 있는 MCP 서버의 사람이 읽을 수 있는 이름을 표시합니다. 또한 주석에서 readOnlyHint: true로 표시된 도구는 사용자 확인 없이 실행할 수 있습니다.

가변 줄 높이

IModelDecorationOptions 유형에서 줄 높이 값을 설정하여 Monaco 편집기에 가변 줄 높이를 정의할 수 있습니다. 한 줄에 두 개의 줄 높이가 설정된 경우, 더 높은 값이 해당 줄에 사용됩니다.

현재 단순성을 위해 줄 높이는 해당 장식 범위의 첫 번째 줄에만 설정된다는 점에 유의하십시오. 다음 화면 녹화에서 24행과 32행은 기본값보다 큰 줄 높이로 렌더링됩니다.

이 작업은 아직 확장 프로그램에서 사용할 수 없지만, 추가 테스트 후 배포될 예정입니다.

주요 수정 사항

  • 244939 - 개인 Microsoft 계정이 매우 빠르게 로그아웃됩니다 (몇 분에서 몇 시간)

감사합니다

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

이슈 추적

이슈 추적에 대한 기여

풀 리퀘스트

vscode 기여

vscode-css-languageservice에 대한 기여

vscode-js-debug 기여

vscode-json-languageservice 기여

vscode-jupyter 기여

vscode-mypy에 대한 기여

vscode-notebook-renderers에 대한 기여

vscode-pull-request-github 기여

vscode-python-debugger 기여

vscode-python-environments 기여

language-server-protocol 기여

monaco-editor 기여

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