# Python 개발 환경 구성

Python 개발 환경을 설정하는 것은 ChatGPT API를 효과적으로 사용하기 위한 첫 단계이다. 이 장에서는 Python을 설치하고, 가상 환경을 구성하며, 필수 패키지를 관리하는 방법에 대해 자세히 설명하겠다.

#### Python 설치

Python은 다양한 운영 체제에서 사용할 수 있다. 최신 버전을 설치하는 것이 중요하며, 일반적으로 Python 3.8 이상을 권장한다. Python 설치 방법은 운영 체제에 따라 약간 다를 수 있다.

* **Windows**: Python 공식 웹사이트(<https://www.python.org)에서> 설치 프로그램을 다운로드한 후, 설치 과정에서 "Add Python to PATH" 옵션을 반드시 선택하라. 이를 통해 명령 프롬프트에서 Python 명령어를 바로 사용할 수 있다.
* **macOS**: macOS에는 기본적으로 Python 2.x가 설치되어 있으나, 이 버전은 오래된 버전이다. 따라서 `Homebrew`를 사용하여 최신 버전을 설치하는 것이 좋다. 다음 명령어를 터미널에서 실행하라.

  ```bash
  brew install python
  ```
* **Linux**: 대부분의 Linux 배포판에는 Python이 사전 설치되어 있다. 그러나 최신 버전이 아닌 경우, `apt`나 `yum` 패키지 관리자를 사용하여 업데이트할 수 있다. 예를 들어, Ubuntu에서는 다음 명령어를 사용할 수 있다.

  ```bash
  sudo apt-get update
  sudo apt-get install python3
  ```

#### 가상 환경 설정

Python에서 가상 환경을 사용하는 것은 매우 중요하다. 가상 환경을 통해 프로젝트별로 독립적인 패키지와 Python 버전을 관리할 수 있다. 이를 통해 패키지 충돌을 방지하고, 프로젝트의 의존성을 명확하게 유지할 수 있다.

* **가상 환경 생성**: `venv` 모듈을 사용하여 가상 환경을 생성할 수 있다. 가상 환경을 생성하려는 프로젝트 디렉토리로 이동한 후 다음 명령어를 실행하라.

  ```bash
  python3 -m venv myenv
  ```

  여기서 `myenv`는 가상 환경의 이름이며, 원하는 대로 변경할 수 있다.
* **가상 환경 활성화**:

  * **Windows**:

    ```bash
    myenv\Scripts\activate
    ```
  * **macOS/Linux**:

    ```bash
    source myenv/bin/activate
    ```

  가상 환경이 활성화되면, 명령 프롬프트나 터미널에서 `(myenv)`라는 프리픽스가 표시된다.
* **가상 환경 비활성화**: 가상 환경을 비활성화하려면 다음 명령어를 입력하라.

  ```bash
  deactivate
  ```

#### 필수 패키지 설치

ChatGPT API를 사용하기 위해서는 `openai` 라이브러리가 필요하다. 이 라이브러리 외에도 일반적으로 사용되는 몇 가지 패키지가 있다.

* **필수 패키지 설치**: 다음 명령어를 사용하여 필요 패키지를 설치할 수 있다.

  ```bash
  pip install openai requests
  ```

  여기서 `requests`는 HTTP 요청을 보내기 위해 사용되는 라이브러리이다. 필요에 따라 다른 패키지도 추가로 설치할 수 있다.

#### 패키지 및 의존성 관리

Python 프로젝트에서 패키지와 의존성을 관리하는 것은 매우 중요하다. 이를 효율적으로 관리하기 위해 `pip`와 `requirements.txt` 파일을 사용할 수 있다.

* **패키지 설치**: 위에서 설명한 것처럼 `pip install` 명령어를 사용하여 패키지를 설치할 수 있다.
* **의존성 파일 생성**: 프로젝트에서 사용하는 모든 패키지를 기록한 `requirements.txt` 파일을 생성하려면 다음 명령어를 실행하라.

  ```bash
  pip freeze > requirements.txt
  ```

  이 파일을 사용하여 다른 환경에서 동일한 패키지를 설치할 수 있다.

  ```bash
  pip install -r requirements.txt
  ```

#### IDE 및 편집기 설정

효율적인 개발을 위해 적절한 IDE(통합 개발 환경)나 텍스트 편집기를 선택하는 것이 중요하다. Python 개발에 널리 사용되는 몇 가지 IDE와 편집기를 소개한다.

* **VS Code**: Microsoft에서 개발한 무료 편집기인 VS Code는 Python 개발에 매우 적합한다. 다양한 확장 기능을 통해 Python 코드 작성, 디버깅, 테스트 등을 지원한다.
* **PyCharm**: JetBrains에서 개발한 PyCharm은 강력한 기능을 제공하는 Python 전용 IDE이다. 코드 완성, 코드 분석, 디버깅 등 다양한 기능을 제공한다.
* **Jupyter Notebook**: 데이터 과학과 머신러닝 프로젝트에서 주로 사용되는 Jupyter Notebook은 Python 코드와 함께 문서를 작성하고, 시각화 결과를 함께 볼 수 있는 도구이다.

각 IDE나 편집기를 설정하는 방법은 다르지만, Python 개발에 필수적인 몇 가지 설정은 공통적으로 존재한다.

* **Python 인터프리터 설정**: 프로젝트에 사용할 Python 인터프리터를 설정해야 한다. 이는 가상 환경을 활성화한 후, 해당 IDE나 편집기에서 가상 환경을 사용하도록 설정하는 것을 의미한다.
  * **VS Code**:
    1. Command Palette(명령 팔레트)를 열고(`Ctrl + Shift + P`), `Python: Select Interpreter`를 선택한다.
    2. 가상 환경의 경로를 선택한다.
  * **PyCharm**:
    1. Settings(설정)에서 `Project: <프로젝트 이름>`을 선택한 후, `Python Interpreter`를 선택한다.
    2. `Add Interpreter` 버튼을 클릭하고, 가상 환경을 선택한다.
* **Linting 및 Formatting 설정**: Python 코드의 품질을 유지하기 위해 linting과 formatting 도구를 설정하는 것이 좋다.
  * **Flake8**: 코드 스타일을 검사하는 도구로, 코드의 일관성을 유지하는 데 도움이 된다. 다음 명령어로 설치할 수 있다.

    ```bash
    pip install flake8
    ```
  * **Black**: 코드 포맷터로, 코드를 일관되게 포맷팅한다. 설치 명령어는 다음과 같다.

    ```bash
    pip install black
    ```
  * **VS Code**에서는 `settings.json` 파일에서 자동으로 `Black`과 `Flake8`을 실행하도록 설정할 수 있다.

    ```json
    "python.linting.flake8Enabled": true,
    "python.formatting.provider": "black",
    "editor.formatOnSave": true
    ```
  * **PyCharm**에서는 Settings에서 `Code Style` 및 `Inspections` 항목을 통해 `Black`과 `Flake8`을 설정할 수 있다.

#### Python 버전 관리

Python 개발 환경에서 Python 버전을 관리하는 것은 매우 중요하다. 프로젝트별로 서로 다른 Python 버전을 사용할 수 있으며, 이를 위해 `pyenv`와 같은 도구를 사용할 수 있다.

* **Pyenv 설치**:
  * **macOS/Linux**: 다음 명령어를 사용하여 `pyenv`를 설치할 수 있다.

    ```bash
    curl https://pyenv.run | bash
    ```

    설치 후, 다음 명령어를 통해 쉘 설정 파일(`~/.bashrc`, `~/.zshrc` 등)에 `pyenv` 초기화 스크립트를 추가한다.

    ```bash
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
    ```

    쉘을 다시 로드한 후, `pyenv`를 사용할 수 있다.
* **Python 버전 설치 및 관리**: `pyenv`를 사용하여 다양한 Python 버전을 설치하고, 프로젝트별로 이를 선택할 수 있다.
  * 특정 버전을 설치하려면:

    ```bash
    pyenv install 3.10.0
    ```
  * 설치된 버전을 전역 또는 로컬 프로젝트에서 사용하도록 설정하려면:

    ```bash
    pyenv global 3.10.0
    pyenv local 3.10.0
    ```
  * 현재 사용 중인 Python 버전을 확인하려면:

    ```bash
    pyenv versions
    ```

이렇게 Python 개발 환경을 설정하면 ChatGPT API를 사용하여 프로젝트를 개발할 준비가 완료된다.
