수학·컴퓨터

비주얼 스튜디오 코드 100 활용하기

전 세계 개발자들의 표준 에디터로 자리 잡은 비주얼 스튜디오 코드(VS Code)의 탄생 배경과 생산성을 극대화하는 핵심 기능 및 확장 생태계를 소개한다.

편집부 · 2024년 1월 18일 · 읽는 데 4분

사이버 미학, 어두운 배경의 복잡한 코드 매트릭스 위를 맴도는 빛나는 네온 스타일의 VS Code 아이콘
사이버 미학, 어두운 배경의 복잡한 코드 매트릭스 위를 맴도는 빛나는 네온 스타일의 VS Code 아이콘

소프트웨어 개발자들에게 '어떤 코드 에디터를 쓰느냐'는 종교 논쟁만큼이나 치열하고 예민한 주제였다. 과거에는 가볍고 빠른 Vim이나 Sublime Text를 찬양하는 파벌과, 무겁지만 강력한 기능을 제공하는 Eclipse나 IntelliJ 같은 통합 개발 환경(IDE)을 선호하는 파벌이 날카롭게 대립했다. 그런데 2015년 마이크로소프트(MS)가 혜성처럼 내놓은 하나의 프로그램이 이 길고 길었던 에디터 전쟁을 사실상 평정해 버렸다. 전 세계 개발자의 70% 이상이 매일 아침 출근하자마자 가장 먼저 실행한다는 압도적인 1위 에디터, 바로 '비주얼 스튜디오 코드(Visual Studio Code, 이하 VS Code)'다. MS가 만들었지만 윈도우뿐만 아니라 맥(Mac)과 리눅스에서도 완벽하게 돌아가고, 누구나 무료로 쓸 수 있으며, 수만 개의 확장 프로그램(Extensions)을 레고 블록처럼 끼워 맞춰 나만의 완벽한 작업실을 꾸밀 수 있는 이 작고 가벼운 에디터는 어떻게 전 세계 개발자들의 표준이 되었을까? 코딩의 텍스트를 예술로 승화시키는 VS Code의 핵심 아키텍처와 생산성을 한계치까지 끌어올리는 100% 활용 비법을 톺아보자.

웹 기술로 데스크톱을 점령한 일렉트론(Electron)

VS Code가 가진 가장 큰 기술적 특징은, 역설적이게도 이 강력한 데스크톱 프로그램이 사실은 거대한 '웹 브라우저(크롬)' 위에서 돌아가고 있다는 점이다. VS Code는 HTML, CSS, JavaScript 같은 웹 기술을 이용해 데스크톱 앱을 만들 수 있게 해주는 '일렉트론(Electron)' 프레임워크를 기반으로 제작되었다. 초기의 일렉트론 기반 앱들은 속도가 느리고 메모리를 엄청나게 잡아먹는다는 치명적인 단점이 있었다. 하지만 MS의 천재적인 엔지니어(과거 '이클립스'의 핵심 개발자였던 에리히 감마가 주도)들은 코어 부분의 코드를 뼈를 깎듯 최적화하여 웹의 무거운 껍데기를 쓰고서도 네이티브 앱을 뛰어넘는 번개 같은 실행 속도를 구현해 냈다. 이 웹 기반 아키텍처 덕분에 VS Code는 운영체제를 가리지 않는 완벽한 크로스 플랫폼을 달성했을 뿐만 아니라, 수많은 웹 개발자들이 자신에게 친숙한 자바스크립트 언어를 이용해 너무나 쉽게 확장 프로그램(플러그인)을 만들어 생태계에 기여할 수 있는 엄청난 확장성의 날개를 달게 되었다.

확장 프로그램, 무한한 레고 블록의 세계

처음 다운로드받은 깡통 상태의 VS Code는 메모장보다 조금 똑똑한 수준의 아주 가벼운 에디터일 뿐이다. VS Code의 진정한 마법은 좌측 메뉴에 있는 네모난 블록 아이콘, 즉 '마켓플레이스(Marketplace)'에서 시작된다. 파이썬을 짜고 싶다면 Python 확장을, 코드를 예쁘게 정렬하고 싶다면 Prettier를, 괄호 쌍에 무지개 색을 입혀 헷갈리지 않게 하려면 Bracket Pair Colorization(현재는 내장 기능)을 원클릭으로 설치하기만 하면 된다. 과거의 무거운 IDE들이 내가 쓰지도 않는 수백 가지 기능을 처음부터 몽땅 우겨넣어 프로그램을 느려 터지게 만들었던 것과 달리, VS Code는 꼭 필요한 핵심 코어만 남기고 모든 부가 기능을 확장 프로그램으로 완전히 분리(Decoupling)하는 전략을 택했다. 전 세계 수백만 명의 개발자들이 자발적으로 만들어 올리는 테마, 자동 완성, 디버깅 도구들은 VS Code를 단순히 코드를 치는 타자기가 아니라 프론트엔드, 백엔드, 데이터 분석, 심지어 텍스트로 문서를 쓰는 작가들에게도 최적화되는 변신 로봇으로 만들어 주었다. 듀얼 모니터 설정에서 빛나는 VS Code 인터페이스를 보며 기계식 키보드로 빠르게 타이핑하는 개발자의 손

원격 개발(Remote Development)의 혁신

VS Code가 제공하는 수많은 기능 중 현대 클라우드 시대에 가장 폭발적인 반응을 이끌어낸 것은 단연 '원격 개발(Remote Development)' 확장 기능이다. 과거에는 고성능 서버에 있는 코드를 수정하려면 검은색 터미널 창을 띄우고 명령어를 쳐가며 답답하게 개발해야 했다. 하지만 이 원격 확장을 설치하면, 내 노트북의 VS Code 껍데기(UI)는 그대로 유지한 채 프로그램의 핵심 두뇌(실행 환경)만 수천 킬로미터 떨어진 리눅스 서버나 도커(Docker) 컨테이너 안에 살짝 꽂아 넣을 수 있다. 아무리 무거운 머신러닝 코드를 돌리거나 거대한 프로젝트를 컴파일해도 내 노트북의 CPU나 메모리는 전혀 뜨거워지지 않는다. 눈앞에 있는 쾌적한 화면에서 타자를 치면, 실제 코딩과 테스트는 강력한 구글이나 아마존의 클라우드 서버 안에서 돌아가는 마술 같은 쾌적함을 선사한다. 덕분에 개발자들은 무겁고 비싼 데스크톱 대신 가벼운 아이패드나 저사양 노트북 하나만 들고서도 카페나 해변에서 엄청난 프로젝트를 굴릴 수 있는 진정한 의미의 디지털 노마드가 될 수 있었다.

이어서 읽기