원격 개발 FAQ
이 문서는 Visual Studio Code 원격 개발 확장 기능별로 자주 묻는 질문을 다룹니다. 각 기능에 대한 자세한 내용은 SSH, 컨테이너 및 WSL 문서를 참조하세요. 또는 시작하기 튜토리얼을 통해 원격 환경에서 빠르게 시작할 수 있습니다.
GitHub Codespaces에 대한 질문은 GitHub Codespaces 설명서를 참조하세요.
일반
Visual Studio Code 원격 개발이란 무엇인가요?
Visual Studio Code 원격 개발 확장 기능 팩을 사용하면 컨테이너, 원격 컴퓨터(SSH 사용) 또는 Linux용 Windows 하위 시스템의 모든 폴더를 열고 VS Code의 전체 기능 집합을 활용할 수 있습니다. 즉, VS Code는 코드의 위치나 호스팅 방식에 관계없이 전체 IntelliSense(완성), 디버깅 등을 포함한 로컬 품질의 개발 환경을 제공할 수 있습니다.
로컬 편집에 비해 VS Code 원격 개발의 장점은 무엇인가요?
원격 개발의 몇 가지 이점은 다음과 같습니다.
- 로컬에서 실행하는 것과 다른 OS에서 편집, 빌드 또는 디버그할 수 있습니다.
- 대상 배포 환경과 일치하는 환경에서 개발할 수 있습니다.
- 로컬 컴퓨터보다 더 크거나 특수한 하드웨어를 개발에 사용할 수 있습니다.
- 클라우드 또는 고객 사이트와 같은 다른 위치에 저장된 코드 편집 기능입니다.
- 개발자 환경을 분리하여 충돌을 방지하고 보안을 개선하며 온보딩 속도를 높입니다.
네트워크 공유를 사용하거나 파일을 동기화하는 것과 비교하여 VS Code 원격 개발은 훨씬 뛰어난 성능과 개발 환경 및 도구에 대한 더 나은 제어를 제공합니다.
원격 개발 확장 기능은 GitHub Codespaces와 어떻게 관련되나요?
GitHub Codespaces는 VS Code와 새로운 브라우저 기반 편집기 모두에서 액세스할 수 있는 관리형 클라우드 호스팅 개발 환경을 제공하는 서비스입니다. 이 서비스를 통해 VS Code와 브라우저 기반 편집기는 SSH 서버나 직접 네트워크 경로 없이도 자체 호스팅 환경(데스크톱 또는 서버)에 액세스할 수 있습니다. GitHub Codespaces 설명서에서 자세한 내용을 읽을 수 있습니다.
원격 개발 및 Codespaces 확장 기능은 기술과 기능을 공유하지만, 원격 개발 확장 기능은 별도로 릴리스되며 GitHub Codespaces와 독립적으로 작동할 수 있습니다.
원격 개발 확장 기능은 어떻게 작동하나요?
Visual Studio Code 원격 개발을 사용하면 로컬 VS Code 설치가 "원격 서버"로 특정 명령의 실행을 이동하여 다른 컴퓨터(가상 또는 물리적)의 소스 코드 및 런타임 환경과 투명하게 상호 작용할 수 있습니다. VS Code Server는 원격 끝점에 연결할 때 VS Code에서 빠르게 설치되며 원격 작업 영역, 컴퓨터 및 파일 시스템과 직접 상호 작용하는 확장 기능을 호스트할 수 있습니다.

확장 기능에 대한 추가 정보는 원격 개발 지원을 참조하세요.
원격 개발 확장 기능은 원격 컴퓨터, VM 또는 컨테이너에 대한 액세스를 어떻게 보호하나요?
Visual Studio Code 원격 개발은 보안 셸과 같은 기존의 잘 알려진 전송을 사용하여 트래픽을 인증하고 보호합니다. 이러한 잘 알려진 보안 전송에 사용되는 포트 외에는 공개적으로 열려야 하는 포트가 없습니다.
주입되는 VS Code Server는 컴퓨터에 로그인한 것과 동일한 사용자로 실행되어 VS Code 및 확장 기능이 권한 없이 부적절한 권한 상승을 부여받지 않도록 합니다. 이 서버는 VS Code에서 시작 및 중지되며 사용자 또는 전역 로그인 또는 시작 스크립트에 연결되지 않습니다. VS Code가 서버의 수명 주기를 관리하므로 실행 여부에 대해 걱정할 필요가 없습니다.
VS Code Server를 독립적으로 설치하거나 사용할 수 있나요?
아니요. VS Code Server는 원격 개발 확장 기능의 구성 요소이며 VS Code 클라이언트에서 관리됩니다. 끝점에 연결할 때 VS Code에서 자동으로 설치 및 업데이트되며, 별도로 설치하면 빠르게 구식이 될 수 있습니다. 다른 클라이언트에서 사용하도록 의도되거나 라이선스가 부여되지 않았습니다.
VS Code Server의 연결 요구 사항은 무엇인가요?
VS Code Server를 설치하려면 로컬 컴퓨터가 다음 대상으로의 아웃바운드 HTTPS(포트 443) 연결이 가능해야 합니다.
update.code.visualstudio.comvscode.download.prss.microsoft.com
기본적으로 Remote - SSH는 원격 호스트에서 다운로드를 시도하고, 연결이 설정되면 VS Code Server를 로컬에서 다운로드한 후 원격으로 전송하는 방식으로 실패합니다. 이 동작은 remote.SSH.localServerDownload 설정을 사용하여 항상 로컬에서 다운로드한 다음 전송하거나, 로컬에서 다운로드하지 않도록 변경할 수 있습니다.
Dev Containers 확장 기능은 항상 로컬에서 다운로드하여 컨테이너로 전송합니다.
인터넷 연결 없이 확장 기능: VSIX에서 설치... 명령을 사용하여 확장 기능을 수동으로 설치할 수 있지만, 확장 기능 패널이나 devcontainer.json을 사용하여 확장 기능을 설치하는 경우 로컬 컴퓨터와 VS Code Server는 다음 대상으로의 아웃바운드 HTTPS(포트 443) 액세스가 필요합니다.
marketplace.visualstudio.com*.gallerycdn.vsassets.io(Azure CDN)
마지막으로, 일부 확장(C# 등)은 download.microsoft.com 또는 download.visualstudio.microsoft.com에서 보조 종속성을 다운로드합니다. 다른 확장(예: Visual Studio Live Share)에는 추가적인 연결 요구 사항이 있을 수 있습니다. 문제가 발생하는 경우 확장 문서에서 자세한 내용을 확인하십시오.
이 외의 모든 서버와 VS Code 클라이언트 간의 통신은 확장 기능에 따라 다음 전송 채널을 통해 이루어집니다.
- SSH: 인증된 보안 SSH 터널입니다.
- 컨테이너: Docker의 구성된 통신 채널(
docker exec사용). - WSL: 임의의 로컬 포트입니다.
VS Code 자체에서 액세스해야 하는 위치 목록은 네트워크 연결 문서에서 찾을 수 있습니다.
원격 - 확장 기능을 사용할 때 컨테이너 도구 확장 기능에서 로컬 컨테이너를 볼 수 없는 이유는 무엇인가요?
기본적으로 컨테이너 도구 확장 기능은 원격으로 실행됩니다. 이는 일부 경우에 합리적인 기본값이지만, VS Code가 원격 SSH 호스트, 컨테이너 또는 WSL에 연결되어 있을 때 확장 기능이 로컬 컨테이너를 표시하지 않을 수 있음을 의미합니다.
이 문제를 해결하기 위해 다음 솔루션 중 하나를 사용할 수 있습니다.
-
새 로컬 창(파일 > 새 창)을 열고 로컬 컨테이너 작업에 사용합니다.
-
Dev Containers 확장 기능을 설치하고 로컬 컨테이너를 봐야 하는 상황에서는 원격 탐색기를 사용합니다.
-
WSL 전용: WSL 2용 Docker 기술 미리 보기를 사용하거나 WSL 1에서 사용하도록 Docker Desktop 구성합니다.
-
Dev Containers 전용: Docker 소켓을 전달하고 컨테이너에 Docker CLI(만) 설치합니다.
-
extensionKind속성을 사용하여 확장 기능을ui로 강제 실행합니다. 그러나 이 경우 일부 명령이 작동하지 않을 수 있습니다.
원격 개발을 사용하는 데 호스트에 설치해야 하는 Linux 패키지 또는 라이브러리는 무엇인가요?
원격 개발은 커널 >= 4.18, glibc >=2.28, libstdc++ >= 3.4.25가 필요합니다. 최신 x86_64 glibc 기반 배포판이 가장 좋은 지원을 제공하지만, 정확한 요구 사항은 배포판마다 다를 수 있습니다.
musl 기반 Alpine Linux에 대한 지원은 Dev Containers 및 WSL 확장 기능에 대해 사용할 수 있으며, ARMv7l(AArch32) / ARMv8l(AArch64)은 Remote - SSH에서 사용할 수 있습니다. 그러나 특정 확장 기능의 기본 종속성으로 인해 비-x86_64 glibc 배포판에서 작동하지 않을 수 있습니다. 실험적인 ARMv8l(AArch64)은 VS Code Insiders에서만 사용할 수 있다는 점에 유의하십시오.
자세한 내용은 Linux 원격 개발을 참조하세요.
이전 Linux 배포판에서 VS Code Server를 실행할 수 있나요?
VS Code 릴리스 1.99(2025년 3월)부터 VS Code에서 제공하는 사전 빌드된 서버는 glibc 2.28 이상을 기반으로 하는 Linux 배포판과만 호환됩니다. 예를 들어 Debian 10, RHEL 8 또는 Ubuntu 20.04와 같은 배포판입니다.
VS Code는 여전히 사용자가 지원되지 않는 OS(glibc >= 2.28 및 libstdc++ >= 3.4.25가 없는 OS)에 Remote - SSH 확장 기능을 통해 연결할 수 있도록 허용합니다. 단, 이러한 필수 라이브러리 버전이 있는 sysroot를 제공하는 경우에 해당됩니다. 이 접근 방식을 통해 귀하와 귀하의 조직은 최신 Linux 배포판으로 마이그레이션할 시간을 더 확보할 수 있습니다.
| VS Code 버전 | 기본 요구 사항 | 참고 |
|---|---|---|
| >= 1.99.x | 커널 >= 4.18, glibc >=2.28, libstdc++ >= 3.4.25, binutils >= 2.29 | <없음> |
이 접근 방식은 기술적 해결책이며 공식적으로 지원되는 사용 시나리오는 아닙니다.
이 해결책에 대한 환경을 구성하려면 다음 단계를 따르세요.
-
sysroot 빌드
sysroot를 빌드하려면 Crosstool-ng를 사용하는 것이 좋습니다. 시작할 수 있는 몇 가지 예시 구성은 다음과 같습니다.
다음 예제 컨테이너는 Crosstool-ng가 설치된 환경을 갖는 데 사용할 수도 있습니다.
FROM ubuntu:latest RUN apt-get update RUN apt-get install -y gcc g++ gperf bison flex texinfo help2man make libncurses5-dev \ python3-dev autoconf automake libtool libtool-bin gawk wget bzip2 xz-utils unzip \ patch rsync meson ninja-build # Install crosstool-ng RUN wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.26.0.tar.bz2 RUN tar -xjf crosstool-ng-1.26.0.tar.bz2 RUN cd crosstool-ng-1.26.0 && ./configure --prefix=/crosstool-ng-1.26.0/out && make && make install ENV PATH=$PATH:/crosstool-ng-1.26.0/out/binCrosstool-ng 및 관련 구성이 준비된 환경이 있으면 다음 명령을 실행하여 sysroot를 생성합니다.
mkdir toolchain-dir cd toolchain-dir cp <path-to-config-file> .config ct-ng build -
VS Code 서버는 설치 과정에서 patchelf를 사용하여 sysroot에서 필요한 라이브러리를 사용합니다.
patchelf v0.17.x는 원격 서버에서 세그먼트 폴트를 유발하는 것으로 알려져 있습니다. patchelf >=v0.18.x 사용을 권장합니다.
-
원격 호스트에 patchelf 바이너리 및 sysroot를 설치합니다.
-
다음 3가지 환경 변수를 만듭니다.
이제 Remote - SSH 확장 기능을 사용하여 원격으로 연결할 수 있습니다. 성공적으로 연결되면 VS Code는 지원되지 않는 연결에 대한 대화 상자와 배너 메시지를 표시합니다.
확장 팩 대신 개별 확장 기능을 설치할 수 있나요?
예. 원격 개발 확장 기능 팩은 릴리스될 때마다 최신 원격 기능에 모두 액세스할 수 있는 편리한 방법을 제공합니다. 하지만 항상 Marketplace 또는 VS Code 확장 기능 보기에서 개별 확장 기능을 설치할 수 있습니다.
확장 기능 설정을 검토하고 구성하려면 어떻게 해야 하나요?
Visual Studio Code의 다른 부분과 마찬가지로, 확장 기능을 열어 해당 설정에서 각 원격 개발 확장 기능을 사용자 지정할 수 있습니다. Dev Containers를 예로 들면, 확장 기능 보기(Windows, Linux Ctrl+Shift+X)에서 확장 기능을 열고 기능 기여로 이동하여 모든 Dev Containers 설정을 검토할 수 있습니다.

WSL
WSL을 터미널로 사용하는 것에 비해 확장 기능의 장점은 무엇인가요?
WSL을 Windows에서 실행되는 Linux 머신으로 생각할 수 있습니다. 여기서 Windows 설정을 방해하지 않고 Python, Go, Rust 등과 같은 Linux별 프레임워크/도구를 설치할 수 있습니다. 그런 다음 VS Code 및 WSL 확장 기능을 사용하여 Windows에 설치된 것과 분리된 WSL에 설치된 컨텍스트에서 개발할 수 있습니다.
예를 들어, WSL에 Go 스택(컴파일러, 디버거, 린터 등)을 설치할 수 있습니다. Windows에서만 VS Code를 실행하는 경우 스마트 완성, 디버깅, 정의로 이동 등과 같은 기능을 사용하려면 Windows에도 동일한 Go 스택을 설치해야 합니다. 또한 언어 서비스는 Windows에서 실행되므로 WSL에 있는 내용을 알지 못합니다.
Windows에서 WSL의 바이너리를 실행하고 그 반대의 경우도 가능하다는 것은 사실이지만, 일반 VS Code 확장 기능은 이 작업을 수행하는 방법을 알지 못합니다. 이것이 WSL에서 디버깅을 지원하는 방식으로 시작했지만, WSL을 인식하도록 모든 확장 기능을 업데이트해야 한다는 것을 빠르게 깨달았습니다.
대신 VS Code의 일부를 WSL에서 실행하고 Windows에서 실행되는 UI가 WSL에서 실행되는 VS Code 서버와 통신하도록 하는 것을 선택했습니다. 이것이 WSL 확장 기능이 제공하는 기능이며, 이를 통해 Go 확장 기능은 다른 Go 도구(컴파일러, 디버거, 린터)와 함께 WSL에서 실행되고 VS Code는 Windows에서 실행됩니다.
이 접근 방식을 사용하면 스마트 완성 기능과 같은 언어 기능은 Windows에서 아무것도 설정할 필요 없이 WSL에 있는 항목에 대해 작동합니다. 경로 문제에 대해 걱정하거나 Windows에 개발 스택의 다른 버전을 설정할 필요가 없습니다. Linux에 애플리케이션을 배포하는 경우 WSL 인스턴스를 런타임 환경과 유사하게 설정하면서도 Windows에서 풍부한 편집 경험을 얻을 수 있습니다.
확장 기능 작성자
확장 개발자로서 무엇을 해야 하나요?
VS Code 확장 기능 API는 로컬/원격 세부 정보를 추상화하므로 대부분의 확장 기능은 수정 없이 작동합니다. 그러나 확장 기능은 원하는 모든 노드 모듈이나 런타임을 사용할 수 있으므로 조정이 필요한 경우가 있습니다. 업데이트가 필요하지 않은지 확인하려면 확장 기능(특히 컨테이너)을 테스트하는 것이 좋습니다. 자세한 내용은 원격 개발 지원을 참조하세요.
사용자가 원격으로 연결되어 있을 때 확장 기능이 로컬 리소스 또는 API에 액세스할 수 있나요?
VS Code가 원격 환경에 연결되면 확장 기능은 **UI** 또는 **작업 영역** 확장 기능으로 분류됩니다. UI 확장 기능은 **로컬 확장 기능 호스트**에서 실행되며 UI 또는 개인화 기능(예: 테마)을 제공하고 로컬 파일 또는 API에 액세스할 수 있습니다. 작업 영역 확장 기능은 작업 영역과 함께 **원격 확장 기능 호스트**에서 실행되며 소스 코드, 원격 파일 시스템 및 원격 API에 완전히 액세스할 수 있습니다. 작업 영역 확장 기능은 UI 사용자 지정에 중점을 두지 않지만 탐색기, 뷰 및 기타 UI 요소도 제공할 수 있습니다.
사용자가 확장 기능을 설치하면 VS Code는 유형에 따라 올바른 위치를 추론하고 설치하려고 시도합니다. 테마 및 기타 UI 사용자 지정과 같이 원격으로 실행할 필요가 없는 확장 기능은 UI 측에 자동으로 설치됩니다. 다른 모든 것은 가장 기능이 풍부한 작업 영역 확장 기능으로 간주됩니다. 그러나 확장 기능 작성자는 package.json의 extensionKind 속성을 사용하여 이 위치를 재정의할 수도 있습니다.
확장 기능이 예상대로 작동하지 않는 경우, 올바른 위치에서 실행 중인지 또는 다른 extensionKind가 있어야 하는지 확인하는 단계가 있습니다. 또한 원격 개발 및 Codespaces에 대해 확장 기능 작성자가 알아야 할 사항에 대한 자세한 내용은 원격 개발 지원을 참조하세요.
라이선스 및 개인정보처리방침
Location
VS Code 원격 개발 확장 기능에 대한 라이선스는 여기에서 찾을 수 있습니다.
원격 개발 확장 기능 또는 그 구성 요소가 오픈 소스가 아닌 이유는 무엇인가요?
Visual Studio Code 원격 개발 확장 기능 및 관련 구성 요소는 개방형 계획, 이슈 및 기능 요청 프로세스를 사용하지만 현재 오픈 소스는 아닙니다. 이 확장 기능은 GitHub Codespaces와 같은 완전 관리형 원격 개발 서비스 및 관련 확장 기능에서도 사용되는 소스 코드를 공유합니다.
자세한 내용은 Visual Studio Code 및 'Code - OSS' 차이점 및 Microsoft 확장 라이선스 문서를 참조하세요.
원격 개발 확장 기능이 연결할 수 있는 위치에 제한이 있나요?
확장 기능을 개인 또는 기업용으로 자유롭게 사용하여 자체 물리적 머신, 가상 머신 또는 컨테이너에 연결할 수 있습니다. 이는 온프레미스, 자체 프라이빗 클라우드 또는 데이터 센터, Azure 또는 기타 클라우드/비클라우드 호스팅 제공업체에 있을 수 있습니다. 확장 기능 또는 관련 구성 요소를 기반으로 공개 제품 또는 서비스를 구축할 수는 없습니다(다음 질문 참조).
VS Code 원격 개발 확장 기능을 사용하여 자체 제품 또는 서비스를 구축할 수 있나요?
자체 내부 또는 프라이빗 서비스와 함께 확장 기능을 사용할 수 있습니다. VS Code 원격 개발 확장 기능 또는 관련 구성 요소(예: VS Code Server)를 기반으로 공개 또는 상업용 서비스를 구축할 수는 없습니다. 또한 원격 개발 확장 기능을 확장하거나 조작하는 다른 확장 기능을 만들 수 없습니다. 라이선스에서 "소프트웨어를 독립형 또는 통합 제품으로 제공하거나 타인이 사용할 수 있도록 애플리케이션과 결합할 수 없다"고 명시하고 있지만, 서비스와 함께 확장 기능을 사용하는 방법에 대해 문서화할 수는 있습니다.
VS Code Server를 자체 공개 서비스 제공에 재포장하거나 재사용할 수 있나요?
아니요. 라이선스에는 "소프트웨어를 독립형 또는 통합 제품으로 제공하거나 타인이 사용할 수 있도록 애플리케이션과 결합할 수 없다"고 명시되어 있으므로 VS Code Server를 기반으로 공개 제품 또는 서비스를 구축할 수 없습니다.
확장 기능을 X에 사용할 수 있는지에 대한 질문이 있는데, 누구에게 물어봐야 하나요?
이슈를 제출해 주세요.
GDPR 및 VS Code 원격 개발
VS Code 원격 개발 확장 기능은 Visual Studio Code 자체와 마찬가지로 GDPR 정책을 따릅니다. 자세한 내용은 일반 FAQ를 참조하세요.
질문 또는 피드백
질문이나 피드백이 있으신가요?
- 팁과 요령을 참조하세요.
- Stack Overflow에서 검색하십시오.
- 기능 요청을 추가하거나 문제 보고를 하십시오.