비주얼 스튜디오

내위키

Visual Studio.

마이크로소프트에서 개발 및 판매하고 있는 통합개발환경. 줄여서 VS라고도 많이 쓴다. 역사를 잘 모르는 사람들은 프로그램 개발하는 프로그램이 어째서 이름이 '보이는 스튜디오'지? 할 수도 있는데, 비주얼 베이직, 비주얼 C++와 같은 '비주얼' 언어 개발 시리즈의 개발환경으로 만들어진 것이라서 그와 같은 이름이 붙었다. 실제로 과거에 밋밋한 텍스트 환경에서 일했던 개발자들에게 그래픽 인터페이스를 기반으로 한 비주얼 스튜디오는 그야말로 컬처 쇼크와 같은 충격이었다 CC++ 쪽은 덜하지만 특히 비주얼 베이직은 컴포넌트 위주의 개발 환경으로 마치 블럭 조립 하듯이 인터페이스를 마우스로 착착 디자인하고 컨트롤을 클릭해서 필요한 코드를 입력하는 개발 방식은 어마어마한 생산성을 제공했다. 그 덕에 알고리즘도 제대로 모르는 수준 이하의 개발자들도 대량으로 제공했다. 아무튼 비주얼 스튜디오의 성공 이후로 '스튜디오'라는 이름이 붙은 개발 환경이 종종 등장했는데, 예를 들어 안드로이드 스튜디오.

윈도우 프로그램 개발이 MFC가 주류이던 시절에는 당연히 필수품이었고 주력 개발 플랫폼이 닷넷으로 넘어가고 나서도 여전히 윈도우 기반 개발자에게는 MSDN과 함께 필수품이다.

과거에는 MS가 개발한 운영체제에서 돌아가는 앱만 개발만 가능했고[1] MS에서 개발한 개발 환경만 사용할 수 있었다. 하지만 MS오픈 소스에 우호적으로 돌아서면서부터는 MS를 넘어 오픈 소스 개발환경까지 적극 수용했다. 버전 관리를 위해서는 아예 Git을 기본으로 쓰고 깃허브 지원도 기본으로 한다. MS가 아예 깃허브를 인수하고 나서는 심지어 클라우드 개발 환경을 깃허브 기반으로 바꿔버렸다. 모바일이 대세가 되면서는 자사의 윈도우 모바일 말고도 안드로이드iOS 앱도 개발할 수 있게 되었다. 오히려 이쪽이 대세가 되고 윈도우 모바일은 버림 받고 있다. 다만 맥OS나 iOS 계열 앱은 윈도우용 비주얼 스튜디오에서는 오브젝티브C스위프트를 사용한 개발은 불가능하고 C# 기반의 자마린이나 비주얼 C++, F#과 같이 MS가 개발한 개발 환경을 사용해야 한다. 또한 애플의 정책이 앱 빌드는 Xcode로만 할 수 있도록 막고 있기 때문에 코드 작성은 윈도우에서 하더라도 빌드는 Xcode가 깔린 맥을 연결해야 한다.

제품군

비주얼 스튜디오 IDE

그냥 비주얼 스튜디오라고 하면 이걸 얘기하는 게 상식.[2] 개발에 필요한 통합개발환경으로 과거에는 MS 제품군만 지원했지만 지금은 데스크톱, 모바일, 웹을 비롯한 광범위한 영역에 걸쳐서 MS는 물론 비 MS 오픈 소스까지 포용하고 있다. 특히 플러그인 기능을 사용하면 이클립스처럼 여러 가지 언어로 개발할 수 있다. Node.js파이썬도 이 비주얼 스튜디오 IDE에서 개발할 수 있다. 또한 맥용으로도 나와 있다.

IDE는 크게 세 가지 에디션으로 제공된다.

  • 커뮤니티 에디션(Community Edition) : 무료 버전. 오픈 소스는 물론 상업적인 프로그램 개발도 할 수 있다.
  • 프로페셔널 에디션(Professional Edition) : 유료 버전.
  • 엔터프라이즈 에디션(Enterprise Edition) : 유료 버전.

과거에는 윈도우 개발자에게는 필수품이나 마찬가지였지만 비싼 가격으로 불법 복제품을 쓰는 사람들이 많았으나, 지금은 커뮤니티 에디션이 무료로 풀리고 있어서 개인 또는 중소기업 개발자들은 좋은 개발환경을 무료로 쓸 수 있다. 프로페셔널 버전과 엔터프라이즈 에디션은 고객 지원, MSDN 제공과 같은 추가 혜택이 있다. MS가 옛날부터 개발자 지원은 화끈했던 것으로 정평이 나 있는데, 가장 손꼽히는 게 바로 MSDN다. 비용이 들지만 본전을 훨씬 뽑고도 남은 각종 소프트웨어와 개발 툴 지원에다가 자료의 품질도 워낙에 좋아서 소프트웨어 개발업체의 수요가 많다.

비주얼 스튜디오 팀 서비스

팀 단위 개발을 진행에 필요한 버전 관리와 협업을 비롯한 기능들을 제공하는 솔루션.

비주얼 스튜디오 코드

Visual Studio Code.

코드 편집 기능으로 특화된 버전으로 위의 비주얼 스튜디오 IDE에서 기능만 뺀 버전이 아니라 아예 다른 물건이다. 일단 인터페이스부터 다른 비주얼 스튜디오와는 다르다. Node.js를 데스크톱 앱으로 사용하기 위한 프레임워크인 일렉트론[3]에 기반을 두고 있기 때문이다.[4] IDE가 아니라 Sublime Text나 Atom[5]처럼 프로그래밍에 특화된 에디터라고 봐야 하겠지만 플러그인을 통한 확장성이 워낙 좋아서 잘 튜닝하면 IDE 부럽지 않은 기능을 가질 수도 있다. 컴파일러를 자체 포함하고 있지 않지만 적절한 플러그인을 사용하면 외부 컴파일러를 사용한 빌드 작업을 설정할 수 있으며 심지어 디버깅까지 잘 된다.[6] 코드 자동 완성을 비롯해서 코딩을 위한 고급 기능도 갖추어져 있으며, Git을 사용한 버전 관리도 지원한다. 일렉트론 프레임워크 기반이므로 당연할 지도. 다만 깃허브의 일렉트론 기반 에디터인 Atom에서 포크한 건 아니고 따로 만든 것이다. 확장 기능을 통해 현재 쓰이고 있는 언어는 거의 다 지원한다고 해도 과언이 아니다. 명령 팔레트를 띄우고 필요한 기능을 입력해서 (자동완성도 지원한다) 간편하게 명령을 실행시킬 수 있다.

윈도우, OS X는 물론 리눅스까지 지원하기 때문에 리눅스 환경 개발자들 중에도 VS 코드를 쓰는 사람들이 꽤 있다. 무료로 배포된다. 게다가 오픈 소스로 개발되고 있다. 깃허브에서 소스를 다운 받을 수도 있다. 단, 소스 코드는 MIT 라이선스를 적용하고 있지만 실제로 다운로드 받아서 사용하는 비주얼 스튜디오 코드 실행파일은 무료이긴 해도 MS 라이선스를 적용한다. 또한 사용자 데이터를 수집하는 기능을 포함하고 있다고 명시하고 있다. 이게 싫다면 같은 소스 코드 기반으로 MIT 라이선스로 배포하며 데이터 수집 기능을 뺀 VS코디엄(VSCodium)을 사용할 수 있다.[7] 단, VS코디엄은 플러그인 저장소를 자체 운영하고 있기 때문에 MS 저장소를 이용하려면 설정을 만져 줘야 한다. 또한 원격 WSL 같은 비 오픈 소스 소프트웨어와 연동도 잘 안 된다는 한계는 있다.

메모리 많이 잡아먹고 무거운 IDE 대신에 가볍지만 플러그인으로 내가 필요한 개발환경에 필요한 기능은 충분히 갖추고 있어서 특히 고급 개발자 중에는 이쪽을 좋아하는 사람들도 많다. 파이썬의 경우 기본 제공되는 IDLE은 기능이 너무 적고, 제트브레인의 PyCharm은 돈 내고 써야[8] 여러 가지 고급 기능을 쓸 수 있는데 비주얼 스튜디오 코드는 플러그인만 잘 붙여주면 고급 개발자들이 원하는 기능들도 대부분 지원하기 때문에 특히 Django나 Flask 같은 웹 프레임워크를 쓸 때에는 많은 개발자들이 비주얼 스튜디오 코드를 사용하고 있다. 운영체제를 막론하고 개발자들 사이에서 인기가 쑥쑥 올라가고 있어서 플러그인도 많이 나와 있기 때문에 어떤 언어를 쓰든 적당한 플러그인을 설치해서 환경을 갖출 수 있고 능숙한 사용자들은 웬만한 IDE 뺨치는 수준까지 환경을 꾸밀 수 있다. 일부 언어 및 플랫폼, 프레임워크 개발사가 공식 제공하는 플러그인들도 늘어나고 있다.

깃허브 코드스페이스

웹 브라우저에서 실행시킬 수 있는 비주얼 스튜디오 코드스페이스(Visual Studio Codespace)도 있다. 따로 프로그램을 설치할 필요 없이 간편하게 실행시킬 수 있다. 비주얼 스튜디오 코드 자체가 자바스크립트 기반 일렉트론으로 만들었기 때문에 온라인 버전으로도 손쉽게 이식시킬 수 있는 것. 그런데 MS가 인수한 깃허브를 기반으로 하는 것으로 방향을 틀었고, 그래서 VS 코드스페이스는 종료하고 깃허브 코드스페이스를 출범시킨다. 비주얼 스튜디오, 웹 브라우저, 비주얼 스튜디오 코드를 모두 활용할 수 있는 클라우드 기반 개발 환경이다.

그밖에

비주얼 스튜디오에 안드로이드 에뮬레이터가 포함되어 있는데 Hyper-V 기반으로 동작하며 구글안드로이드 SDK에서 제공하는 에뮬레이터보다 더 빠르다! 심지어 안드로이드 스튜디오에서도 갖다 쓸 수 있다. 다만 메모리를 좀 많이 잡아먹는 게 흠.

각주

  1. 맥 환경에 쓸 수 있는 맥용 비주얼 스튜디오(Visual Studio for Mac)도 있다.
  2. 다만 비주얼 스튜디오 코드의 인기가 많다 보니, 이건 써 본 적 없이 비주얼 스튜디오 코드만 써 본 개발자들도 많다. 특히 비윈도우 플랫폼을 위한 소프트웨어를 만들 경우 더더욱 그렇다.
  3. 일렉트론은 깃허브에서 만든 건데 MS가 아예 깃허브를 인수해버렸기 때문에 사실상 MS 것이다.
  4. 그래서인지 설정 파일이 홀라당 JSON이다.
  5. Atom은 깃허브가 중심이 되어 개발하고 있는 오픈 소스 편집기인데, 깃허브를 MS가 인수했기 때문에 개발용 편집기가 두 개가 된 셈이다. 일단 Atom 역시 개발은 계속되고 있으나 언제까지 MS가 두 프로젝트를 다 끌고 갈지는 미지수. 하나만 남긴다면 당연히 비주얼 스튜디오 코드가 될 것이다.
  6. 다만 디버깅IDE에 비해서는 기능이 좀 떨어지긴 한다. 스택 추적 기능이나 중단점 설정, 한 스텝씩 실행시키기와 같은 기능은 제공하지만 IDE보다는 덜 세밀하고 인터페이스가 조금 불편하다.
  7. 구글의 웹 브라우저인 크롬도 소스 코드인 크로미엄 프로젝트는 BSD 라이선스를 적용하는 오픈 소스지만 크롬 제품 자체는 'Copyright by Google'이 달린 사유 소프트웨어다. 이렇게 보면 크롬-크로미엄과 VS코드-VS코디엄은 꽤 닮아 있다. 심지어 이름까지도 그렇다.
  8. 대학생 및 교직원이라든가, 비상업적 오픈 소스 개발자라든가 하는 식으로 무료 프로그램도 제공하고 있으나 여기에 해당되지 않으면 고급 기능이 빠진 무료 버전인 커뮤니티 버전만 쓸 수 있다.