블로그로 돌아가기

VS Code용 프록시: 기업 또는 거주 프록시를 통한 확장 및 설정 동기화 설정

Visual Studio Code에서 프록시를 설정하는 방법을 설명합니다. 이를 통해 확장 프로그램 동기화 및 설정 동기화가 오류 없이 작동하며, 기업 방화벽 뒤나 차단된 지역에서도 가능합니다.

📅2026년 7월 21일
```html

Visual Studio Code는 장치 간에 확장 프로그램, 설정 및 스니펫을 동기화할 수 있지만, 이는 종종 기업 방화벽, 엄격한 필터링이 있는 사무실 네트워크 또는 제한된 접근이 있는 지역에서 사용할 수 없는 Microsoft 서버를 통해 작동합니다. 결과적으로 확장 마켓플레이스가 멈추고, 설정 동기화가 연결되지 않으며, 업데이트가 다운로드되지 않습니다. 이 기사에서는 VS Code에서 프록시를 올바르게 설정하여 이러한 문제를 영원히 해결하는 방법을 설명합니다.

일부 네트워크에서 VS Code가 프록시 없이 작동하지 않는 이유

Visual Studio Code는 단순한 텍스트 편집기가 아닙니다. 내부적으로는 외부 서버에 지속적으로 요청을 보냅니다: marketplace.visualstudio.com에서 확장 프로그램 업데이트를 다운로드하고, vscode.dev 및 GitHub/Microsoft 계정 서버를 통해 설정을 동기화하며, 편집기 자체의 업데이트를 확인하고, 텔레메트리를 전송합니다(비활성화되지 않은 경우).

이러한 모든 요청은 표준 HTTPS 연결을 통해 이루어집니다. 여기서 문제가 발생하기 시작합니다:

  • 기업 네트워크 — 시스템 관리자가 인터넷에 직접 접속하는 것을 차단하고 모든 트래픽을 기업 프록시 서버를 통해 우회하도록 요구합니다. VS Code는 이를 "모른다"며 연결할 수 없습니다.
  • 화이트리스트가 있는 사무실 방화벽 — 특정 도메인만 허용되며, marketplace.visualstudio.com는 이 목록에 포함되지 않습니다.
  • 지역 제한 — 일부 국가 및 지역에서는 Microsoft 서비스에 대한 접근이 제한되거나 불안정합니다. 필요한 국가의 IP를 가진 프록시가 문제를 해결합니다.
  • VPN 충돌 — 일부 기업 VPN은 트래픽을 가로채지만 올바르게 전달하지 않아 VS Code가 마켓플레이스와의 연결을 잃습니다.
  • 불안정한 인터넷 + 캐시가 있는 프록시 — 프록시 서버는 확장 프로그램 패킷을 캐시하여 느린 연결을 가진 팀에서 설치 속도를 높일 수 있습니다.

이러한 문제의 증상은 유사합니다: 확장 프로그램이 설치되지 않거나 다운로드 중에 멈추고, 설정 동기화가 인증 오류를 발생시키거나 "연결할 수 없음" 오류가 발생하며, VS Code 업데이트가 다운로드되지 않고, 출력 패널에 ECONNREFUSED 또는 ETIMEDOUT 오류가 표시됩니다.

VS Code의 프록시 처리 방식: 알아야 할 사항

VS Code는 Electron을 기반으로 하며, 네트워크 요청을 위해 Chromium 엔진을 사용합니다. 이는 프록시 설정이 브라우저와 유사하게 작동함을 의미하며, 편집기는 HTTP, HTTPS 및 SOCKS5 프록시를 지원합니다.

VS Code가 프록시 설정을 찾는 계층 구조를 이해하는 것이 중요합니다:

  1. 시스템 프록시 설정 — Windows/macOS/Linux에 시스템 프록시가 설정되어 있으면 VS Code가 자동으로 이를 인식합니다(매개변수 http.systemProxy).
  2. 환경 변수HTTP_PROXY, HTTPS_PROXY, NO_PROXY — Linux/macOS에서 표준적인 방법입니다.
  3. settings.json의 설정http.proxy 및 관련 옵션을 통해 프록시를 명시적으로 지정합니다.
  4. 명령줄 인수 — 프록시 플래그로 VS Code를 직접 실행할 수 있습니다.

우선순위: settings.json의 명시적 설정이 환경 변수를 덮어쓰며, 환경 변수는 시스템 설정을 덮어씁니다. 작동하지 않는 경우 이 순서로 확인하세요.

💡 중요한 점

VS Code는 두 개의 별도의 네트워크 스택을 사용합니다: 하나는 편집기 자체(Electron/Chromium)용이고, 다른 하나는 Node.js를 통해 자체 HTTP 요청을 할 수 있는 확장 프로그램용입니다. settings.json에서 프록시를 설정하면 두 스택 모두에 적용되지만, 일부 확장 프로그램은 시스템 설정을 무시하고 별도의 구성이 필요합니다.

settings.json을 통한 프록시 설정: 단계별

이것은 가장 신뢰할 수 있고 권장되는 방법입니다. settings.json의 설정은 VS Code의 모든 네트워크 요청에 전역적으로 적용됩니다.

1단계: settings.json 열기

Ctrl+Shift+P (또는 Mac에서는 Cmd+Shift+P)를 눌러 “Open User Settings (JSON)”를 입력하고 해당 항목을 선택합니다. 사용자 설정 파일이 열립니다.

2단계: 프록시 매개변수 추가

필요한 문자열을 JSON 객체 안에 삽입합니다. 다양한 유형의 프록시에 대한 예시:

HTTP/HTTPS 프록시 (인증 없음):

{
  "http.proxy": "http://192.168.1.100:3128",
  "http.proxyStrictSSL": false
}

HTTP/HTTPS 프록시 (로그인 및 비밀번호 포함):

{
  "http.proxy": "http://username:password@proxy-host:3128",
  "http.proxyStrictSSL": false
}

SOCKS5 프록시:

{
  "http.proxy": "socks5://username:password@proxy-host:1080",
  "http.proxyStrictSSL": false
}

3단계: 매개변수 이해하기

매개변수 사용 시기
http.proxy 프록시 URL 기본 매개변수, 필수
http.proxyStrictSSL true / false false — 프록시가 자체 서명된 인증서를 사용하는 경우
http.proxyAuthorization Base64 문자열 로그인/비밀번호를 전달하는 대체 방법
http.noProxy 도메인 목록 프록시를 우회해야 하는 도메인 (localhost, 내부 호스트)
http.systemProxy on / off / override 시스템 프록시 관리 (VS Code 1.87+의 새로운 매개변수)

4단계: VS Code 재시작

settings.json을 저장한 후, VS Code를 완전히 종료하고 다시 시작합니다. 부분 재시작(창 새로 고침)은 때때로 새로운 네트워크 설정을 적용하지 않을 수 있습니다.

환경 변수를 통한 프록시 설정 (HTTP_PROXY / HTTPS_PROXY)

이 방법은 특히 Linux 및 macOS에서 유용하며, 시스템 수준에서 프록시가 설정되어 모든 개발 도구에 적용되어야 할 때 유용합니다 — VS Code뿐만 아니라 npm, pip, git 등에도 적용됩니다.

Linux / macOS — 영구 설정

다음 내용을 ~/.bashrc, ~/.zshrc 또는 ~/.profile에 추가합니다:

export HTTP_PROXY="http://username:password@proxy-host:3128"
export HTTPS_PROXY="http://username:password@proxy-host:3128"
export NO_PROXY="localhost,127.0.0.1,*.local,*.internal"

그 후 source ~/.bashrc (또는 세션을 다시 시작) 명령을 실행하고, 터미널에서 code . 명령으로 VS Code를 실행합니다 — 변수는 상속됩니다.

Windows — 시스템 변수를 통해 설정

"시스템 속성" → "고급 시스템 설정" → "환경 변수"를 엽니다. 사용자 변수(또는 모든 사용자에게 적용하기 위해 시스템 변수) 섹션에 HTTP_PROXYHTTPS_PROXY 변수를 추가합니다. 저장 후 VS Code를 재시작합니다.

명령줄에서 프록시를 통해 VS Code 직접 실행

빠르게 확인할 필요가 있을 경우:

# Linux/macOS
HTTP_PROXY=http://proxy-host:3128 HTTPS_PROXY=http://proxy-host:3128 code .

# Windows PowerShell
$env:HTTP_PROXY="http://proxy-host:3128"; $env:HTTPS_PROXY="http://proxy-host:3128"; code .

프록시를 통한 설정 동기화: 문제 진단 및 해결

설정 동기화는 VS Code의 내장 기능으로, Microsoft 계정이나 GitHub을 통해 장치 간에 설정, 확장 프로그램, 스니펫, 단축키 및 프로필을 동기화합니다. 이는 Microsoft 및 GitHub 서버에 대한 HTTPS 요청을 통해 작동하며, 이때 프록시가 매우 중요합니다.

프록시를 통한 설정 동기화의 일반적인 오류

오류 원인 해결 방법
“서버에 연결할 수 없음” 프록시가 설정되지 않았거나 차단됨 settings.json에서 http.proxy 설정
“인증 실패” 프록시가 OAuth 토큰을 가로챔 *.microsoft.com에 대한 SSL 검사를 비활성화
“동기화가 활성화되었지만 동기화되지 않음” 기업 프록시가 WebSocket을 차단함 WebSocket을 지원하는 프록시 사용
동기화가 “동기화 중...”에서 멈춤 느린 프록시를 통한 연결 타임아웃 더 빠른 프록시로 변경

출력을 통한 진단

View → Output를 열고 드롭다운 목록에서 “Settings Sync”를 선택합니다. 여기에서 모든 연결 시도와 오류 코드를 확인할 수 있습니다. ECONNREFUSED, 407 Proxy Authentication Required 또는 CERT_UNTRUSTED와 같은 문자열을 찾으세요 — 각 코드는 프록시와 관련된 특정 문제를 나타냅니다.

407 오류가 표시되면 프록시가 인증을 요구하므로 URL 프록시에 로그인 및 비밀번호를 추가하세요. CERT_UNTRUSTED 오류가 표시되면 "http.proxyStrictSSL": false를 설정하거나 기업 CA의 루트 인증서를 추가하세요.

Settings Sync에 접근해야 하는 도메인

프록시를 통해 다음 호스트에 접근할 수 있는지 확인하세요:

  • login.microsoftonline.com — Microsoft 계정을 통한 인증
  • github.com — GitHub을 통한 인증
  • api.github.com — Gist를 통한 동기화를 위한 GitHub API
  • vscode.dev — VS Code 동기화 서비스
  • *.vscode-cdn.net — VS Code 리소스를 위한 CDN

확장 마켓플레이스: 확장 프로그램이 설치되지 않는 이유 및 해결 방법

VS Code의 마켓플레이스는 marketplace.visualstudio.com 도메인과 Microsoft의 CDN 서버를 통해 작동합니다. 프록시가 올바르게 설정되어 있다면 확장 프로그램 설치가 원활하게 이루어집니다. 그러나 몇 가지 특정 문제가 있습니다.

확장 프로그램이 설치되지만 작동하지 않음

많은 확장 프로그램이 시작 시 자체 네트워크 요청을 수행합니다 — 예를 들어, 언어 서버(LSP), 바이너리 종속성 또는 데이터베이스 업데이트를 다운로드합니다. 이러한 요청은 확장 프로그램 내의 Node.js를 통해 이루어지며, VS Code의 프록시 설정을 따르지만, 확장 프로그램이 HTTP_PROXY 변수를 고려하여 작성된 경우에만 적용됩니다.

만약 확장 프로그램이 프록시 뒤에서 여전히 작동하지 않는다면, 해당 문서를 확인하세요. 많은 인기 있는 확장 프로그램은 자체 프록시 설정을 가지고 있습니다. 예를 들어:

  • Python (Pylance/Pylint) — 시스템 환경 변수를 사용합니다.
  • ESLint, Prettier — 로컬에서 작동하며 프록시가 필요하지 않습니다.
  • GitHub Copilotapi.github.com에 접근해야 하며, settings.json에서 프록시를 가져옵니다.
  • Remote - SSH — SSH 터널을 위해 프록시가 필요하며, SSH 구성에서 별도로 설정해야 합니다.
  • Docker — 시스템의 Docker daemon 프록시를 사용합니다.

확장 프로그램을 수동으로 설치하기 (오프라인)

프록시가 사용 불가능하거나 불안정한 경우, .vsix 파일을 통해 확장 프로그램을 수동으로 설치할 수 있습니다. 인터넷에 접근할 수 있는 머신에서 marketplace.visualstudio.com에서 확장 프로그램 파일을 다운로드한 후, VS Code에서 Extensions → ··· → Install from VSIX를 선택합니다.

VS Code에 적합한 프록시 유형 선택하기

프록시 유형의 선택은 작업의 요구 사항에 따라 다릅니다. 개발에 적용 가능한 주요 옵션을 살펴보겠습니다.

프록시 유형 속도 신뢰성 VS Code에 적합한 경우
데이터 센터 프록시 ⚡ 빠름 ✅ 안정적 기업 제한 우회, 확장 프로그램 다운로드, CI/CD 파이프라인
주거용 프록시 🔄 보통 ✅ 높은 신뢰성 지리적으로 보호된 리소스에 접근, 특정 지역에서 테스트
모바일 프록시 🔄 보통 ✅ 최대 신뢰성 VS Code에는 드물게 필요하지만, 지리적 테스트가 필요한 모바일 애플리케이션 개발에 유용합니다.
기업 프록시 (Squid, ISA) ⚡ 빠름 ⚠️ 설정에 따라 다름 사무실 환경, 회사 정책에 따라 필수

대부분의 개발자에게는 기업 제한을 우회하거나 Microsoft 서버에 대한 접근이 불안정한 국가에서 작업할 때 데이터 센터 프록시가 최적의 선택입니다 — 빠르고 안정적이며 패키지 다운로드 및 설정 동기화와 같은 기술적 작업에 잘 맞습니다.

특정 지리적 지역에서 애플리케이션을 테스트해야 하는 경우(예: 독일이나 미국의 사용자에게 서비스가 어떻게 작동하는지 확인)에는 필요한 국가의 실제 IP를 가진 주거용 프록시가 유용합니다.

SSL 검사 기능이 있는 기업 프록시: 특별한 경우

SSL 검사 기능이 있는 기업 프록시는 개발자에게 별도의 골칫거리가 됩니다. 이러한 프록시는 HTTPS 트래픽을 해독하고 검사한 후, 기업 인증서로 다시 암호화합니다. 결과적으로 VS Code는 "알 수 없는" 인증서를 감지하고 작동을 거부합니다.

증상

  • 출력에서 CERT_UNTRUSTED 또는 unable to verify the first certificate 오류
  • 프록시가 올바르게 설정되었음에도 확장 프로그램이 설치되지 않음
  • 설정 동기화가 인증되지 않음
  • npm 및 pip도 인증서에 대해 오류 발생

해결 방법 1: SSL 검사 비활성화 (빠르지만 덜 안전함)

{
  "http.proxyStrictSSL": false
}

이는 프록시의 SSL 인증서 검사를 비활성화하는 빠른 해결책입니다. 신뢰할 수 있는 프록시가 있는 내부 기업 네트워크에 적합합니다.

해결 방법 2: 기업 CA 인증서 추가 (올바른 방법)

시스템 관리자에게 기업 루트 인증서(파일 .pem 또는 .crt)를 요청하고, 이를 설정에 추가합니다:

{
  "http.proxy": "http://corporate-proxy:3128",
  "http.proxyStrictSSL": true,
  "http.proxyCertificates": true
}

또한 인증서를 시스템 OS의 저장소에 추가하세요 — VS Code는 1.40 버전부터 시스템 인증서를 사용합니다. Windows에서는 certmgr.msc를 통해 "신뢰할 수 있는 루트 인증 기관"에 인증서를 설치하면 됩니다. Linux에서는 인증서를 /usr/local/share/ca-certificates/에 추가하고 update-ca-certificates 명령을 실행합니다.

해결 방법 3: NODE_EXTRA_CA_CERTS 변수

VS Code와 그 확장 프로그램은 Node.js에서 작동하므로, 환경 변수를 통해 추가 CA 인증서를 지정할 수 있습니다:

# Linux/macOS
export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca.pem"

# Windows PowerShell
$env:NODE_EXTRA_CA_CERTS="C:\certs\corporate-ca.pem"

체크리스트: VS Code + 프록시가 올바르게 작동하는지 확인하기

이 체크리스트를 사용하여 모든 설정이 올바르게 구성되었는지 확인하거나 문제의 원인을 빠르게 찾을 수 있습니다.

✅ 기본 프록시 설정

  • 프록시 매개변수 http.proxysettings.json에 올바른 URL로 설정됨
  • 프록시 URL에 스킴이 포함되어 있음: http:// 또는 socks5://
  • 프록시가 인증을 요구하는 경우 — 로그인 및 비밀번호가 URL에 포함됨
  • 설정 변경 후 VS Code가 완전히 재시작됨

✅ SSL 및 인증서

  • 프록시가 SSL 검사를 수행하는 경우 — 기업 CA 인증서가 설치됨
  • 또는 임시 해결책으로 "http.proxyStrictSSL": false가 설정됨
  • 출력에 CERT_UNTRUSTED 오류가 없음

✅ 설정 동기화

  • 프록시를 통해 login.microsoftonline.comvscode.dev 도메인에 접근 가능
  • Microsoft 계정 또는 GitHub을 통한 인증이 성공적으로 이루어짐
  • 출력 → 설정 동기화에 연결 오류가 없음
  • 상태 표시줄의 동기화 상태가 활성 아이콘을 표시함

✅ 마켓플레이스 및 확장 프로그램

  • 마켓플레이스에서 확장 프로그램 검색이 작동하고 결과가 표시됨
  • 확장 프로그램 설치가 오류 없이 완료됨
  • 네트워크 접근이 필요한 확장 프로그램(Copilot, Remote)이 올바르게 작동함
  • 확장 프로그램 업데이트가 자동으로 다운로드됨

✅ 추가 개발 도구

  • npm이 프록시를 통해 작동하도록 설정됨: npm config set proxy http://proxy:3128
  • git이 설정됨: git config --global http.proxy http://proxy:3128
  • pip (Python 사용 시): HTTP_PROXY 변수가 설정됨

결론

VS Code에서 프록시를 설정하는 것은 한 번만 해결하면 되며, 멈춘 마켓플레이스, 작동하지 않는 설정 동기화 및 종속성을 다운로드할 수 없는 확장 프로그램 문제를 영원히 없앨 수 있습니다. 이 기사에서의 주요 요점은 다음과 같습니다:

  • 가장 신뢰할 수 있는 방법http.proxysettings.json에 설정하는 것입니다: 편집기와 대부분의 확장 프로그램 모두에서 작동합니다.
  • 환경 변수 (HTTP_PROXY, HTTPS_PROXY) — 개발 환경 전체에 대한 프록시 설정을 통합하는 데 유용합니다.
  • SSL 검사 기능이 있는 기업 프록시proxyStrictSSL를 비활성화하거나 기업 CA 인증서를 설치해야 합니다.
  • 설정 동기화는 추가 설정 없이 프록시를 통해 작동합니다 — Microsoft 및 GitHub 도메인에 접근할 수 있는 것만 확인하면 됩니다.
  • 진단은 항상 Output → Settings Sync 및 Output → Extensions에서 시작됩니다 — 모든 네트워크 오류와 코드가 표시됩니다.

인터넷 접근이 제한된 환경에서 작업하거나 특정 지리적 지역에서 애플리케이션을 테스트해야 하는 경우, 데이터 센터 프록시를 사용하는 것이 안정적이고 빠른 개발 도구 작업을 위해 추천됩니다 — 높은 연결 속도를 제공하며 패키지 다운로드, 설정 동기화 및 원격 리포지토리 작업과 같은 기술적 작업에 적합합니다.

```