> For the complete documentation index, see [llms.txt](https://byulseop-til.gitbook.io/sinheeseop_til/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://byulseop-til.gitbook.io/sinheeseop_til/c++/101/cpp_development_environment/windows_setup.md).

# WindowsSetup

아래는 Windows 환경에서 **Visual Studio**를 사용해 C++ 개발 환경을 구축하는 방법을 단계별로 설명한 가이드입니다. 각 단계마다 "알고 써야 할 최소한의 지식"도 함께 정리했습니다.

### 1. Visual Studio 다운로드 및 설치

#### 1-1. Visual Studio 다운로드

* **단계**: [Visual Studio 공식 웹사이트](https://visualstudio.microsoft.com/)에 접속하여 **Visual Studio Community Edition**(무료 버전)을 다운로드합니다.
* **알아야 할 지식**:
  * **에디션 종류**: Community는 개인 및 소규모 팀에 적합하며, Professional/Enterprise는 기업용으로 제공됩니다.
  * **Visual Studio**는 통합 개발 환경(IDE)으로, 코드 작성, 빌드, 디버깅 등 모든 개발 과정을 한 곳에서 관리할 수 있습니다.

#### 1-2. 설치 프로그램 실행

* **단계**: 다운로드한 설치 파일을 실행합니다.
* **알아야 할 지식**:
  * **Visual Studio Installer**: 여러 워크로드(개발 분야별 구성 요소)를 선택할 수 있는 도구입니다.

### 2. 설치 워크로드 선택

#### 2-1. "Desktop development with C++" 워크로드 선택

* **단계**: Installer의 "워크로드" 화면에서 **"Desktop development with C++"** 항목을 선택합니다.
* **알아야 할 지식**:
  * **워크로드**: Visual Studio에서 특정 개발 목적에 맞는 도구, 라이브러리, 컴파일러 등을 미리 묶어둔 패키지입니다.
  * **C++ 컴파일러**: 이 워크로드에는 MSVC(Visual C++ 컴파일러)와 함께 Windows SDK, CMake 등이 포함되어 있어 C++ 프로젝트를 빌드할 수 있습니다.

#### 2-2. 추가 옵션 확인 (선택 사항)

* **단계**: 필요에 따라 **C++ CMake tools for Windows**와 **MSVC v142/v143 toolset** 등 추가 컴포넌트를 선택합니다.
* **알아야 할 지식**:
  * **CMake**: 크로스 플랫폼 빌드 시스템. 프로젝트의 빌드 설정을 자동화하는 도구입니다.
  * **Toolset**: 컴파일러 및 링커의 버전을 의미하며, 최신 버전을 선택하면 최신 C++ 표준과 최적화를 지원합니다.

#### 2-3. 설치 시작

* **단계**: 선택이 끝나면 "Install" 버튼을 눌러 설치를 시작합니다.
* **알아야 할 지식**:
  * **설치 경로**와 **디스크 용량**: 설치 경로와 필요한 디스크 용량을 미리 확인하세요.
  * **인터넷 연결**: 설치 과정에서 추가 다운로드가 있을 수 있으므로 안정적인 인터넷 연결이 필요합니다.

### 3. Visual Studio 첫 실행 및 기본 설정

#### 3-1. Visual Studio 실행 및 로그인

* **단계**: 설치가 완료되면 Visual Studio를 실행합니다.
* **알아야 할 지식**:
  * **마이크로소프트 계정**: 무료 기능 및 추가 기능(예: 클라우드 연동)을 위해 로그인할 수 있으나, 로그인 없이도 사용 가능합니다.

#### 3-2. 테마 및 레이아웃 선택

* **단계**: 첫 실행 시 다크 모드 또는 라이트 모드 등 원하는 **테마**를 선택합니다.
* **알아야 할 지식**:
  * **사용자 경험(UX)**: 개발 환경은 장시간 사용하므로 편안한 테마를 선택하는 것이 중요합니다.

#### 3-3. 시작 페이지와 초기 설정 확인

* **단계**: Visual Studio의 시작 페이지에서 최근 프로젝트, 템플릿 등이 표시되며, 필요에 따라 기본 설정을 변경할 수 있습니다.
* **알아야 할 지식**:
  * **솔루션(Solution)**: Visual Studio에서는 하나 이상의 프로젝트를 포함하는 단위를 솔루션이라고 부릅니다.
  * **프로젝트(Project)**: 개별 애플리케이션 또는 라이브러리 단위로, 소스 코드, 리소스, 설정 파일 등을 포함합니다.

### 4. 새 C++ 프로젝트 생성

#### 4-1. 새 프로젝트 만들기

* **단계**: **File > New > Project**를 클릭합니다.
* **알아야 할 지식**:
  * **프로젝트 템플릿**: Visual Studio는 다양한 템플릿(콘솔, Windows 데스크탑, 게임, 웹 등)을 제공합니다. C++ 학습의 경우 **Console App** 템플릿이 적합합니다.

#### 4-2. "Console App" 선택 및 설정

* **단계**: "Console App" 템플릿을 선택하고 프로젝트 이름, 위치, 솔루션 이름 등을 지정합니다.
* **알아야 할 지식**:
  * **프로젝트 구조**: 생성된 프로젝트는 기본적인 main 함수와 관련 파일을 포함합니다.
  * **빌드 구성**: "Debug"와 "Release" 빌드 구성의 차이를 이해합니다. (디버깅용 vs. 최적화된 실행 파일)

#### 4-3. 프로젝트 생성 완료 후 코드 확인

* **단계**: 생성된 프로젝트의 기본 main.cpp 파일을 열어 "Hello, World!" 코드가 있는지 확인합니다.
* **알아야 할 지식**:
  * **C++ 기본 문법**: 간단한 출력 문(예: `std::cout`)을 이해합니다.
  * **헤더 파일**: `<iostream>` 등 필수 헤더의 역할을 이해합니다.

### 5. 빌드 및 실행

#### 5-1. 빌드하기

* **단계**: 상단 메뉴에서 **Build > Build Solution**을 클릭하여 프로젝트를 빌드합니다.
* **알아야 할 지식**:
  * **컴파일 과정**: 소스 코드를 기계어로 변환하는 과정을 이해합니다.
  * **에러 메시지**: 컴파일 에러가 발생하면 메시지를 확인하고, 관련 문법이나 설정을 점검합니다.

#### 5-2. 디버깅 및 실행하기

* **단계**: 빌드가 성공하면 **Debug > Start Debugging** 또는 단축키(F5)를 사용하여 실행합니다.
* **알아야 할 지식**:
  * **디버거**: 중단점(breakpoint)을 설정하고, 변수 값을 관찰하는 등 기본 디버깅 기법을 익힙니다.
  * **출력창**: 프로그램 실행 결과와 로그를 확인하는 방법을 배웁니다.

### 6. 필수적인 추가 설정 및 학습

#### 6-1. Git 연동 (버전 관리)

* **단계**: Visual Studio 내에서 **Team Explorer**를 사용하여 Git 저장소를 생성하거나 기존 저장소에 연결합니다.
* **알아야 할 지식**:
  * **버전 관리 기본 개념**: 커밋, 브랜치, 병합(Merge) 등의 개념을 이해합니다.
  * **Git 사용법**: 기본적인 Git 명령어와 Visual Studio와의 통합 방법을 익힙니다.

#### 6-2. 확장 기능 설치

* **단계**: Visual Studio의 **Extensions > Manage Extensions** 메뉴에서 필요한 확장 기능(예: Visual Assist, ReSharper C++)를 설치합니다.
* **알아야 할 지식**:
  * **생산성 도구**: 코드 완성, 리팩토링, 디버깅 등 개발 효율성을 높이는 도구의 역할을 이해합니다.

### 정리

각 단계마다 중요한 개념을 이해하는 것이, 단순히 설치만 하는 것이 아니라 "알고 써야" 하는 이유입니다.

* **컴파일러와 IDE**의 역할, **워크로드**와 **프로젝트 템플릿**의 개념, 그리고 **빌드 구성** 및 **디버깅** 기법을 숙지하면, 앞으로 C++ 프로젝트를 관리하고 문제를 해결하는 데 큰 도움이 됩니다.
