# 개발 환경 설정 (Visual Studio, GCC 등)

#### Visual Studio 설정

Visual Studio는 Windows 환경에서 가장 널리 사용되는 C++ 통합 개발 환경(IDE) 중 하나이다. 다음은 Visual Studio에서 C++ 웨이블릿 변환 라이브러리를 사용하는 데 필요한 개발 환경 설정 과정이다.

**Visual Studio 설치**

1. **Visual Studio 다운로드**: [Visual Studio 공식 사이트](https://visualstudio.microsoft.com/)에서 최신 버전의 Visual Studio를 다운로드한다.
2. **설치 옵션 선택**: 설치 과정에서 'Desktop development with C++' 워크로드를 선택해야 한다. 이 워크로드는 C++ 컴파일러, 디버거, 그리고 기타 필수 도구를 포함한다.
3. **필요한 추가 패키지 설치**: 설치 중 "Optional" 탭에서 'C++ CMake tools', 'MSVC v143' 등의 항목을 체크하는 것이 좋다. 이는 프로젝트의 빌드 및 디버깅을 원활하게 해준다.

**프로젝트 생성 및 구성**

1. **새 프로젝트 생성**: Visual Studio를 실행한 후 'Create a new project'를 선택하고, 'Console App (C++)'을 선택한다.
2. **프로젝트 설정**:
   * **언어 표준 선택**: 프로젝트 속성 창에서 `C++ Language Standard`를 설정한다. 예를 들어, 최신 표준을 사용하려면 `C++20`을 선택할 수 있다.
   * **인클루드 디렉터리 추가**: 외부 라이브러리를 사용할 경우, 'VC++ Directories'의 `Include Directories`에 해당 라이브러리의 헤더 파일 경로를 추가해야 한다.
   * **라이브러리 디렉터리 추가**: 라이브러리를 링크하기 위해 `Library Directories`에 라이브러리 파일의 경로를 설정하고, 'Linker -> Input'에서 `.lib` 파일을 추가한다.

**예제 코드 실행**

간단한 예제 프로그램을 통해 설치된 환경을 테스트할 수 있다.

```cpp
#include <iostream>

int main() {
    std::cout << "C++ 환경이 성공적으로 설정되었다!" << std::endl;
    return 0;
}
```

이 코드를 실행하여 출력 결과가 정상적으로 보이면, Visual Studio에서 C++ 개발 환경이 올바르게 설정된 것이다.

#### GCC 설정

GCC(GNU Compiler Collection)는 Windows, macOS, Linux 등 다양한 운영 체제에서 C++ 코드를 컴파일할 수 있는 컴파일러이다. 특히, 오픈소스 프로젝트나 서버 환경에서 널리 사용된다.

**GCC 설치 (Windows)**

1. **MinGW-w64 설치**: Windows에서는 MinGW-w64를 사용하여 GCC 컴파일러를 설치할 수 있다. [Mingw-w64 다운로드 페이지](https://www.mingw-w64.org/)에서 설치 파일을 받아 설치한다.
2. **환경 변수 설정**:
   * 설치가 완료되면, GCC의 실행 파일 경로를 `PATH` 환경 변수에 추가해야 한다. 예를 들어, `C:\mingw-w64\bin` 경로를 `PATH`에 추가한다.
   * Command Prompt에서 `g++ --version` 명령을 실행하여 정상적으로 설치되었는지 확인한다.

**GCC 설치 (Linux)**

1. **패키지 관리자 사용**: Ubuntu와 같은 Debian 기반 배포판에서는 다음 명령을 사용하여 GCC를 설치할 수 있다.

   ```bash
   sudo apt update
   sudo apt install g++
   ```
2. **버전 확인**: 설치 후 `g++ --version` 명령어로 설치 상태를 확인한다.

**CMake와 함께 사용**

CMake는 크로스 플랫폼 빌드 시스템으로, 프로젝트 설정을 간단하게 만들어 준다. GCC와 CMake를 함께 사용하면, 복잡한 프로젝트에서도 손쉽게 빌드 설정을 관리할 수 있다.

1. **CMake 설치**: [CMake 공식 사이트](https://cmake.org/download/)에서 플랫폼에 맞는 설치 파일을 다운로드하여 설치한다.
2. **CMakeLists.txt 작성**: 프로젝트 디렉토리에 `CMakeLists.txt` 파일을 생성하여 프로젝트 빌드를 설정한다. 예를 들어:

   ```cmake
   cmake_minimum_required(VERSION 3.10)
   project(WaveletTransform)

   set(CMAKE_CXX_STANDARD 20)
   add_executable(WaveletTransform main.cpp)
   ```
3. **빌드 및 실행**:

   ```bash
   mkdir build
   cd build
   cmake ..
   make
   ./WaveletTransform
   ```

#### macOS에서의 개발 환경 설정

macOS에서는 주로 Xcode와 Homebrew를 사용하여 C++ 개발 환경을 설정할 수 있다. Xcode는 macOS에서 제공하는 공식 통합 개발 환경(IDE)이며, Homebrew는 패키지 관리자이다.

**Xcode 설치 및 설정**

1. **Xcode 설치**:
   * App Store를 통해 Xcode를 설치한다. Xcode는 Apple의 개발 도구 세트로, C++ 개발을 위한 컴파일러와 디버거를 포함하고 있다.
   * 설치가 완료되면 `Xcode Command Line Tools`도 자동으로 설치된다. 이를 통해 Xcode 없이도 터미널에서 `clang++` 명령어를 사용하여 C++ 코드를 컴파일할 수 있다.
2. **프로젝트 생성**:
   * Xcode를 실행한 후, "Create a new Xcode project"를 선택하고, "macOS" 탭에서 "Command Line Tool"을 선택한다.
   * 프로젝트 이름을 설정하고, 언어로 `C++`를 선택한다.
   * 프로젝트가 생성되면, 필요에 따라 외부 라이브러리를 추가하거나, 프로젝트 설정에서 `C++ Standard`를 설정할 수 있다.
3. **CMake와 Xcode 통합**:
   * Xcode에서 직접 CMake 프로젝트를 열 수 있다. CMake 프로젝트를 구성하려면 `CMakeLists.txt`를 작성하고, 터미널에서 다음 명령을 실행하여 Xcode 프로젝트 파일을 생성한다.

     ```bash
     cmake -G "Xcode" ..
     ```
   * 이를 통해 Xcode에서 CMake 프로젝트를 열고 빌드, 디버깅할 수 있다.

**Homebrew를 통한 GCC 설치**

1. **Homebrew 설치**:
   * Homebrew는 macOS에서 사용할 수 있는 패키지 관리자이다. 터미널을 열고 다음 명령어를 입력하여 Homebrew를 설치한다.

     ```bash
     /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
     ```
2. **GCC 설치**:
   * Homebrew를 통해 GCC를 설치하려면 다음 명령어를 사용한다.

     ```bash
     brew install gcc
     ```
   * 설치가 완료되면 `g++-XX` 형식의 명령어가 제공된다. 여기서 `XX`는 GCC의 버전 번호이다. 예를 들어, `g++-12`를 사용하여 C++20 코드를 컴파일할 수 있다.
3. **CMake와 GCC 사용**:
   * GCC 설치 후, CMake에서 GCC 컴파일러를 사용하려면 `CMakeLists.txt` 파일을 수정할 필요 없이 다음과 같이 명령을 실행한다.

     ```bash
     mkdir build
     cd build
     cmake -DCMAKE_C_COMPILER=gcc-XX -DCMAKE_CXX_COMPILER=g++-XX ..
     make
     ```

#### 통합 개발 환경(IDE)에서의 구성 예시

**Visual Studio Code**

Visual Studio Code(VS Code)는 가볍고 유연한 코드 편집기로, 다양한 확장을 통해 C++ 개발 환경을 구성할 수 있다.

1. **VS Code 설치**: [VS Code 공식 사이트](https://code.visualstudio.com/)에서 설치 파일을 다운로드하고 설치한다.
2. **필수 확장 설치**:
   * `C/C++` 확장: C++ 코드의 구문 강조 표시, 코드 탐색, 디버깅 등을 제공한다.
   * `CMake Tools` 확장: CMake 프로젝트의 빌드, 디버깅을 도와준다.
   * `Code Runner`: 간단한 코드 실행을 돕는다.
3. **CMake 프로젝트 구성**:
   * `CMakeLists.txt` 파일을 프로젝트 폴더에 추가한다.
   * "CMake Tools" 확장은 자동으로 CMake 프로젝트를 감지하고, `build` 폴더를 생성하여 빌드를 수행한다.
   * 명령 팔레트(`Ctrl + Shift + P`)에서 `CMake: Configure`를 선택하여 원하는 컴파일러를 지정할 수 있다.

**Code::Blocks**

Code::Blocks는 크로스 플랫폼 C++ IDE로, Linux, Windows, macOS에서 동일한 인터페이스로 사용할 수 있다.

1. **설치**: [Code::Blocks 공식 사이트](https://www.codeblocks.org/)에서 운영 체제에 맞는 설치 파일을 다운로드하고 설치한다.
2. **프로젝트 생성**:
   * Code::Blocks를 실행한 후 "Create a new project"를 선택하고 "Console application"을 선택한다.
   * 언어로 `C++`을 선택하고, 프로젝트 이름과 위치를 지정한다.
3. **빌드 및 실행**:
   * Code::Blocks는 기본적으로 MinGW 또는 GCC와 함께 제공된다. 설정에서 `Build`를 클릭하여 프로그램을 컴파일하고 실행할 수 있다.
   * 외부 라이브러리를 사용할 경우, `Project -> Build options`에서 라이브러리와 인클루드 경로를 설정해야 한다.
