비주얼 스튜디오 코드
1. 개요
1. 개요
비주얼 스튜디오 코드는 마이크로소프트가 개발한 크로스 플랫폼 텍스트 에디터이다. 일렉트론 프레임워크를 기반으로 만들어져 마이크로소프트 윈도우, macOS, 리눅스 운영체제에서 모두 동작한다. 2015년 4월 29일에 처음 공개되었으며, 2016년 4월 15일에 1.0 정식판이 출시되었다.
이 소프트웨어는 기본적인 코드 편집 기능을 넘어서 방대한 확장 기능 생태계를 통해 통합 개발 환경 수준의 기능을 제공하는 것이 특징이다. 마이크로소프트의 깃허브 저장소에 공개된 소스 코드는 MIT 라이선스를 따르지만, 공식 웹사이트에서 배포되는 실행 파일은 마이크로소프트의 독자적 사용 조건이 적용된 프리웨어이다.
비주얼 스튜디오 코드는 언어 서버 프로토콜을 활용한 강력한 코드 완성 기능(인텔리센스), 내장 통합 터미널, 그리고 깃을 비롯한 소스 제어 시스템과의 원활한 연동을 기본으로 지원한다. 또한 다국어 지원을 포함하여 전 세계 개발자들이 접근하기 쉬운 환경을 제공한다.
2. 시스템 요구 사항
2. 시스템 요구 사항
비주얼 스튜디오 코드는 마이크로소프트가 개발한 크로스 플랫폼 텍스트 에디터로, 윈도우, 맥OS, 리눅스 등 주요 운영체제를 모두 지원한다. 공식 문서에 명시된 권장 시스템 요구 사항은 다음과 같다.
운영체제별로 구체적인 요구 사항이 다르다. 윈도우의 경우 64비트 윈도우 10 이상 버전이 필요하다. 맥OS는 13 Ventura 이상을 권장한다. 리눅스 배포판은 데비안 계열의 경우 우분투 20.04 또는 데비안 10 이상, 레드햇 계열의 경우 RHEL 8 또는 페도라 36 이상이 필요하다. 리눅스에서는 추가로 glibcxx 3.4.25 및 glibc 2.28 이상의 라이브러리 버전이 필요하다.
이 에디터는 일렉트론 프레임워크를 기반으로 구축되어 웹 기술을 활용하며, 이로 인해 비교적 가벼운 시스템 자원으로도 원활히 실행될 수 있다. 또한 웹 버전(vscode.dev)도 제공되어 WWW 환경에서도 접근이 가능하다.
3. 주요 기능
3. 주요 기능
3.1. 편집 및 디버깅
3.1. 편집 및 디버깅
비주얼 스튜디오 코드는 강력한 편집 기능을 제공한다. 구문 강조와 코드 접기를 기본으로 지원하며, 인텔리센스를 통해 코드 자동 완성, 매개변수 정보, 빠른 정보 툴팁을 제공한다. 언어 서버 프로토콜을 활용하여 다양한 프로그래밍 언어에 대한 풍부한 편집 지원을 가능하게 한다. 또한 다중 커서 편집과 선택 영역 복사, 찾기 및 바꾸기 기능은 대규모 코드베이스를 효율적으로 수정하는 데 도움을 준다.
디버깅 측면에서는 통합 디버거를 내장하고 있어 별도의 도구 없이도 중단점 설정, 단계별 실행, 변수 검사가 가능하다. Node.js, Python, C++ 등 여러 언어에 대한 디버깅을 지원하며, 런처 구성 파일을 통해 복잡한 디버깅 시나리오를 설정할 수 있다. 디버그 콘솔을 통해 코드를 대화형으로 평가할 수도 있다.
편집기와 디버거는 긴밀하게 통합되어 있다. 코드 편집 중에 발생한 오류는 문제 패널에 실시간으로 표시되며, 이를 클릭하면 해당 코드 위치로 바로 이동할 수 있다. 디버깅 세션 중에는 편집기 내에서 변수 값이 인라인으로 표시되고, 호출 스택, 조사식, 중단점 목록을 별도의 뷰에서 관리할 수 있어 개발 워크플로우가 원활하다.
이러한 편집 및 디버깅 기능은 확장 기능 생태계에 의해 더욱 강화된다. 커뮤니티 또는 Microsoft에서 개발한 확장 기능을 설치하면 추가 언어 지원, 린터, 포맷터, 고급 디버깅 어댑터를 활용할 수 있어, 비주얼 스튜디오 코드를 단순한 텍스트 에디터에서 완전한 통합 개발 환경 수준으로 발전시킬 수 있다.
3.2. 확장 기능
3.2. 확장 기능
비주얼 스튜디오 코드의 가장 큰 강점은 풍부한 확장 기능 생태계이다. 마켓플레이스를 통해 사용자는 수만 개의 확장 프로그램을 검색하고 설치할 수 있으며, 이를 통해 기본 텍스트 에디터를 다양한 프로그래밍 언어와 프레임워크에 특화된 통합 개발 환경 수준으로 확장할 수 있다. 마이크로소프트는 C++, Python, Java, TypeScript 등 주요 언어에 대한 공식 확장을 직접 개발 및 관리하여 핵심 개발 경험을 보장한다.
확장 기능은 코드 편집, 디버깅, 버전 관리, 프로젝트 관리 등 광범위한 영역을 커버한다. 예를 들어, Python 확장을 설치하면 Jupyter Notebook 지원, 가상 환경 관리, IntelliSense 기반의 코드 완성, 디버깅 기능을 즉시 사용할 수 있다. Git과의 통합은 기본적으로 제공되지만, GitLens 같은 확장을 추가하면 커밋 히스토리 추적과 코드 작성자 정보 표시 등 고급 기능을 활용할 수 있다.
이러한 확장성은 Electron 프레임워크와 언어 서버 프로토콜 덕분에 가능하다. 언어 서버 프로토콜을 통해 확장 기능은 에디터 코어와 독립적으로 언어별 분석 도구를 실행하여, 강력한 코드 분석, 리팩토링, 오류 검출 기능을 제공한다. 결과적으로 비주얼 스튜디오 코드는 가벼운 시작과 강력한 맞춤화 사이의 균형을 잘 잡은 도구로 자리 잡았다.
3.3. 통합 터미널
3.3. 통합 터미널
비주얼 스튜디오 코드는 xterm.js 기반의 통합 터미널을 내장하고 있다. 이 기능을 통해 사용자는 에디터 내부에서 직접 명령줄 인터페이스를 실행할 수 있어, 별도의 외부 터미널 애플리케이션을 열 필요가 없다. 통합 터미널은 쉘을 지원하며, Windows에서는 PowerShell, 명령 프롬프트, WSL 배포판을, macOS와 Linux에서는 Bash, Zsh 등 다양한 쉘을 선택하여 사용할 수 있다.
통합 터미널은 여러 인스턴스를 동시에 생성하여 탭이나 분할 창으로 관리할 수 있다. 사용자는 작업 중인 프로젝트의 루트 디렉토리에서 터미널을 열어 Git 명령어 실행, Node.js 스크립트 실행, Python 가상 환경 활성화, Docker 컨테이너 관리 등 개발 작업에 필요한 대부분의 명령을 수행할 수 있다. 또한, 터미널 출력에서 특정 에러 메시지나 파일 경로를 클릭하면 해당 위치로 바로 이동하는 등 편의 기능을 제공한다.
이 터미널은 Electron 프레임워크를 기반으로 한 비주얼 스튜디오 코드의 아키텍처 덕분에 높은 성능과 안정성을 보인다. 사용자는 설정을 통해 터미널의 글꼴, 색상 테마, 커서 모양, 스크롤 버퍼 크기 등을 자유롭게 커스터마이즈할 수 있으며, 확장 기능을 설치하여 추가적인 기능을 통합할 수도 있다.
3.4. 소스 제어 통합
3.4. 소스 제어 통합
비주얼 스튜디오 코드는 Git과의 원활한 통합을 기본적으로 제공한다. 작업 디렉토리에 git init 명령어로 저장소를 초기화하기만 하면, 별도의 설정 없이 소스 제어 뷰를 통해 변경 사항을 즉시 확인하고 커밋을 관리할 수 있다. 이 기능은 마이크로소프트가 애저 데브옵스의 전신인 비주얼 스튜디오 팀 서비스에 있던 웹 에디터를 발전시킨 기원과도 맞닿아 있다.
사용자는 사이드바의 소스 제어 아이콘을 통해 수정된 파일 목록을 한눈에 볼 수 있으며, 각 파일의 diff를 색상으로 구분된 가시적인 형태로 확인할 수 있다. 변경 내용을 스테이징하고, 커밋 메시지를 작성하며, 원격 저장소에 푸시하거나 풀하는 모든 작업을 에디터 내에서 완료할 수 있다. 또한 분기 관리와 병합 충돌 해결과 같은 고급 버전 관리 작업도 지원한다.
티에프에스나 다른 버전 관리 시스템과의 연동은 마켓플레이스에서 제공되는 확장 기능을 설치하여 구현할 수 있다. 이처럼 내장된 소스 제어 기능은 개발 워크플로우를 간소화하고, 개발자가 코드 편집에 집중할 수 있도록 도와준다.
3.5. 다국어 지원
3.5. 다국어 지원
비주얼 스튜디오 코드는 기본적으로 영어 인터페이스를 제공하지만, 광범위한 다국어 지원을 통해 전 세계 개발자들이 현지화된 환경에서 작업할 수 있도록 한다. 에디터의 메뉴, 명령 팔레트, 메시지 및 기타 사용자 인터페이스 요소를 다양한 언어로 번역하여 제공한다. 이 다국어 지원은 마이크로소프트의 공식 확장 기능인 'Language Packs'를 통해 구현되며, 사용자는 확장 기능 시장에서 쉽게 원하는 언어 팩을 검색하여 설치할 수 있다.
설치된 언어 팩은 에디터의 표시 언어를 즉시 변경한다. 예를 들어, 한국어 팩을 설치하면 메뉴와 알림이 한국어로 표시되어 한국어 사용자에게 더 친숙한 개발 환경을 제공한다. 사용자는 명령 팔레트에서 'Configure Display Language' 명령을 실행하여 설치된 언어 팩 중 하나를 선택하거나 기본 영어로 되돌릴 수 있다. 이 기능은 크로스 플랫폼으로 제공되는 비주얼 스튜디오 코드가 글로벌 사용자 기반을 효과적으로 지원하는 데 중요한 역할을 한다.
또한, 비주얼 스튜디오 코드는 편집기의 코어 기능과 별도로 관리되는 확장 기능 생태계의 일부로 다국어 지원을 제공한다. 이는 새로운 언어 번역이 필요하거나 기존 번역을 개선해야 할 경우, 확장 기능을 통해 독립적으로 업데이트하고 배포할 수 있음을 의미한다. 이러한 접근 방식은 GitHub에 호스팅되는 오픈 소스 프로젝트의 특성과도 잘 맞아, 커뮤니티 기여자들이 번역 작업에 참여하는 것을 용이하게 한다.
에디터의 다국어 지원은 단순한 인터페이스 번역을 넘어, 특정 언어에 맞춰진 키보드 레이아웃 및 입력 방식을 고려한 편집 경험까지 포함한다. 이는 마이크로소프트가 다양한 지역의 개발자 요구를 수용하고, Electron 프레임워크 기반의 이 텍스트 에디터를 진정한 글로벌 도구로 만들기 위한 지속적인 노력의 일환이다.
4. 역사
4. 역사
비주얼 스튜디오 코드는 2015년 4월 29일에 마이크로소프트가 처음 공개한 텍스트 에디터이다. 초기에는 클라우드 및 웹 기반 애플리케이션 개발을 주된 목표로 삼았으며, Electron 프레임워크를 기반으로 마이크로소프트 윈도우, macOS, 리눅스를 모두 지원하는 크로스 플랫폼 에디터로 출발했다. 이는 마이크로소프트 개발 도구 중 최초로 여러 운영체제를 지원하는 에디터였다. 2015년 11월 18일에는 베타 버전으로 격상되었고, 동시에 깃허브에 소스 코드가 MIT 라이선스 하에 공개되었다.
2016년 4월 15일에 1.0 정식 버전이 출시되면서 한국어를 포함한 다국어 지원이 추가되었다. 이후 빠른 업데이트 주기와 풍부한 확장 기능 생태계를 바탕으로 급속도로 인기를 얻었다. 2018년 스택 오버플로우 개발자 설문조사에서 가장 인기 있는 개발 도구로 선정되는 등, 단순한 에디터를 넘어 준통합 개발 환경 수준의 위치를 차지하게 되었다.
2021년 10월 20일에는 로컬 웹 버전이 공개되어 브라우저에서도 사용할 수 있게 되었다. 또한, 마이크로소프트가 깃허브를 인수함에 따라 기반 프레임워크인 Electron까지 소유하게 되었고, 이는 경쟁 제품인 Atom 에디터의 지원 종료에도 영향을 미쳤다.
5. 파생 소프트웨어
5. 파생 소프트웨어
비주얼 스튜디오 코드는 오픈 소스이며 MIT 라이선스를 따르는 코드베이스를 가지고 있어, 이를 기반으로 한 다양한 파생 소프트웨어가 개발되었다. 특히 Electron 프레임워크를 사용해 웹 기술로 구축되었기 때문에, 브라우저에서 실행 가능한 웹 포팅 버전이 다수 존재하는 것이 특징이다.
주요 파생 소프트웨어로는 GitHub의 클라우드 개발 환경 서비스인 GitHub Codespaces가 있다. 이 서비스는 저장소 코드를 기반으로 원격 개발 환경을 제공한다. 또한, 공식 바이너리에 포함된 Microsoft의 독자적 라이선스와 추적기 코드를 제거한 완전한 오픈 소스 버전인 VSCodium 프로젝트가 있으며, 이는 특히 라이선스 문제를 중시하는 리눅스 사용자들 사이에서 인기가 있다. 웹 기반 코드 에디터 및 플레이그라운드 서비스인 StackBlitz도 비주얼 스튜디오 코드의 웹 포팅 버전을 활용한다.
최근에는 인공지능 지원 기능을 강화한 에디터들이 비주얼 스튜디오 코드를 포크하여 등장하는 추세이다. 대표적으로 Cursor와 Windsurf가 있으며, 이들 에디터는 AI 기반 코드 완성 및 자동화 기능을 내장하고 있다. 이처럼 비주얼 스튜디오 코드의 포크 버전이 지속적으로 생겨나면서, 'yet another vscode fork'라는 밈이 생기기도 했다.
6. 기타
6. 기타
비주얼 스튜디오 코드는 나무위키의 기본 문서 편집기로 사용되는 Monaco Editor를 기반으로 하고 있다. 또한 윈도우용 Git을 설치할 때 기본 텍스트 에디터로 비주얼 스튜디오 코드를 선택할 수 있다. 주요 게임 엔진인 언리얼 엔진과 유니티 엔진도 각각 특정 버전부터 공식적으로 비주얼 스튜디오 코드를 지원한다.
소프트웨어는 사용 중 생성되는 캐시 파일로 인해 상당한 저장 공간을 차지할 수 있다. 오랜 기간 사용하면 캐시 용량이 수십 기가바이트에 이를 수 있다. 내장된 통합 터미널 패널은 별도의 창으로 분리하여 사용할 수 있어, 듀얼 모니터 이상의 작업 환경에서 유용하게 활용된다.
비주얼 스튜디오 코드의 강력한 언어 지원 기능은 언어 서버 프로토콜을 채택한 확장 기능들에 기반한다. 이 프로토콜은 에디터가 다양한 프로그래밍 언어에 대해 코드 완성, 구문 강조, 오류 검사 등의 고급 기능을 제공할 수 있게 해주는 개방형 표준이다.
