원격 분석
Visual Studio Code는 제품 개선 방법을 이해하는 데 도움이 되는 텔레메트리 데이터를 수집합니다. 예를 들어, 이 사용량 데이터는 시작 시간이 느린 문제와 같은 문제를 디버깅하고 새 기능을 우선적으로 처리하는 데 도움이 됩니다. 또한 이 데이터를 사용하여 새 기능을 롤아웃하여 일반적으로 사용 가능하기 전에 일부 사용자에게 제공합니다.
이 데이터에서 제공하는 인사이트에 감사하지만, 모든 사람이 사용량 데이터를 보내고 싶어하지 않는다는 것을 알고 있으며 텔레메트리 보고 비활성화에 설명된 대로 텔레메트리를 비활성화할 수 있습니다. 또한 개인 정보 보호 정책을 읽고 자세히 알아보세요.
텔레메트리 데이터 유형
VS Code와 이 페이지는 텔레메트리와 관련하여 세 가지 다른 유형의 데이터를 참조합니다.
크래시 보고서 - 크래시 보고서는 VS Code가 크래시될 때 진단 정보를 수집하여 Microsoft로 보내 크래시가 발생한 이유와 향후 크래시를 방지하는 데 필요한 변경 사항을 이해하는 데 도움을 줍니다.
오류 텔레메트리 - 오류 텔레메트리는 애플리케이션을 크래시시키지 않지만 예기치 않은 오류에 대한 정보를 수집합니다.
사용량 데이터 - 사용량 데이터는 VS Code에서 기능이 어떻게 사용되고 성능이 어떻게 발휘되는지에 대한 정보를 수집하여 향후 제품 개선을 우선적으로 처리하는 데 도움이 됩니다.
텔레메트리 보고 비활성화
telemetry.telemetryLevel 사용자 설정을 통해 한 번의 설정으로 전송하는 다양한 유형의 텔레메트리를 제어할 수 있습니다. 다음은 telemetry.telemetryLevel의 각 값과 함께 전송되는 다양한 유형의 데이터에 대한 표입니다.
| 크래시 보고서 | 오류 텔레메트리 | 사용량 데이터 | |
|---|---|---|---|
| 모두 | ✓ | ✓ | ✓ |
| 오류 | ✓ | ✓ | - |
| 크래시 | ✓ | - | - |
| 끔 | - | - | - |
예를 들어 Microsoft로 텔레메트리 데이터를 보내고 싶지 않다면 telemetry.telemetryLevel 사용자 설정을 off로 설정할 수 있습니다. 이렇게 하면 앞으로 VS Code에서 발생하는 모든 텔레메트리 이벤트가 음소거됩니다. 설정을 비활성화할 때까지 텔레메트리 정보가 수집 및 전송되었을 수 있습니다.

JSON 편집기를 사용하여 설정을 구성하는 경우 다음 줄을 추가하세요.
"telemetry.telemetryLevel": "off"
A/B 실험에 참여하고 새 기능에 대한 조기 액세스 권한을 얻으려면 telemetry.telemetryLevel을 all로 설정하여 사용량 데이터가 활성화되어 있어야 합니다.
기능 가용성 및 텔레메트리
VS Code는 A/B 실험 시스템을 사용하여 새로운 기능을 일반에 공개하기 전에 일부 사용자에게 롤아웃합니다. 이를 통해 모든 사용자에게 롤아웃하기 전에 새 기능이 다양한 사용자 집단에서 예상대로 작동하는지 검증할 수 있습니다. 실험에 참여함으로써 VS Code의 품질을 개선하고 초기 피드백을 통해 제품의 미래를 형성하는 데 도움을 줄 수 있습니다.
이 실험 시스템을 활성화하기 위해 VS Code는 사용량 텔레메트리 데이터를 사용하여 새 기능을 받을 사용자를 결정하고 기능이 어떻게 사용되는지 검증합니다. telemetry.telemetryLevel을 error, crash 또는 off로 설정하여 사용량 데이터 텔레메트리를 비활성화하면 기능 사용량을 평가할 수 없으므로 실험이 비활성화됩니다. 결과적으로 새 기능의 롤아웃이 지연될 수 있습니다.
확장 프로그램 및 텔레메트리
VS Code를 사용하면 Microsoft 및 타사 확장 프로그램을 설치하여 제품에 기능을 추가할 수 있습니다. 이러한 확장 프로그램은 자체 사용량 데이터를 수집할 수 있으며 telemetry.telemetryLevel 설정으로 제어되지 않습니다. 특정 확장 프로그램의 설명서를 참조하여 텔레메트리 보고에 대해 알아보고 비활성화할 수 있는지 확인하세요.
확장 프로그램 개발자는 "확장 프로그램 개발자를 위해" 섹션에서 확장 프로그램 내에서 텔레메트리 모범 사례를 구현하는 방법에 대한 지침을 참조할 수 있습니다.
텔레메트리 이벤트 출력 채널
VS Code에서 전송되는 텔레메트리 이벤트를 검토하려면 명령 팔레트에서 개발자: 텔레메트리 보기 명령을 실행합니다(). 이 명령은 텔레메트리 이벤트에 대한 추적을 활성화하고 출력 패널에서 텔레메트리 출력 채널을 엽니다(⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H)). 텔레메트리 이벤트가 전송될 때 출력 채널에 이벤트 세부 정보가 표시됩니다.

텔레메트리 이벤트를 추적할 때 이벤트는 로컬 파일 telemetry.log에도 기록되며, 개발자: 로그 열기... 명령을 사용하고 드롭다운에서 텔레메트리를 선택하여 볼 수 있습니다.

텔레메트리 이벤트 추적을 비활성화하려면 VS Code 창을 다시 로드합니다(개발자: 창 다시 로드 명령).
모든 텔레메트리 이벤트 보기
VS Code에서 보낼 수 있는 모든 가능한 텔레메트리 이벤트를 보려면 CLI에서 --telemetry 플래그를 사용할 수 있습니다. 이렇게 하면 JSON 보고서가 생성되며, 이 보고서를 VS Code 내에서 볼 수 있습니다. 이러한 보고서는 빌드별로 생성되며 확장 프로그램 개발자가 루트 빌드 디렉토리에 telemetry.json 파일을 추가하지 않는 한 확장 프로그램 텔레메트리를 포함하지 않습니다.
예를 들어 code --telemetry > telemetry.json && code telemetry.json을 실행하면 현재 작업 디렉토리에 telemetry.json 파일이 생성된 다음 VS Code에서 열립니다. 텔레메트리 보고서의 길이가 길기 때문에 다음과 같이 파이프 출력을 할 수 없습니다: code --telemetry | code -.
아래 섹션에서는 텔레메트리를 분류하는 데 사용되는 이벤트 메타데이터, 목적 및 특별 처리 여부를 자세히 설명합니다.
이벤트 분류
classification 필드는 데이터 유형을 설명합니다.
SystemMetaData- VS Code에서 생성된 개인 식별이 불가능한 값입니다.CallstackOrException- 프로그램 실행 실패로 인한 오류입니다. 사용자 경로에서 제거된 스택 추적을 포함합니다.PublicNonPersonalData- 게시된 확장 프로그램 ID와 같이 사용자 생성 데이터로 공개적으로 사용 가능합니다.EndUserPseudonymizedInformation- 해당 사용자를 식별할 수 없도록 고유한 사용자를 식별하는 데 사용되는 해시입니다. 예를 들어, 해시된 Mac 주소입니다.
이벤트 목적
purpose 필드는 데이터 수집 이유를 설명합니다.
PerformanceAndHealth- VS Code 제품 및 서비스의 상태와 속도를 보장하기 위해.FeatureInsight- 기능 사용량을 이해하고 개발 투자를 어디에 계속할지 결정하기 위해.BusinessInsight- VS Code, Microsoft 및 GitHub의 비즈니스와 관련된 의사 결정을 내리기 위해.
이벤트 엔드포인트
endpoint 필드는 데이터가 전송되는 데이터 핸들러를 설명합니다. 일반적으로 추가적인 제거 및 보안을 통해 사용자 개인 정보를 보호해야 하는 특수 데이터에 적용됩니다.
GoogleAnalyticsId- 당사 웹사이트에서 Google Analytics 및 페이지 뷰 추적에 사용됩니다. 일반 데이터보다 민감한 방식으로 처리됩니다.MacAddressHash- VS Code 사용자를 식별하는 데 사용됩니다. 클라이언트 측에서 한 번 해시한 다음 파이프라인 측에서 다시 해시하여 특정 사용자를 식별할 수 없도록 합니다. 웹용 VS Code에서는 이 경우에 대한 UUID가 생성됩니다.none- 데이터에 특별한 처리가 필요하지 않습니다.
GDPR 및 VS Code
일반 데이터 보호 규정(GDPR)을 지원하는 것 외에도 VS Code 팀은 Microsoft 회사로서, 그리고 특히 VS Code 팀 내에서 개인 정보를 매우 중요하게 생각합니다.
GDPR 규정 준수를 보장하기 위해 VS Code에 여러 업데이트를 적용했으며, 여기에는 다음이 포함됩니다.
- 모든 기존 및 신규 사용자를 위해 제품 내에 알림을 배치하여 텔레메트리 수집 옵트아웃을 더 쉽게 만들었습니다.
- 전송하는 텔레메트리를 검토하고 분류했습니다 (OSS 코드베이스에 문서화됨).
- 수집하는 모든 데이터, 예를 들어 크래시 덤프에 대한 유효한 데이터 보존 정책을 갖도록 했습니다.
요약하자면, 모든 지역에 적용되는 이러한 관행은 유럽뿐만 아니라 모든 지역에 적용되도록 모든 사용자에게 올바른 일을 하기 위해 노력했습니다.
예상되는 질문 중 하나는 우리가 수집하는 데이터를 볼 수 있는지 여부입니다. 그러나 VS Code에는 사용자를 고유하게 식별할 수 있는 '로그인' 환경이 없기 때문에 이를 확인할 수 있는 신뢰할 수 있는 방법이 없습니다. 진단 목적으로 단일 사용자를 근사하는 데 도움이 되는 정보(데스크톱의 네트워크 어댑터 NIC 해시 및 웹의 무작위 할당 UUID 기반)를 보내지만 고유하다는 보장은 없습니다. 예를 들어 가상 머신(VM)은 NIC ID를 자주 순환하거나 풀에서 할당합니다. 이 기술은 문제를 해결하는 데 도움이 될 만큼 충분하지만 '귀하의 데이터를 제공'할 만큼 신뢰할 수는 없습니다.
GDPR 및 사용자 기대치에 대해 더 많이 알게 됨에 따라 접근 방식이 발전할 것으로 예상합니다. 사용자로부터 보내는 데이터는 매우 귀중하며 VS Code가 모든 사람에게 더 나은 제품이 되었기 때문에 크게 감사드립니다. 그리고 다시 한번, 개인 정보 보호에 대해 우려되는 경우 텔레메트리 보고 비활성화에 설명된 대로 텔레메트리 전송을 비활성화하는 기능을 제공합니다.
Visual Studio 제품군이 GDPR을 다루는 방법에 대한 자세한 내용은 GDPR용 Visual Studio 제품군 데이터 주체 요청에서 찾을 수 있습니다.
온라인 서비스 관리
크래시 보고 및 텔레메트리 외에도 VS Code는 제품 업데이트 다운로드, 확장 프로그램 찾기, 설치 및 업데이트, 설정 동기화 또는 설정 편집기 내에서 자연어 검색 제공과 같은 다양한 다른 목적으로 온라인 서비스를 사용합니다. 이러한 서비스를 사용하는 기능을 켜거나 끌 수 있습니다.
이러한 기능을 끄더라도 VS Code가 오프라인 모드로 전환되는 것은 아닙니다. 예를 들어 확장 프로그램 보기에서 확장 프로그램을 검색하면 VS Code가 여전히 온라인 VS Code 마켓플레이스를 검색합니다. 설정을 통해 VS Code가 사용자가 요청하지 않고 온라인 서비스와 통신하지 않도록 합니다.
파일 > 기본 설정 > 설정에서 태그 @tag:usesOnlineServices를 입력합니다. 이렇게 하면 온라인 서비스 사용을 제어하는 모든 설정이 표시되고 개별적으로 켜거나 끌 수 있습니다.

참고: VS Code 확장 프로그램도 온라인 서비스를 사용할 수 있으며 이러한 온라인 서비스 사용을 구성하기 위한 설정을 제공하지 않거나
@tag:usesOnlineServices를 검색할 때 표시되도록 설정을 등록하지 않을 수 있습니다. 온라인 서비스 사용에 대한 자세한 내용은 특정 확장 프로그램의 설명서를 참조하세요.
VS Code에서 사용하는 비 Microsoft 온라인 서비스
VS Code용 기본 제공 npm 지원 확장 프로그램은 https://registry.npmjs.org 및 https://registry.bower.io로 요청을 보냅니다.
VS Code용 기본 제공 TypeScript 및 JavaScript 언어 기능 확장 프로그램은 https://registry.npmjs.org의 @types 도메인을 쿼리합니다.
개발자: 개발자 도구 전환 또는 개발자: 웹뷰 개발자 도구 열기를 사용할 때 VS Code는 개발자 도구를 시작하는 데 필요한 데이터를 가져오기 위해 Google 서버와 통신할 수 있습니다.
확장 프로그램 추천
VS Code는 파일 유형, 작업 영역 및 환경을 기반으로 확장 프로그램 추천을 제공합니다. 파일 형식 추천은 사전 계산되거나 동적입니다. 작업 영역 및 환경 추천은 항상 사전 계산됩니다.
확장 프로그램이 추천되는 이유를 알고 싶으면 확장 프로그램의 세부 정보 페이지를 엽니다. 페이지 헤더에서 추천 이유를 찾을 수 있습니다.

사전 계산된 추천
VS Code는 어떤 확장 프로그램이 어떤 파일 유형과 작업 영역/폴더에 대해 활성화되는지에 대한 텔레메트리를 수집합니다. 특정 폴더는 각 폴더의 Git 원격에 대한 해시를 계산하여 식별됩니다.
이 정보를 사용하여 익명 추천을 사전 계산합니다. 사전 계산된 추천은 확장 프로그램이 추천되어야 하는 조건을 명확히 설명하는 지침입니다. 예를 들어, 두 확장 프로그램 A와 B 사이에 흥미로운 상관 관계를 볼 때 하나의 지침은 다음과 같습니다. 사용자가 확장 프로그램 A는 설치했지만 B는 설치하지 않은 경우 확장 프로그램 B를 추천합니다.
일부 사전 계산된 추천은 제품의 일부로 제공되며, 추가 사전 계산된 추천은 온라인 Microsoft 서비스에서 런타임에 가져옵니다. VS Code는 사용자 정보를 온라인 서비스로 보내지 않고 사전 계산된 추천을 독립적으로 평가하고 실행합니다.
동적 추천
VS Code에 사전 계산된 추천이 없는 파일 유형을 열면 해당 파일 유형을 지원한다고 선언하는 확장 프로그램에 대해 확장 프로그램 마켓플레이스에 문의합니다. 쿼리에서 설치되지 않은 확장 프로그램이 반환되면 VS Code에서 알림을 제공합니다.
확장 프로그램 개발자를 위해
확장 프로그램 가이드 텔레메트리 문서를 읽어보세요.
관련 리소스
- 텔레메트리 로그 수준 중앙 관리 - 조직의 텔레메트리 로그 수준을 설정하는 방법을 알아보세요.
- Visual Studio Code FAQ - 자주 묻는 질문을 참조하여 자세히 알아보세요.
- 사용자 및 작업 영역 설정 - VS Code를 사용자 지정하는 데 사용할 수 있는 옵션에 대해 알아보세요.