검수요청.png검수요청.png

비주얼 스튜디오

위키원
piao2000 (토론 | 기여)님의 2021년 4월 22일 (목) 17:55 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색
비주얼 스튜디오(Visual Studio)
비주얼 스튜디오(Visual Studio)

비주얼 스튜디오(Visual Studio)는 윈도, 맥OS에서 작동하며, 다양한 언어로 프로그래밍 할 수 있는 마이크로소프트의 통합 개발 환경이다.

개요

비주얼 스튜디오는 초기 디자인부터 최종 배포까지 가능한 종합적인 도구 집합을 사용한다.[1] 커뮤니티(Community), 프로페셔널(Professional), 엔터프라이즈(Enterprise)로, 세 가지의 버전이 있다. 커뮤니티 버전은 무료로 대학생이나 개인에게 배포한다. 하지만 기업에서는 사용이 불가능하다. 프로페셔널과 엔터프라이즈 버전은 250대의 컴퓨터 이하 또는 매출 10억 원 이하인 기업이 사용한다. 프로페셔널 버전은 소규모 팀에 적합하고, 엔터프라이즈 버전은 모든 규모의 팀을 위한 확장성이 뛰어난 통합형 솔루션이다.[2]

특징

강화된 코드 내비게이션, 인텔리센스(IntelliSense), 리팩토링, 코드 픽스, 디버깅이 애플리케이션 개발과 프로그램 개발 작업을 더 편하고 빠르게 만들어 생산성이 극대화된다. 근본적인 작업의 효율성을 강화하기 위해 원하는 모듈만 설치하고, 프로젝트와 솔루션이 없어도 코드를 보고, 수정하고, 디버깅 할 수 있다. 마이크로소프트 애져(Azure) 상에는 구동되는 애플리케이션 개발을 더욱더 쉽게 해주는 애져 관련 툴의 집합이 설치되어 있다. 비주얼 스튜디오에서 마이크로소프트 애져 상에서 구동되는 애플리케이션 개발 시 더 쉽게 서비스를 구성하고, 빌드하고, 패키지하고, 배포할 수 있다. 또한, 비주얼 스튜디오의 강화된 디버깅 및 프로파일링 툴과 단위 테스트 생성 기능을 통해 애플리케이션 개발이 쉬워진다.[3]

기능

개발

향상된 성능, 인스턴트 코드 정리, 더 나은 검색 결과를 사용하여 계속 집중하고 생산성을 유지한다.[4] 또한, 자동, 로컬 및 조사식 창의 새로운 검색을 기능을 통해 디버깅 시간을 단축할 수 있다. 코드를 작성하는 동안 저장된 창 레이아웃으로 시간을 단축할 수 있고, 다양한 작업 항목을 디버그하거나 작업하기 위해 여러 가지 창이 필요한지 여부와 관계없이 레이아웃이나 여러 가지 도구 패널을 저장하면 생산성 속도를 높일 수 있다.

디버그

디버깅을 하면서 편집기에서 변수에 대한 정보를 빠르게 확인하고, 데이터 팁을 사용해 변수의 이름과 현재 값을 본다. 개체를 확장하고, 해당 요소를 보고, 변수의 값을 편집한다. 중단점을 이용하여 버그가 의심되는 위치에서 실행 중인 프로그램을 일시 중지하고, 각 코드 줄을 자세히 검사하여 변수의 값, 메모리 동작 또는 코드의 분기가 실행 중인지 여부를 확인한다. 원하는 지점에서 애플리케이션을 일시 중지한 후 비주얼 스튜디오에서 다양한 방법으로 변숫값을 검사하여 가설을 형성하거나 확인할 수 있다. 또한, 코드를 단계별로 실행하는 동안 값을 모니터링하고, 로컬 변수를 검토하고, 복합식을 평가하며, 이 모든 작업을 디버거 내에서 할 수 있다. 대화형으로 데이터 구조를 심층적으로 질의 할 수도 있다. 코드 오류 및 예기지 않은 상황이 예외로 드러나는데, 예외가 발생하면, 앱 작동이 중단되거나 예외 자체가 추적할 버그가 된다. 디버그하는 동안 예외 발생 시 알림을 구성하고 중점적으로 살펴볼 특정 관심 예외를 선택할 수도 있다. 내부 예외 정보 및 (null) 참조 분석에 대한 알림이 즉시 표시되고, 여기서부터 중단점에 도달한 경우처럼 쉽게 진행된다. 다중 스레드 코드는 특히 디버그하기 어렵다. 다중 스레드 실행을 한 번에 제어하고, 여러 스레드의 상태를 검사하여 상황을 큰 그림으로 확인할 수 있게 한다. 모든 스레드 호출 스택을 단일 그래픽 보기에서 확인하고, 여러 스레드의 식을 평가하여 값을 비교한다. 외에도 성능 문제를 방지하고, 간단한 UI 디버깅 등이 있다.

테스트

원하는 언어와 테스트 프레임워크로 유닛 테스트를 작성하여 실행하고 디버그한다. 다양하게 구성된 기본 프로젝트 템플릿과 테스트 프레임워크가 여러 플랫폼을 지원하기 때문에 손쉽게 작업을 시작할 수 있다. 새로운 코드나 기존 코드에 대해 유닛 테스트를 만들고 유지하기 위한 노력을 극적으로 줄여준다. 또한, 메서드와 관련한 흥미로운 입출력 값을 생성하고 강도 높은 코드 검사를 수행하여 작은 테스트 도구 모음 형태로 저장하면, 코드가 변하면 테스트 도구 모음도 자동으로 변한다. 실시간 유닛테스트는 해당하는 모든 단위 테스트를 백그라운드에서 자동으로 실행하고, 코드 검사를 비주얼 스튜디오에서 실시간으로 표시한다. 코드를 수정하면, 실시간 유닛 테스트는 코드 변경 사항이 기존 테스트에 포함되는지 아니면 새로운 테스트를 작성해야 하는지 알려준다. 하나의 창을 사용하여 테스트를 구성, 실행 및 디버그할 뿐만 아니라 테스트 결과를 확인할 수도 있다. 빌드가 끝날 때마다 테스트를 자동으로 실행하도록 할 수 있기 때문에 지속적인 테스트를 손쉽게 구성할 수 있다. 관리형 응용 프로그램과 네이티브 응용 프로그램의 라인 수준과 블록 수준의 코드 검사를 시각화하고, 검사 결과를 받을 수 있다. 풍부한 기능의 격리 프레임워크로 모든 .NET 메서드를 대리자로 바꿀 수 있다. 이 외에도 다양한 기능이 있다.

협업

분산된 버전 제어를 위해서 (Git)을 사용하고, 즉시 사용 가능한 중앙 집중식 버전 제어를 위해서 팀 파운데이션 버전 제어(TFVC)를 사용한다. 원격 공급자에 대한 기본 제공 깃허브(GitHub) 및 Azure DevOps 통합을 활용하거나 확장을 설치하여 다른 버전 제어 공급자의 환경을 개선한다. 개발자는 기본적으로 프라이빗한 새로운 깃허브(GitHub) 리퍼지토리를 만들어서 한 번의 클릭으로 깃(Git) 및 깃허브(GitHub)에 코드를 추가할 수 있다. 또한 사용자는 로컬 전용 깃(Git) 리포지토리를 만들 수도 있고, 깃허브(GitHub) 및 Azure DevOps의 기존 원격 리퍼지토리에 코드를 추가할 수도 있다. 새 깃(Git) 환경에는 리퍼지토리를 쉽게 시각화하고 관리할 수 있도록 하는 풍부한 리퍼지토리 창이 제공된다. 그 외에도 향상된 충돌 해결 환경, 실시간 공동 작업 등의 기능이 있다.

확장

새로운 기능을 추가하거나 기존 도구를 통합하여 사용자 환경을 사용자 지정하고 개선할 수 있는 추가 기능이다. 확장의 범위는 복잡성의 모든 수준에 따라 다양하지만, 주요 목적은 생산성을 향상하고 워크플로우에 공급하는 것이다. 마켓플레이스(Marketplace)에서 사용 가능한 수천 개의 확장을 탐색하여 필요한 도구를 찾고, 직접 확장을 게시할 수도 있다. 필요한 확장을 찾을 수 없거나 확장 아이디어가 떠오르면, 고유한 확장을 직접 빌드할 수 있다. 마이크로소프트 닥스(Microsoft Docs) 페이지에서 다양한 정보가 제공되고, 이를 활용할 수 있다. 그 뿐만 아니라 온라인 커뮤니티에 가입하여 숙련된 확장 작성자와 마이크로소프트 엔지니어에게 질문하고 답변을 확인할 수 있다.[1]

솔루션

윈도

즐겨 사용하는 언어로 컴퓨터, 모바일 등 광범위한 윈도 디바이스에서 앱을 제공한다. DirectX 12의 새로운 혁신을 통해 그래픽 하드웨어의 모든 잠재성을 활용하여 고성능 2D 및 3D 게임을 개발할 수 있다. WPF(Windows Presentation Foundation)와 XAML이 결합하여 풍부한 기능의 프레젠테이션 시스템이 생겼다. 또한, 정보 공유가 활발히 이루어지는 개발자 커뮤니티에 참여하여 다양한 타사 및 오픈 소스 라이브러리와 관련된 신규 및 정립된 패턴과 사례를 빠르게 채택할 수 있다. 개인 팀 프로젝트와 어디서나 코드를 공동 작업하고 저장할 수 있으며 버전 제어가 지원된다.

모바일 앱

iOS, 안드로이드, 윈도에서 .NET을 사용하여 풍부한 네이티브 앱을 만든다. 유니티(Unity) 엔진을 사용하여 2D 및 3D 게임을 개발할 수 있고, 플랫폼 간 C++ 모바일 코드를 공유, 재사용, 빌드, 배포 및 디버그한다. 안드로이드 네이티브-액티비티 응용 프로그램용 템플릿에서 프로젝트를 만들거나, 다른 솔루션에 포함할 고성능 공유 라이브러리를 만든다. 또한, iOS, 안드로이드, 윈도 및 맥OS 앱의 수명 주기를 자동화할 수 있다.

애저 앱

애저(Azure)에 로그인하지 않고도 에뮬레이터 및 빠른 시작 템플릿을 사용하여 로컬에서 앱을 개발할 수 있다. 수요 증가에 맞게 매끄럽게 확장하거나 규모를 축소하여 비용을 절감할 수 있다. 이 앱을 사용하면 보안과 단순성을 동시에 얻을 수 있다. 로컬에서 재현할 필요 없이 비주얼 스튜디오의 원격 디버거를 빨리 추가하여 프로덕션 환경에서 앱을 진단 및 디버그한다. 특정 이벤트를 기록하는 방법을 통해, 재현하기 어렵거나 배포 시 발생하는 오류를 디버그 할 수 있다.

웹 앱

비주얼 스튜디오의 컨테이너 개발 도구를 이용하여 응용 프로그램을 만들고, 배포할 수 있다. 또 강력한 웹 프레임워크로 생산성을 높인다. 클라이언트 쪽 자바스크립트용 인텔리센스가 포함되어 있고, 앵귤러(Angular) 및 부트스트랩과같이 가장 널리 사용되는 웹 프레임워크에 대한 고급 지원이 포함된다. 오픈 웹에 참여하고 어디서나 라이브러리를 사용할 수 있다. 성장하는 에코시스템에서 제공되는 수천 개의 확장 기능을 활용해서 비주얼 스튜디오를 사용자 지정하고 고유 확장을 직접 만들 수도 있다.

오피스

마법사에서 몇 가지 질문에 응답하면 프로젝트가 신속하게 시작된다. 수행할 추가 기능 또는 앱과 같은 가장 중요한 항목과 코드에 집중할 수 있다. 세계적인 수준의 진단 도구를 사용하여 오피스 또는 쉐어포인트 프로젝트를 디버그한다. 또한, 게시 디자이너를 사용하여 클라우드 또는 온프레미스 서버에 추가 기능을 게시한다. 다른 게시 포털로 전환할 필요 없이 비주얼 스튜디오에서 유지할 수 있도록 게시 프로세스를 간소화했다.

게임

DirectX로 고성능 2D 및 3D 게임을 개발하여 데스크톱, 태블릿 및 휴대폰 등 윈도 제품군의 다양한 장치에서 실행할 수 있다. 유니티(Unity) 엔진이 2D 및 3D 게임과 대화형 콘텐츠를 만드는 탁월한 단일 플랫폼에 통합되었다. 언리얼 엔진 4는 게임 개발자에 의해 게임 개발자를 위해 만들어진 완전한 게임 개발 도구 모음이다. Cocos는 게임 빌드용 오픈 소스 전문 개발 도구 키트로, 개발자에게 간소화된 워크플로우를 제공한다.

데이터베이스

애플리케이션 코드를 개발할 때와 마찬가지로 소스 제어 프로젝트에서 데이터베이스를 개발하고, 빌드하고, 테스트하고, 게시할 수 있다. 새로운 데이터베이스 프로젝트에서 처음부터 시작하거나 몇 번의 클릭으로 기존 데이터베이스를 가져올 수 있다. 테이블 디자이너를 사용하여 새 테이블을 디자인하거나, 기존 테이블을 수정하거나, 열, 제약 조건 및 인덱스를 빠르게 새로 추가하거나 기존 항목을 수정할 수 있다.[1]

프로그래밍 언어

C++

어떤 환경에서든 코드 베이스를 열고 즉시 작업을 시작할 수 있다. CMake, Clang, MinGW 등 타사 도구 집합을 사용하여 통합 개발 환경(IDE)에서 직접 코드를 빌드하고 디버그 할 수 있다. HoloLens, Surface Hub, PC 또는 Xbox를 대상으로 하는 클래식 윈도 데스크톱 프로그램 또는 유니버설 윈도 앱을 디자인하고 빌드할 수 있다. 강력한 코딩 및 디버깅 도구를 활용하여 GCC, Clang 또는 다른 컴파일러로 빌드된 리눅스를 대상으로 하는 코드를 관리할 수 있다. 그 외에도 모바일 개발, 게임 개발, 탁월한 디버깅 및 진단, 강력한 생산성 기능이 있다.

노드제이에스

기본 제공되는 프로젝트 탬플릿을 사용해서 노드제이에스(Node.js) 앱 개발을 시작할 수 있다. 다양한 기능의 사용자 인터페이스, 명령줄 또는 두 환경 모두에서 npm을 완벽하게 활용할 수 있다. 다양한 사용자 인터페이스에서 패키지를 신속하게 검색, 설치하고, npm 트리보기에서 패키지 및 종속 관계를 확인하고, 일부 종속 관계가 누락된 경우 경고를 확인할 수 있다. 또 고급 디버깅, 프로파일링, 단위 테스트 등의 기능도 있다.

파이썬

비주얼 스튜디오에서 사용자 코드를 확인하고, 어느 유형을 어디로 이동할지 알려준다. 도구 설명, 완성 및 코드 조각을 통해 생산성이 향상된다. pip, PyPI 및 가상 환경 지원을 사용하여 프로젝트와 종속성을 관리한다. 코드를 시각적 단계별로 안내하고, 상태를 보거나 수정하고, 운영 체제와 상관없이 프로그램을 조작할 수 있다. 또한, 팀 탐색기를 사용하여 Git/TFS 프로젝트, 보류 중인 변경, 분기 등을 쉽게 관리하거나, 비주얼 스튜디오에서 제공되는 여러 소스 제어 확장 기능 중 하나를 선택할 수 있다.

닷넷

C# 및 비주얼 베이직은 닷넷(.NET) 프레임워크에서 실행되는 다양한 응용 프로그램을 만들기 위해 설계된 프로그래밍 언어이다. F#은 오픈소스, 크로스 플랫폼, 기능 우선 프로그래밍 언어로, 개발자가 유지 관리할 수 있고, 간단하며, 강력한 코드를 사용하여 컴퓨팅 문제를 해결할 수 있도록 지원한다. 코드 재사용을 최대화하면서 iOS, 안드로이드(Android), 윈도(Windows)에서 C#을 사용하여 다양한 네이티브 앱을 만들 수 있다.

자바스크립트

풍부한 인텔리센스 완성 및 시그니처 도움말, 크로스 프로젝트 리팩터링, 초고속 코드 탐색으로 자바스크립트 생산성을 최대화한다. 자바스크립트에 즉시 사용 가능한, 최고 수준의 디버깅 환경을 제공한다. 소스 맵과 같은 강력한 기능을 통해 코드에 직접 중단점을 지정할 수 있고, 성능 프로파일러 덕분에 런타임 메모리 병목 지접을 쉽게 찾을 수 있다. 또한, 기존 프로젝트에 타입스크립트(TypeScript)를 추가하여 생산성을 한 차원 높이거나 타입스크립트 템플릿을 사용하여 빠르게 시작할 수 있다.[1]

비주얼 스튜디오 코드

비주얼 스튜디오 코드는 마이크로소프트가 마이크로소프트 윈도, 맥OS, 리눅스용으로 개발한 소스 코드 편집기로, 가볍지만 강력한 소스 코드 편집기다. 디버깅 지원과 깃(Git) 제어, 구문 강조 기능 등이 포함되어 있으며, 사용자가 편집기의 테마와 단축키, 설정 등을 수정할 수 있다. 비주얼 스튜디오 코드는 시작 속도가 빠르고, 변수, 메소드, 중요 모듈용 인텔리센스 코드 완성 기능을 비롯하여 그래픽 디버깅, 린팅, 멀티 커서 편집, 매개변수 힌트 등 강력한 편집 가능과 세련된 코드 탐색 및 리팩토링 기능, 깃 지원 등 내장 소스 코드 관리 기능을 가지고 있다.[5]

비교

비주얼 스튜디오 코드는 독립 파일 편집에 최적화된 프로그램이고, 비주얼 스튜디오는 패키지 성 프로젝트를 개발하기에 최적화된 프로그램이다. 또한 비주얼 스튜디오 코드는 무료로 사용이 가능하지만, 비주얼 스튜디오는 개인과 소기업에서는 커뮤니티가 무료이다. 하지만 일반회사는 구매 해야 사용이 가능하고, 디버깅이 가능한 프로젝트 개발 툴이기 때문에, 많은 기능을 가지고 있어, 설치할 때 큰 용량이 필요하다.[6] 개발 스타일이 테스트 위주라면 비주얼 스튜디오를 그대로 사용하면 되지만, 비주얼 스튜디오 코드는 노드제이에스, 고, 닷넷, PHP를 지원하는 테스트 위주 확장 프로그램이 15가지 정도 있다. 마찬가지로, 비주얼 스튜디오는 데이터베이스, 특히 마이크로소프트 구조화 질의어(Structured Query Language, SQL) 서버와 그 친척과의 작업에 탁월하다. 하지만 비주얼 스튜디오 코드는 데이터베이스 확장 프로그램이 많다. 비주얼 스튜디오는 리팩토링 지원이 훌륭한지만, 비주얼 스튜디오 코드는 대여섯 개 언어에 대한 기본 리팩토링만 지원한다.[7]

연계 프레임워크

블레이저

플래시나 실버라이트처럼 웹 브라우저 환경에서 대화형 웹 UI 및 애플리케이션을 더욱더 쉽게 제작할 수 있도록 돕는 닷넷 기반 프레임워크인 블레이저는 개발환경인 비주얼 스튜디오와의 연계를 비롯해 보안 인증, 애플리케이션 배포 등 웹 애플리케이션 개발부터 배포 관리를 위한 기능을 모두 제공한다. 개방형 웹 표준 기반으로 실버라이트나 플래시와 달리 별도의 플러그인, 코드 변환이 필요 없고, 엣지, 크롬 등 모바일 브라우저를 포함한 거의 모든 웹 브라우저를 지원한다. 블레이저는 폭넓은 라이브러리와 애플리케이션 프로그래밍 인터페이스(API)가 특징이다. 실버라이트가 사용하던 자바스크립트 대신 닷넷의 레이저 구문과 C#을 사용하며 닷넷 라이브러리를 사용하거나 자바스크립트, 라이브러리를 호출해 사용할 수 있다. 클라이언트와 서버 코드를 모두 C#으로 작성해 코드와 라이브러리를 공유할 수도 있다.[8]

각주

  1. 1.0 1.1 1.2 1.3 비주얼 스튜디오 공식 홈페이지 - https://visualstudio.microsoft.com/ko/
  2. Mickael, 〈Visual Studio IDE(Community, Professional, Enterprise) 차이〉, 《티스토리》, 2019-09-22
  3. Nitrosoft, 〈(Microsoft) Visual Studio(비주얼 스튜디오) 제품 소개: 애플리케이션 개발/ 웹 프로그램 개발〉, 《네이버 블로그》, 2017-08-22
  4. Visual Studio 2019의 새로운 기능〉, 《마이크로소프트》, 2020-11-10
  5. 비주얼 스튜디오 코드〉, 《위키백과》
  6. 고코더, 〈비주얼 스튜디오 코드 vs 비주얼 스튜디오 – 두 IDE의 차이점을 알아보자!〉, 《티스토리》, 2019-10-16
  7. Martin Heller, 〈'MS 비주얼 스튜디오' vs. 'MS 비주얼 스튜디오 코드'... 장단점 비교와 선택 팁〉, 《아이티월드》, 2019-09-16
  8. 남혁우 기자, 〈MS, 플래시 대체 웹앱 프레임워크 '블레이저' 공개〉, 《지디넷코리아》, 2020-05-25

참고자료

같이 보기


  검수요청.png검수요청.png 이 비주얼 스튜디오 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.