diff --git a/docs/ko/docs/virtual-environments.md b/docs/ko/docs/virtual-environments.md
new file mode 100644
index 000000000..4f36b08a5
--- /dev/null
+++ b/docs/ko/docs/virtual-environments.md
@@ -0,0 +1,844 @@
+# 가상 환경
+
+파이썬 프로젝트에서 작업할 때, 각 프로젝트마다 설치하는 패키지를 격리하기 위해 **가상 환경(virtual environment)**(또는 유사한 메커니즘)을 사용하는 것이 좋습니다.
+
+/// info | 정보
+
+만약 가상 환경을 어떻게 생성하고 사용하는지 이미 알고 있다면, 이 섹션은 건너뛰어도 됩니다. 🤓
+
+///
+
+/// tip | 팁
+
+**가상 환경(virtual environment)**은 **환경 변수(environment variable)**와 다릅니다.
+
+**환경 변수**는 프로그램에서 사용할 수 있는 시스템 변수입니다.
+
+**가상 환경**은 어떤 파일들이 포함된 하나의 디렉터리입니다.
+
+///
+
+/// info | 정보
+
+이 페이지는 **가상 환경**을 사용하는 방법과 작동 원리를 알려줍니다.
+
+**모든 것을 관리해 주는 도구**(파이썬 설치를 포함하여)를 사용하고 싶다면, uv를 시도해 보십시오.
+
+///
+
+## 프로젝트 생성
+
+먼저 프로젝트를 위한 디렉터리를 생성하십시오.
+
+예제에서는 사용자 홈 디렉터리 내 `code`라는 디렉터리를 생성합니다.
+
+그리고 그 안에 프로젝트별 디렉터리를 생성합니다.
+
+
+
+```console
+// 홈 디렉터리로 이동
+$ cd
+// 모든 프로젝트를 위한 code 디렉터리 생성
+$ mkdir code
+// code 디렉터리로 이동
+$ cd code
+// 이 프로젝트를 위한 디렉터리 생성
+$ mkdir awesome-project
+// 생성한 프로젝트 디렉터리로 이동
+$ cd awesome-project
+```
+
+
+
+## 가상 환경 생성
+
+파이썬 프로젝트를 **처음** 시작할 때, **여러분의 프로젝트 안에** 가상 환경을 생성하십시오.
+
+/// tip | 팁
+
+이 작업은 **프로젝트마다 한 번**만 하면 되고, 매 작업 때마다 수행할 필요는 없습니다.
+
+///
+
+//// tab | `venv`
+
+가상 환경을 생성하기 위해, 파이썬에 내장된 `venv` 모듈을 사용할 수 있습니다.
+
+
+
+```console
+$ python -m venv .venv
+```
+
+
+
+/// details | 명령어의 의미
+
+* `python`: `python`이라는 프로그램을 사용합니다.
+* `-m`: 모듈을 스크립트로서 실행합니다. `-m` 다음에 실행할 모듈을 지정할 것입니다.
+* `venv`: 파이썬에 기본적으로 포함된 `venv` 모듈을 사용합니다.
+* `.venv`: 새로운 디렉터리 `.venv`에 가상 환경을 생성합니다.
+
+///
+
+////
+
+//// tab | `uv`
+
+`uv`가 설치되어 있다면, 이를 사용하여 가상 환경을 생성할 수 있습니다.
+
+
+
+```console
+$ uv venv
+```
+
+
+
+/// tip | 팁
+
+기본적으로 `uv`는 `.venv`라는 디렉터리에 가상 환경을 생성합니다.
+
+하지만 디렉터리 이름을 추가 인자로 전달하여 사용자가 직접 정의할 수도 있습니다.
+
+///
+
+////
+
+해당 명령어는 `.venv`라는 디렉터리에 새로운 가상 환경을 생성합니다.
+
+/// details | `.venv` 또는 다른 이름
+
+가상 환경을 다른 디렉터리에 생성할 수도 있지만, `.venv`로 이름을 붙이는 관례가 있습니다.
+
+///
+
+## 가상 환경 활성화
+
+새로운 가상 환경을 활성화하여, 여러분이 실행하는 파이썬 명령어나 설치하는 패키지가 가상 환경을 사용하도록 합니다.
+
+/// tip | 팁
+
+프로젝트에서 작업하기 위해 **새로운 터미널 세션**을 시작할 때 마다 이 작업을 **매번** 수행하십시오.
+
+///
+
+//// tab | Linux, macOS
+
+
+
+```console
+$ source .venv/bin/activate
+```
+
+
+
+////
+
+//// tab | Windows PowerShell
+
+
+
+```console
+$ .venv\Scripts\Activate.ps1
+```
+
+
+
+////
+
+//// tab | Windows Bash
+
+또는 Windows에서 Bash를 사용하는 경우 (예: Git Bash):
+
+
+
+```console
+$ source .venv/Scripts/activate
+```
+
+
+
+////
+
+/// tip | 팁
+
+가상 환경에 **새로운 패키지**를 설치할 때 마다, 가상 환경을 다시 **활성화**하십시오.
+
+해당 패키지가 설치된 **터미널 (CLI) 프로그램**을 사용할 경우, 가상 환경에서 설치된 프로그램을 사용하고, 전역적으로 설치된 다른 프로그램은 사용하지 않습니다. 전역적으로 설치된 프로그램은 여러분이 필요한 것과 다른 버전일 수도 있습니다.
+
+///
+
+## 가상 환경 활성화 여부 확인
+
+가상 환경이 활성화 되었는지 (명령어가 제대로 작동했는지) 확인하십시오.
+
+/// tip | 팁
+
+이것은 **선택 사항**이지만, 모든 것이 기대한대로 작동하고 의도한대로 가상 환경을 사용하고 있는지 **확인**하는 좋은 방법입니다.
+
+///
+
+//// tab | Linux, macOS, Windows Bash
+
+
+
+```console
+$ which python
+
+/home/user/code/awesome-project/.venv/bin/python
+```
+
+
+
+여러분의 프로젝트(여기서는 `awesome-project`) 내부에서, `python`의 바이너리가 `.venv/bin/python`으로 표시된다면 제대로 작동하는 것입니다.🎉
+
+////
+
+//// tab | Windows PowerShell
+
+
+
+```console
+$ Get-Command python
+
+C:\Users\user\code\awesome-project\.venv\Scripts\python
+```
+
+
+
+여러분의 프로젝트(여기서는 `awesome-project`) 내부에서, `python`의 바이너리가 `.venv\Scripts\python`으로 표시된다면 제대로 작동하는 것입니다.🎉
+
+////
+
+## `pip` 업그레이드
+
+/// tip | 팁
+
+`uv`를 사용한다면 `pip` 대신 `uv`를 사용하여 패키지를 설치하므로, `pip`를 업그레이드할 필요가 없습니다. 😎
+
+///
+
+만약 `pip`(파이썬에 내장된)를 사용해 패키지를 설치하고 있다면, `pip`를 최신 버전으로 **업그레이드**해야 합니다.
+
+패키지를 설치할 때 발생하는 많은 오류는 `pip` 업그레이드를 먼저 하는 것만으로도 해결됩니다.
+
+/// tip | 팁
+
+일반적으로 이 작업은 가상 환경을 생성한 직후에 **한 번**만 수행합니다.
+
+///
+
+가상 환경이 활성화 되어 있는지 확인(위의 명령어로)한 후 다음 명령어를 수행하십시오:
+
+
+
+```console
+$ python -m pip install --upgrade pip
+
+---> 100%
+```
+
+
+
+## `.gitignore` 추가
+
+**Git**을 사용하고 있다면, `.venv` 내의 모든 항목이 Git에서 제외되도록 `.gitignore` 파일을 추가하십시오. (Git을 사용하는 것이 좋습니다)
+
+/// tip | 팁
+
+`uv`를 사용하여 가상 환경을 생성했다면, 이미 해당 작업이 수행되었으므로 이 단계는 건너뛰어도 됩니다. 😎
+
+///
+
+/// tip | 팁
+
+이 작업은 가상 환경울 생성한 직후에 **한 번**만 수행하십시오.
+
+///
+
+
+
+```console
+$ echo "*" > .venv/.gitignore
+```
+
+
+
+/// details | 명령어의 의미
+
+* `echo "*"`: 터미널에 `*`를 "출력(print)" 합니다. (다음 부분에서 약간 변경됩니다)
+* `>`: `>`의 왼쪽 명령어로 터미널에 출력된 내용을 화면을 표시하지 않고, `>`의 오른쪽에 지정된 파일에 저장합니다.
+* `.gitignore`: 텍스트가 쓰여질 파일의 이름입니다.
+
+그리고 Git에서 `*`는 "모든 것(everything)"을 의미합니다. 그래서 `.venv` 디렉터리 내의 모든 항목을 무시할 것입니다.
+
+이 명령어는 다음의 내용이 포함된 `.gitignore` 파일을 생성합니다:
+
+```gitignore
+*
+```
+
+///
+
+## 패키지 설치
+
+가상 환경을 활성화한 후, 가상 환경 안에 패키지를 설치할 수 있습니다.
+
+/// tip | 팁
+
+프로젝트에 필요한 패키지를 설치하거나 업그레이드할 때 이 작업을 **한 번** 수행하십시오.
+
+버전을 업그레이드 하거나 새로운 패키지를 추가해야 한다면 **다시 이 작업을 수행**하십시오.
+
+///
+
+### 패키지 바로 설치
+
+만약 시간이 부족하고 프로젝트의 패키지 요구사항을 파일로 선언하고 싶지 않다면, 패키지를 바로 설치할 수도 있습니다.
+
+/// tip | 팁
+
+프로그램에 필요한 패키지와 버전을 파일에 저장하는 것은 (매우) 좋은 방법입니다. (예를 들어 `requirements.txt` 또는 `pyproject.toml`)
+
+///
+
+//// tab | `pip`
+
+
+
+```console
+$ pip install "fastapi[standard]"
+
+---> 100%
+```
+
+
+
+////
+
+//// tab | `uv`
+
+`uv`를 사용하는 경우:
+
+
+
+```console
+$ uv pip install "fastapi[standard]"
+---> 100%
+```
+
+
+
+////
+
+### `requirements.txt` 에서 설치하기
+
+`requirements.txt` 파일이 있다면, 이를 사용해 패키지를 설치할 수 있습니다.
+
+//// tab | `pip`
+
+
+
+```console
+$ pip install -r requirements.txt
+---> 100%
+```
+
+
+
+////
+
+//// tab | `uv`
+
+`uv`를 사용하는 경우:
+
+
+
+```console
+$ uv pip install -r requirements.txt
+---> 100%
+```
+
+
+
+////
+
+/// details | `requirements.txt`
+
+몇몇 패키지가 포함된 `requirements.txt` 는 다음과 같은 형태입니다:
+
+```requirements.txt
+fastapi[standard]==0.113.0
+pydantic==2.8.0
+```
+
+///
+
+## 프로그램 실행
+
+가상 환경을 활성화한 후 프로그램을 실행할 수 있으며, 이 때 가상 환경 내부에 설치된 파이썬과 패키지가 사용됩니다.
+
+
+
+```console
+$ python main.py
+
+Hello World
+```
+
+
+
+## 에디터 설정
+
+아마 여러분의 대부분은 에디터를 사용하므로, 자동 완성 기능과 인라인 오류 표시를 활용하기 위해서는 생성한 가상 환경을 사용하도록 설정해야 합니다. (대부분 자동으로 감지될 것입니다)
+
+예:
+
+* VS Code
+* PyCharm
+
+/// tip | 팁
+
+이 작업은 보통 가상 환경을 생성할 때 **한 번**만 수행하면 됩니다.
+
+///
+
+## 가상 환경 비활성화
+
+프로젝트에서 작업을 마친 후에는 가상 환경을 **비활성화**할 수 있습니다.
+
+
+
+```console
+$ deactivate
+```
+
+
+
+이렇게 하면 `python`을 실행할 때, 패키지가 설치된 가상 환경에서 실행하지 않게 됩니다.
+
+## 작업 준비 완료
+
+이제 프로젝트 작업을 시작할 준비가 끝났습니다.
+
+
+
+/// tip | 팁
+
+위에서 설명한 모든 내용을 이해하고 싶슾니까?
+
+계속 읽어보십시오. 👇🤓
+
+///
+
+## 가상 환경의 필요성
+
+FastAPI로 작업하려면 Python을 설치해야 합니다.
+
+그런 후에 FastAPI 및 필요한 다른 **패키지들**을 **설치**해야 합니다.
+
+패키지들을 설치할 때는 보통 파이썬에 내장된 `pip` 명령어(또는 유사한 대체 도구)를 사용합니다.
+
+하지만 `pip`를 그냥 바로 사용하면, 패키지들이 **전역 파이썬 환경(global Python environment)**(전역적으로 설치된 파이썬)에 설치됩니다.
+
+### 문제점
+
+그렇다면 왜 전역 파이썬 환경에 패키지를 설치하는게 문제가 될까요?
+
+여러분은 아마도 언젠가 **서로 다른 패키지**에 의존하는 여러 프로그램들을 만들게 될 것입니다. 그리고 그 중 일부 프로젝트는 같은 패키지의 **다른 버전**에 의존하게 될 것입니다. 😱
+
+예를 들어 `philosophers-stone`라는 프로젝트를 만들었다고 가정하겠습니다. 이 프로그램은 패키지 **`harry` 버전 `1`**에 의존하므로, 여러분은 `harry`를 설치해야 합니다.
+
+```mermaid
+flowchart LR
+ stone(philosophers-stone) -->|requires| harry-1[harry v1]
+```
+
+그런 후에 `prisoner-of-azkaban`라는 다른 프로젝트를 만들었습니다. 그리고 이 프로젝트 또한 `harry`에 의존하지만, 이 프로젝트는 **`harry` 버전 `3`** 을 필요로 합니다.
+
+```mermaid
+flowchart LR
+ azkaban(prisoner-of-azkaban) --> |requires| harry-3[harry v3]
+```
+
+하지만 이제 문제가 있습니다. 만약 패키지를 로컬 **가상 환경**이 아닌 전역적으로(전역 환경에) 설치한다면, 여러분은 `harry`의 어떤 버전을 설치할지 선택해야 합니다.
+
+예를 들어 `philosophers-stone`을 실행하려면 다음과 같이 `harry` 버전 `1`을 먼저 설치할 것입니다:
+
+
+
+```console
+$ pip install "harry==1"
+```
+
+
+
+이제 전역 파이썬 환경에 `harry` 버전 `1`이 설치된 상태가 됩니다.
+
+```mermaid
+flowchart LR
+ subgraph global[global env]
+ harry-1[harry v1]
+ end
+ subgraph stone-project[philosophers-stone project]
+ stone(philosophers-stone) -->|requires| harry-1
+ end
+```
+
+하지만 그런 후 `prisoner-of-azkaban`을 실행시키기 위해, 여러분은 `harry` 버전 `1`을 제거하고 `harry` 버전 `3`을 설치해야 합니다. (또는 버전 `3`을 설치하면 자동으로 버전 `1`이 제거됩니다.)
+
+
+
+```console
+$ pip install "harry==3"
+```
+
+
+
+이제 전역 파이썬 환경에 `harry` 버전 `3`이 설치된 상태가 됩니다.
+
+그리고 다시 `philosophers-stone`을 실행하려고 하면, `harry` 버전 `1`이 필요하므로 **정상적으로 작동하지 않을** 가능성이 있습니다.
+
+```mermaid
+flowchart LR
+ subgraph global[global env]
+ harry-1[harry v1]
+ style harry-1 fill:#ccc,stroke-dasharray: 5 5
+ harry-3[harry v3]
+ end
+ subgraph stone-project[philosophers-stone project]
+ stone(philosophers-stone) -.-x|⛔️| harry-1
+ end
+ subgraph azkaban-project[prisoner-of-azkaban project]
+ azkaban(prisoner-of-azkaban) --> |requires| harry-3
+ end
+```
+
+/// tip | 팁
+
+일반적으로 파이썬 패키지들은 **새로운 버전**에서 **호환성이 손상되는 변경(breaking changes)을 피하기** 위해 최선을 다하지만, 새 버전을 계획적으로 설치하고 모든 것이 제대로 작동하는지 테스트하는 것이 더 안전합니다.
+
+///
+
+이제 여러분의 **모든 프로젝트가 의존하는** **많은** 다른 **패키지들**이 있다고 상상해보십시오. 그것을 관리하는 것은 매우 어렵습니다. 그리고 결국 어떤 프로젝트는 **호환되지 않는 버전**의 패키지와 함께 실행될 것이고, 그것이 왜 제대로 작동하지 않는지 알기 어려울 수도 있습니다.
+
+또한 사용 중인 운영체제(예: Linux, Windows, macOS)에 따라, 파이썬이 이미 설치되어 있을 수도 있습니다. 그리고 이 경우, 대개는 시스템에서 요구되는 특정 버전의 패키지들이 미리 설치되어 있습니다. 만약 전역 파이썬 환경에 패키지를 설치하면, 운영체제에서 제공하는 일부 프로그램이 **손상될 위험**이 있습니다.
+
+## 패키지가 설치된 위치
+
+파이썬을 설치할 때 컴퓨터에 여러 디렉터리와 파일이 생성됩니다.
+
+이 디렉터리들 중 일부는 여러분이 설치한 모든 패키지를 저장하는 역할을 합니다.
+
+다음 명령어를 실행할 경우:
+
+
+
+```console
+// 지금은 따라 실행하지 마십시오. 이것은 단지 예시입니다 🤓
+$ pip install "fastapi[standard]"
+---> 100%
+```
+
+
+
+일반적으로는 PyPI에서 FastAPI 코드가 압축된 파일을 다운로드합니다.
+
+또한 FastAPI가 의존하는 다른 패키지 파일들도 **다운로드**합니다.
+
+그런 후 다운로드한 모든 파일을 **추출(extract)**하여 컴퓨터의 디렉터리에 저장합니다.
+
+기본적으로 이렇게 다운로드하여 추출된 파일들은 파이썬 설치 디렉터리에 저장되며, 이는 **전역 환경**입니다.
+
+## 가상 환경이란
+
+전역 환경에 모든 패키지를 설치하는 문제를 해결하는 방법은 **프로젝트별 가상 환경**을 사용하는 것입니다.
+
+가상 환경은 전역 환경과 유사하게 **디렉터리**이며, 특정 프로젝트를 위한 패키지를 설치할 수 있습니다.
+
+이렇게 하면, 각 프로젝트는 자신의 패키지를 위한 자체적인 가상 환경(`.venv` 디렉터리)을 가집니다.
+
+```mermaid
+flowchart TB
+ subgraph stone-project[philosophers-stone project]
+ stone(philosophers-stone) --->|requires| harry-1
+ subgraph venv1[.venv]
+ harry-1[harry v1]
+ end
+ end
+ subgraph azkaban-project[prisoner-of-azkaban project]
+ azkaban(prisoner-of-azkaban) --->|requires| harry-3
+ subgraph venv2[.venv]
+ harry-3[harry v3]
+ end
+ end
+ stone-project ~~~ azkaban-project
+```
+
+## 가상 환경 활성화란
+
+다음과 같이 가상 환경을 활성화할 수 있습니다:
+
+//// tab | Linux, macOS
+
+
+
+```console
+$ source .venv/bin/activate
+```
+
+
+
+////
+
+//// tab | Windows PowerShell
+
+
+
+```console
+$ .venv\Scripts\Activate.ps1
+```
+
+
+
+////
+
+//// tab | Windows Bash
+
+또는 Window에서 Bash를 사용하는 경우 (예: Git Bash):
+
+
+
+```console
+$ source .venv/Scripts/activate
+```
+
+
+
+////
+
+해당 명령어는, 다음 명령어에서 사용할 수 있도록 일부 [환경 변수](environment-variables.md){.internal-link target=_blank}를 생성하거나 수정합니다.
+
+그 환경 변수 중 하나가 `PATH`입니다.
+
+/// tip | 팁
+
+`PATH` 환경 변수에 대해 더 자세히 알고 싶다면 [환경 변수](environment-variables.md#path-environment-variable){.internal-link target=_blank} 섹션에서 확인할 수 있습니다.
+
+///
+
+가상 환경을 활성화하면 가상 환경의 경로 `.venv/bin`(Linux 및 macOS) 또는 `.venv\Scripts`(Windows)가 `PATH` 환경 변수에 추가됩니다.
+
+가상 환경을 활성화하기 전 `PATH` 변수가 다음과 같았다고 가정해봅시다:
+
+//// tab | Linux, macOS
+
+```plaintext
+/usr/bin:/bin:/usr/sbin:/sbin
+```
+
+이것은 시스템이 다음 경로에서 프로그램을 찾는다는 것을 의미합니다:
+
+* `/usr/bin`
+* `/bin`
+* `/usr/sbin`
+* `/sbin`
+
+////
+
+//// tab | Windows
+
+```plaintext
+C:\Windows\System32
+```
+이것은 시스템이 다음 경로에서 프로그램을 찾는다는 것을 의미합니다:
+
+* `C:\Windows\System32`
+
+////
+
+가상 환경을 활성화한 후, `PATH` 변수는 다음과 같은 형태가 됩니다:
+
+//// tab | Linux, macOS
+
+```plaintext
+/home/user/code/awesome-project/.venv/bin:/usr/bin:/bin:/usr/sbin:/sbin
+```
+
+이것은 시스템이 이제는 다음 경로에서 먼저 프로그램을 찾기 시작한다는 것을 의미합니다:
+
+```plaintext
+/home/user/code/awesome-project/.venv/bin
+```
+
+다른 디렉터리를 검색하기 전에 해당 경로에서 먼저 찾습니다.
+
+따라서 터미널에서 `python`을 입력하면, 시스템은 파이썬 프로그램을 다음 위치에서 찾고
+
+```plaintext
+/home/user/code/awesome-project/.venv/bin/python
+```
+
+그것을 사용합니다.
+
+////
+
+//// tab | Windows
+
+```plaintext
+C:\Users\user\code\awesome-project\.venv\Scripts;C:\Windows\System32
+```
+
+이것은 시스템이 이제는 다음 경로에서 먼저 프로그램을 찾기 시작한다는 것을 의미합니다:
+
+```plaintext
+C:\Users\user\code\awesome-project\.venv\Scripts
+```
+
+다른 디렉터리를 검색하기 전에 해당 경로에서 먼저 찾습니다.
+
+따라서 터미널에서 `python`을 입력하면, 시스템은 파이썬 프로그램을 다음 위치에서 찾고
+
+
+```plaintext
+C:\Users\user\code\awesome-project\.venv\Scripts\python
+```
+
+그것을 사용합니다.
+
+////
+
+중요한 점은 가상 환경의 경로가 `PATH` 변수의 **가장 앞에** 추가된다는 것입니다. 시스템은 다른 파이썬을 찾기 **전에** 이 경로에서 먼저 파이썬을 찾을 것입니다. 따라서 `python`을 실행했을 때, 다른 어떤 `python`(예를 들어 전역 환경의 `python` 같은) 대신에 **가상 환경의** 파이썬이 사용됩니다.
+
+가상 환경을 활성화하면 몇 가지 다른 변화도 있지만, 이것이 가장 중요한 점입니다.
+
+## 가상 환경 확인하기
+
+가상 환경이 활성화 되어 있는지 확인하려면, 다음 명령어를 사용할 수 있습니다:
+
+//// tab | Linux, macOS, Windows Bash
+
+
+
+```console
+$ which python
+
+/home/user/code/awesome-project/.venv/bin/python
+```
+
+
+
+////
+
+//// tab | Windows PowerShell
+
+
+
+```console
+$ Get-Command python
+
+C:\Users\user\code\awesome-project\.venv\Scripts\python
+```
+
+
+
+////
+
+이것은 사용될 `python` 프로그램이 **가상 환경 안에** 있음을 의미합니다.
+
+Linux와 macOS에서는 `which`를, Windows PowerShell에서는 `Get-Command`를 사용합니다.
+
+이 명령어의 작동 방식은 `PATH` 환경 변수를 확인하고 **각 경로를 순차적으로** 탐색하여, `python`이라는 프로그램을 찾습니다. 그리고 프로그램을 찾으면 그 **경로를 보여줍니다**.
+
+가장 중요한 부분은 `python`을 호출할 때, 바로 그 경로의 "`python`"이 실행된다는 것입니다.
+
+그래서 여러분은 올바른 가상 환경에 있는지 확인할 수 있습니다.
+
+/// tip | 팁
+
+하나의 가상 환경을 활성화 하여 파이썬을 실행한 후, **또 다른 프로젝트로 이동**합니다.
+
+그리고 두 번째 프로젝트는 **작동하지 않습니다**. 다른 프로젝트를 위한 가상 환경으로부터의, **잘못된 파이썬**을 사용하기 때문입니다.
+
+어떤 `python`이 사용되고 있는지 확인할 수 있는 기능은 유용합니다. 🤓
+
+///
+
+## 가상 환경을 비활성화 하는 이유
+
+예를 들자면, **가상 환경을 활성화 한** `philosophers-stone` 프로젝트에서 작업 중일 때, 그 환경에서 패키지를 설치하고 작업할 수 있습니다.
+
+그런 후 **다른 프로젝트**인 `prisoner-of-azkaban`에서 작업하길 원할 수도 있습니다.
+
+그 프로젝트로 이동합니다:
+
+
+
+```console
+$ cd ~/code/prisoner-of-azkaban
+```
+
+
+
+`philosophers-stone`의 가상 환경을 비활성화하지 않으면, 터미널에서 `python`을 실행할 때 `philosophers-stone`의 파이썬을 사용하려고 시도하게 됩니다.
+
+
+
+```console
+$ cd ~/code/prisoner-of-azkaban
+
+$ python main.py
+
+// sirius가 설치되지 않아 임포트할 때 에러가 발생했습니다 😱
+Traceback (most recent call last):
+ File "main.py", line 1, in
+ import sirius
+```
+
+
+
+하지만 가상 환경을 비활성화 하고 `prisoner-of-askaban`을 위한 새로운 가상 환경을 활성화 한다면, `python`을 실행할 때 `prisoner-of-azkaban`의 가상 환경에서 파이썬을 사용하게 됩니다.
+
+
+
+```console
+$ cd ~/code/prisoner-of-azkaban
+
+// 가상 환경을 비활성화 하기 위해 반드시 이전 디렉터리에 있을 필요는 없으며, 다른 프로젝트로 이동한 후에도 어디서나 비활성화할 수 있습니다 😎
+$ deactivate
+
+// prisoner-of-azkaban/.venv 에서 가상 환경을 활성화합니다 🚀
+$ source .venv/bin/activate
+
+// 이제 파이썬을 실행하면, 이 가상 환경에 설치된 sirius 패키지를 찾을 수 있습니다 ✨
+$ python main.py
+
+I solemnly swear 🐺
+```
+
+
+
+## 대안
+
+이 가이드는 시작하는 데 도움을 주기 위한 간단한 가이드이고, 모든 것이 어떻게 **작동**하는지 알려줍니다.
+
+가상 환경과 패키지 의존성 (requirements), 프로젝트를 관리하기 위한 많은 **대안들**이 있습니다.
+
+일단 **전체 프로젝트 관리**, 패키지 의존성, 가상 환경 등을 관리할 도구를 원하고 준비가 되었다면, uv를 시도해 보길 추천합니다.
+
+`uv`는 많은 일을 할 수 있습니다:
+
+* 다양한 다른 버전의 **파이썬 설치**
+* 프로젝트의 **가상 환경** 관리
+* **패키지** 설치
+* 프로젝트를 위한 패키지 **의존성 및 버전** 관리
+* 개발 중인 컴퓨터와 프로덕션 환경에서 동일하게 실행할 수 있도록, **정확한** 패키지와 버전 및 의존성의 집합을 설치하도록 하는 **로킹(locking)**
+* 그 외의 많은 다른 기능들
+
+## 결론
+
+이 모든 내용을 읽고 이해했다면, 이제 여러분은 다른 많은 개발자들 보다 가상 환경에 대해 **훨씬 잘 알게되었습니다**. 🤓
+
+이 세부 내용을 알고 있다는 것은, 언젠가 복잡해 보이는 문제를 디버깅할 때 유용할 수 있습니다. 하지만 그때는 이 **모든 것이 어떻게 작동하는지**도 알게될 것입니다. 😎