|
|
@ -2,7 +2,6 @@ |
|
|
|
|
|
|
|
ํ์ด์ฌ ํ๋ก์ ํธ์์ ์์
ํ ๋, ๊ฐ ํ๋ก์ ํธ๋ง๋ค ์ค์นํ๋ ํจํค์ง๋ฅผ ๊ฒฉ๋ฆฌํ๊ธฐ ์ํด **๊ฐ์ ํ๊ฒฝ(virtual environment)**(๋๋ ์ ์ฌํ ๋ฉ์ปค๋์ฆ)์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. |
|
|
|
|
|
|
|
|
|
|
|
/// info | ์ ๋ณด |
|
|
|
|
|
|
|
๋ง์ฝ ๊ฐ์ ํ๊ฒฝ์ ์ด๋ป๊ฒ ์์ฑํ๊ณ ์ฌ์ฉํ๋์ง ์ด๋ฏธ ์๊ณ ์๋ค๋ฉด, ์ด ์น์
์ ๊ฑด๋๋ฐ์ด๋ ๋ฉ๋๋ค. ๐ค |
|
|
@ -23,7 +22,7 @@ |
|
|
|
|
|
|
|
์ด ํ์ด์ง๋ **๊ฐ์ ํ๊ฒฝ**์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์๋ ์๋ฆฌ๋ฅผ ์๋ ค์ค๋๋ค. |
|
|
|
|
|
|
|
๋ง์ฝ **๋ชจ๋ ๊ฒ์ ๊ด๋ฆฌํด ์ฃผ๋ ๋๊ตฌ**(ํ์ด์ฌ ์ค์น๋ฅผ ํฌํจํด)๋ฅผ ์ ํํ๊ณ ์ถ๋ค๋ฉด, <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">uv</a>๋ฅผ ์ฌ์ฉํด ๋ณด์ญ์์ค. |
|
|
|
**๋ชจ๋ ๊ฒ์ ๊ด๋ฆฌํด ์ฃผ๋ ๋๊ตฌ**(ํ์ด์ฌ ์ค์น๋ฅผ ํฌํจํ์ฌ)๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">uv</a>๋ฅผ ์๋ํด ๋ณด์ญ์์ค. |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -58,7 +57,7 @@ $ cd awesome-project |
|
|
|
|
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
์ด ์์
์ **ํ๋ก์ ํธ๋น ํ ๋ฒ**๋ง ์ํํ๋ฉด ๋๋ฉฐ, ๋งค๋ฒ ํ ํ์๋ ์์ต๋๋ค. |
|
|
|
์ด ์์
์ **ํ๋ก์ ํธ๋ง๋ค ํ ๋ฒ**๋ง ํ๋ฉด ๋๊ณ , ๋งค ์์
๋๋ง๋ค ์ํํ ํ์๋ ์์ต๋๋ค. |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -77,7 +76,7 @@ $ python -m venv .venv |
|
|
|
/// details | ๋ช
๋ น์ด์ ์๋ฏธ |
|
|
|
|
|
|
|
* `python`: `python`์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํฉ๋๋ค. |
|
|
|
* `-m`: ๋ชจ๋์ ์คํฌ๋ฆฝํธ๋ก์ ์คํํฉ๋๋ค. ์ด๊ฒ ๋ค์์ ์คํํ ๋ชจ๋์ ์ง์ ํ ๊ฒ์
๋๋ค. |
|
|
|
* `-m`: ๋ชจ๋์ ์คํฌ๋ฆฝํธ๋ก์ ์คํํฉ๋๋ค. `-m` ๋ค์์ ์คํํ ๋ชจ๋์ ์ง์ ํ ๊ฒ์
๋๋ค. |
|
|
|
* `venv`: ํ์ด์ฌ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋ `venv` ๋ชจ๋์ ์ฌ์ฉํฉ๋๋ค. |
|
|
|
* `.venv`: ์๋ก์ด ๋๋ ํฐ๋ฆฌ `.venv`์ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํฉ๋๋ค. |
|
|
|
|
|
|
@ -101,7 +100,7 @@ $ uv venv |
|
|
|
|
|
|
|
๊ธฐ๋ณธ์ ์ผ๋ก `uv`๋ `.venv`๋ผ๋ ๋๋ ํฐ๋ฆฌ์ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํฉ๋๋ค. |
|
|
|
|
|
|
|
ํ์ง๋ง ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ ์ถ๊ฐ ์ธ์๋ก ์ ๋ฌํ์ฌ ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ์ ์์ต๋๋ค. |
|
|
|
ํ์ง๋ง ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ ์ถ๊ฐ ์ธ์๋ก ์ ๋ฌํ์ฌ ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ์๋ ์์ต๋๋ค. |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -111,7 +110,7 @@ $ uv venv |
|
|
|
|
|
|
|
/// details | `.venv` ๋๋ ๋ค๋ฅธ ์ด๋ฆ |
|
|
|
|
|
|
|
๋ค๋ฅธ ๋๋ ํฐ๋ฆฌ์ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ ์๋ ์์ง๋ง, `.venv`๋ก ์ด๋ฆ์ ๋ถ์ด๋ ๊ด๋ก๊ฐ ์์ต๋๋ค. |
|
|
|
๊ฐ์ ํ๊ฒฝ์ ๋ค๋ฅธ ๋๋ ํฐ๋ฆฌ์ ์์ฑํ ์๋ ์์ง๋ง, `.venv`๋ก ์ด๋ฆ์ ๋ถ์ด๋ ๊ด๋ก๊ฐ ์์ต๋๋ค. |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -165,9 +164,9 @@ $ source .venv/Scripts/activate |
|
|
|
|
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
๊ทธ ํ๊ฒฝ์ **์๋ก์ด ํจํค์ง**๋ฅผ ์ค์นํ ๋ ๋ง๋ค, ๊ฐ์ ํ๊ฒฝ์ ๋ค์ **ํ์ฑํ**ํ์ญ์์ค. |
|
|
|
๊ฐ์ ํ๊ฒฝ์ **์๋ก์ด ํจํค์ง**๋ฅผ ์ค์นํ ๋ ๋ง๋ค, ๊ฐ์ ํ๊ฒฝ์ ๋ค์ **ํ์ฑํ**ํ์ญ์์ค. |
|
|
|
|
|
|
|
์ด๋ ๊ฒ ํ๋ฉด ํด๋น ํจํค์ง๊ฐ ์ค์น๋ **ํฐ๋ฏธ๋ (<abbr title="command line interface">CLI</abbr>) ํ๋ก๊ทธ๋จ**์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๊ฐ์ ํ๊ฒฝ์์ ์ค์น๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๊ณ , ์ ์ญ์ ์ผ๋ก ์ค์น๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ง ์๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ ์ญ์ ์ผ๋ก ์ค์น๋ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ๋ถ์ด ํ์ํ ๊ฒ๊ณผ ๋ค๋ฅธ ๋ฒ์ ์ผ ์๋ ์์ต๋๋ค. |
|
|
|
ํด๋น ํจํค์ง๊ฐ ์ค์น๋ **ํฐ๋ฏธ๋ (<abbr title="command line interface">CLI</abbr>) ํ๋ก๊ทธ๋จ**์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๊ฐ์ ํ๊ฒฝ์์ ์ค์น๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๊ณ , ์ ์ญ์ ์ผ๋ก ์ค์น๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ ์ญ์ ์ผ๋ก ์ค์น๋ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ๋ถ์ด ํ์ํ ๊ฒ๊ณผ ๋ค๋ฅธ ๋ฒ์ ์ผ ์๋ ์์ต๋๋ค. |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -177,7 +176,7 @@ $ source .venv/Scripts/activate |
|
|
|
|
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
์ด๊ฒ์ **์ ํ ์ฌํญ**์ด์ง๋ง, ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ๊ณ ์๊ณ ์๋ํ๋๋ก ๊ฐ์ ํ๊ฒฝ์ ์ฌ์ฉํ๊ณ ์๋์ง **ํ์ธ**ํ๋ ์ข์ ๋ฐฉ๋ฒ์
๋๋ค. |
|
|
|
์ด๊ฒ์ **์ ํ ์ฌํญ**์ด์ง๋ง, ๋ชจ๋ ๊ฒ์ด ๊ธฐ๋ํ๋๋ก ์๋ํ๊ณ ์๋ํ๋๋ก ๊ฐ์ ํ๊ฒฝ์ ์ฌ์ฉํ๊ณ ์๋์ง **ํ์ธ**ํ๋ ์ข์ ๋ฐฉ๋ฒ์
๋๋ค. |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -193,7 +192,7 @@ $ which python |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ(์์ ์์๋ `awesome-project`) ๋ด๋ถ์์, `python`์ ๋ฐ์ด๋๋ฆฌ๊ฐ `.venv/bin/python`๋ก ํ์๋๋ค๋ฉด ์ ๋๋ก ์๋ํ๋ ๊ฒ์
๋๋ค.๐ |
|
|
|
์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ(์ฌ๊ธฐ์๋ `awesome-project`) ๋ด๋ถ์์, `python`์ ๋ฐ์ด๋๋ฆฌ๊ฐ `.venv/bin/python`์ผ๋ก ํ์๋๋ค๋ฉด ์ ๋๋ก ์๋ํ๋ ๊ฒ์
๋๋ค.๐ |
|
|
|
|
|
|
|
//// |
|
|
|
|
|
|
@ -209,7 +208,7 @@ C:\Users\user\code\awesome-project\.venv\Scripts\python |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ(์์ ์์๋ `awesome-project`) ๋ด๋ถ์์, `python`์ ๋ฐ์ด๋๋ฆฌ๊ฐ `.venv\Scripts\python`๋ก ํ์๋๋ค๋ฉด ์ ๋๋ก ์๋ํ๋ ๊ฒ์
๋๋ค.๐ |
|
|
|
์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ(์ฌ๊ธฐ์๋ `awesome-project`) ๋ด๋ถ์์, `python`์ ๋ฐ์ด๋๋ฆฌ๊ฐ `.venv\Scripts\python`์ผ๋ก ํ์๋๋ค๋ฉด ์ ๋๋ก ์๋ํ๋ ๊ฒ์
๋๋ค.๐ |
|
|
|
|
|
|
|
//// |
|
|
|
|
|
|
@ -223,11 +222,11 @@ C:\Users\user\code\awesome-project\.venv\Scripts\python |
|
|
|
|
|
|
|
๋ง์ฝ `pip`(ํ์ด์ฌ์ ๋ด์ฅ๋)๋ฅผ ์ฌ์ฉํด ํจํค์ง๋ฅผ ์ค์นํ๊ณ ์๋ค๋ฉด, `pip`๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก **์
๊ทธ๋ ์ด๋**ํด์ผ ํฉ๋๋ค. |
|
|
|
|
|
|
|
ํจํค์ง๋ฅผ ์ค์นํ ๋ ๋ฐ์ํ๋ ๋ง์ ์ค๋ฅ๋ `pip`๋ฅผ ๋จผ์ ์
๊ทธ๋ ์ด๋ํ๋ ๊ฒ๋ง์ผ๋ก๋ ํด๊ฒฐ๋ฉ๋๋ค. |
|
|
|
ํจํค์ง๋ฅผ ์ค์นํ ๋ ๋ฐ์ํ๋ ๋ง์ ์ค๋ฅ๋ `pip` ์
๊ทธ๋ ์ด๋๋ฅผ ๋จผ์ ํ๋ ๊ฒ๋ง์ผ๋ก๋ ํด๊ฒฐ๋ฉ๋๋ค. |
|
|
|
|
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
์ผ๋ฐ์ ์ผ๋ก ์ด ์์
์ **ํ๋ฒ**๋ง ์ํํ๋ฉฐ, ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ ์งํ์ ํฉ๋๋ค. |
|
|
|
์ผ๋ฐ์ ์ผ๋ก ์ด ์์
์ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ ์งํ์ **ํ ๋ฒ**๋ง ์ํํฉ๋๋ค. |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -245,11 +244,11 @@ $ python -m pip install --upgrade pip |
|
|
|
|
|
|
|
## `.gitignore` ์ถ๊ฐ |
|
|
|
|
|
|
|
**Git**์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, `.venv` ๋ด์ ๋ชจ๋ ํญ๋ชฉ์ด Git์์ ์ ์ธ๋๋๋ก `.gitignore` ํ์ผ์ ์ถ๊ฐํ์ญ์์ค. (Git์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.) |
|
|
|
**Git**์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, `.venv` ๋ด์ ๋ชจ๋ ํญ๋ชฉ์ด Git์์ ์ ์ธ๋๋๋ก `.gitignore` ํ์ผ์ ์ถ๊ฐํ์ญ์์ค. (Git์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค) |
|
|
|
|
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
<a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">`uv`</a>๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ๋ค๋ฉด, ์ด๋ฏธ ์ด ์์
์ด ์ํ๋์์ผ๋ฏ๋ก ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ์ด๋ ๋ฉ๋๋ค. ๐ |
|
|
|
<a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">`uv`</a>๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ๋ค๋ฉด, ์ด๋ฏธ ํด๋น ์์
์ด ์ํ๋์์ผ๋ฏ๋ก ์ด ๋จ๊ณ๋ ๊ฑด๋๋ฐ์ด๋ ๋ฉ๋๋ค. ๐ |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -269,8 +268,8 @@ $ echo "*" > .venv/.gitignore |
|
|
|
|
|
|
|
/// details | ๋ช
๋ น์ด์ ์๋ฏธ |
|
|
|
|
|
|
|
* `echo "*"`: ํฐ๋ฏธ๋์ `*`๋ฅผ "์ถ๋ ฅ(print)" ํฉ๋๋ค (๋ค์ ๋ถ๋ถ์์ ์ฝ๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค). |
|
|
|
* `>`: `>`์ ์ผ์ชฝ์ ๋ช
๋ น์ด๋ก ํฐ๋ฏธ๋์ ์ถ๋ ฅ๋ ๋ด์ฉ์ ํ๋ฉด์ ์ถ๋ ฅํ์ง ์๊ณ , `>`์ ์ค๋ฅธ์ชฝ์ ์ง์ ๋ ํ์ผ์ ์ ์ฅํฉ๋๋ค. |
|
|
|
* `echo "*"`: ํฐ๋ฏธ๋์ `*`๋ฅผ "์ถ๋ ฅ(print)" ํฉ๋๋ค. (๋ค์ ๋ถ๋ถ์์ ์ฝ๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค) |
|
|
|
* `>`: `>`์ ์ผ์ชฝ ๋ช
๋ น์ด๋ก ํฐ๋ฏธ๋์ ์ถ๋ ฅ๋ ๋ด์ฉ์ ํ๋ฉด์ ํ์ํ์ง ์๊ณ , `>`์ ์ค๋ฅธ์ชฝ์ ์ง์ ๋ ํ์ผ์ ์ ์ฅํฉ๋๋ค. |
|
|
|
* `.gitignore`: ํ
์คํธ๊ฐ ์ฐ์ฌ์ง ํ์ผ์ ์ด๋ฆ์
๋๋ค. |
|
|
|
|
|
|
|
๊ทธ๋ฆฌ๊ณ Git์์ `*`๋ "๋ชจ๋ ๊ฒ(everything)"์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋์ `.venv` ๋๋ ํฐ๋ฆฌ ๋ด์ ๋ชจ๋ ํญ๋ชฉ์ ๋ฌด์ํ ๊ฒ์
๋๋ค. |
|
|
@ -295,9 +294,9 @@ $ echo "*" > .venv/.gitignore |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
|
### ํจํค์ง ์ง์ ์ค์น |
|
|
|
### ํจํค์ง ๋ฐ๋ก ์ค์น |
|
|
|
|
|
|
|
๋ง์ฝ ์๊ฐ์ด ๋ถ์กฑํ๊ณ ํ๋ก์ ํธ์ ํจํค์ง ์๊ตฌ์ฌํญ์ ์ ์ธํ๋ ํ์ผ์ ์ฌ์ฉํ๊ณ ์ถ์ง ์๋ค๋ฉด, ํจํค์ง๋ฅผ ์ง์ ์ค์นํ ์ ์์ต๋๋ค. |
|
|
|
๋ง์ฝ ์๊ฐ์ด ๋ถ์กฑํ๊ณ ํ๋ก์ ํธ์ ํจํค์ง ์๊ตฌ์ฌํญ์ ํ์ผ๋ก ์ ์ธํ๊ณ ์ถ์ง ์๋ค๋ฉด, ํจํค์ง๋ฅผ ๋ฐ๋ก ์ค์นํ ์๋ ์์ต๋๋ค. |
|
|
|
|
|
|
|
/// tip | ํ |
|
|
|
|
|
|
@ -336,7 +335,7 @@ $ uv pip install "fastapi[standard]" |
|
|
|
|
|
|
|
### `requirements.txt` ์์ ์ค์นํ๊ธฐ |
|
|
|
|
|
|
|
`requirements.txt` ํ์ผ์ด ์๋ค๋ฉด, ์ด๋ฅผ ์ฌ์ฉํด ํจํค์ง๋ค์ ์ค์นํ ์ ์์ต๋๋ค. |
|
|
|
`requirements.txt` ํ์ผ์ด ์๋ค๋ฉด, ์ด๋ฅผ ์ฌ์ฉํด ํจํค์ง๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. |
|
|
|
|
|
|
|
//// tab | `pip` |
|
|
|
|
|
|
@ -368,7 +367,7 @@ $ uv pip install -r requirements.txt |
|
|
|
|
|
|
|
/// details | `requirements.txt` |
|
|
|
|
|
|
|
๋ช๋ช ํจํค์ง๋ค์ด ํฌํจ๋ `requirements.txt` ๋ ๋ค์๊ณผ ๊ฐ์ ํํ์
๋๋ค: |
|
|
|
๋ช๋ช ํจํค์ง๊ฐ ํฌํจ๋ `requirements.txt` ๋ ๋ค์๊ณผ ๊ฐ์ ํํ์
๋๋ค: |
|
|
|
|
|
|
|
```requirements.txt |
|
|
|
fastapi[standard]==0.113.0 |
|
|
@ -379,7 +378,7 @@ pydantic==2.8.0 |
|
|
|
|
|
|
|
## ํ๋ก๊ทธ๋จ ์คํ |
|
|
|
|
|
|
|
๊ฐ์ ํ๊ฒฝ์ ํ์ฑํํ ํ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ผ๋ฉฐ, ์ด ๋ ๊ฐ์ ํ๊ฒฝ ๋ด๋ถ์ ํ์ด์ฌ๊ณผ ์ค์น๋ ํจํค์ง๋ค์ด ์ฌ์ฉ๋ฉ๋๋ค. |
|
|
|
๊ฐ์ ํ๊ฒฝ์ ํ์ฑํํ ํ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ผ๋ฉฐ, ์ด ๋ ๊ฐ์ ํ๊ฒฝ ๋ด๋ถ์ ์ค์น๋ ํ์ด์ฌ๊ณผ ํจํค์ง๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
|
|
|
|
|
|
|
<div class="termy"> |
|
|
|
|
|
|
@ -393,9 +392,9 @@ Hello World |
|
|
|
|
|
|
|
## ์๋ํฐ ์ค์ |
|
|
|
|
|
|
|
์ฌ๋ฌ๋ถ์ ์๋ง ๋๋ถ๋ถ ์๋ํฐ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ์๋ ์์ฑ ๊ธฐ๋ฅ๊ณผ ์ธ๋ผ์ธ ์ค๋ฅ ํ์๋ฅผ ํ์ฉํ๊ธฐ ์ํด์๋ ์์ฑํ ๊ฐ์ ํ๊ฒฝ์ ์ฌ์ฉํ๋๋ก ์ค์ ํด์ผ ํฉ๋๋ค. (๋๋ถ๋ถ ์๋์ผ๋ก ๊ฐ์ง๋ ๊ฒ์
๋๋ค) |
|
|
|
์๋ง ์ฌ๋ฌ๋ถ์ ๋๋ถ๋ถ์ ์๋ํฐ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ์๋ ์์ฑ ๊ธฐ๋ฅ๊ณผ ์ธ๋ผ์ธ ์ค๋ฅ ํ์๋ฅผ ํ์ฉํ๊ธฐ ์ํด์๋ ์์ฑํ ๊ฐ์ ํ๊ฒฝ์ ์ฌ์ฉํ๋๋ก ์ค์ ํด์ผ ํฉ๋๋ค. (๋๋ถ๋ถ ์๋์ผ๋ก ๊ฐ์ง๋ ๊ฒ์
๋๋ค) |
|
|
|
|
|
|
|
์์: |
|
|
|
์: |
|
|
|
|
|
|
|
* <a href="https://code.visualstudio.com/docs/python/environments#_select-and-activate-an-environment" class="external-link" target="_blank">VS Code</a> |
|
|
|
* <a href="https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html" class="external-link" target="_blank">PyCharm</a> |
|
|
@ -418,7 +417,7 @@ $ deactivate |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
์ด๋ ๊ฒ ํ๋ฉด `python`์ ์คํํ ๋, ํจํค์ง๊ฐ ์ค์น๋ ๊ฐ์ ํ๊ฒฝ์์ ์คํ๋์ง ์๊ฒ ๋ฉ๋๋ค. |
|
|
|
์ด๋ ๊ฒ ํ๋ฉด `python`์ ์คํํ ๋, ํจํค์ง๊ฐ ์ค์น๋ ๊ฐ์ ํ๊ฒฝ์์ ์คํํ์ง ์๊ฒ ๋ฉ๋๋ค. |
|
|
|
|
|
|
|
## ์์
์ค๋น ์๋ฃ |
|
|
|
|
|
|
@ -438,19 +437,19 @@ $ deactivate |
|
|
|
|
|
|
|
FastAPI๋ก ์์
ํ๋ ค๋ฉด <a href="https://www.python.org/" class="external-link" target="_blank">Python</a>์ ์ค์นํด์ผ ํฉ๋๋ค. |
|
|
|
|
|
|
|
๊ทธ๋ฐ ํ์ FastAPI์ ์ฌ์ฉํ๋ ค๋ ๋ค๋ฅธ **ํจํค์ง๋ค**์ **์ค์น**ํด์ผ ํฉ๋๋ค. |
|
|
|
๊ทธ๋ฐ ํ์ FastAPI ๋ฐ ํ์ํ ๋ค๋ฅธ **ํจํค์ง๋ค**์ **์ค์น**ํด์ผ ํฉ๋๋ค. |
|
|
|
|
|
|
|
ํจํค์ง๋ค์ ์ค์นํ ๋๋ ๋ณดํต ํ์ด์ฌ์ ๋ด์ฅ๋ `pip` ๋ช
๋ น์ด(๋๋ ์ ์ฌํ ๋์ฒด ๋๊ตฌ)๋ฅผ ์ฌ์ฉํฉ๋๋ค. |
|
|
|
|
|
|
|
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , `pip`๋ฅผ ์ง์ ์ฌ์ฉํ๋ฉด ํจํค์ง๋ค์ด **์ ์ญ ํ์ด์ฌ ํ๊ฒฝ(global Python environment)**(์ ์ญ์ ์ผ๋ก ์ค์น๋ ํ์ด์ฌ)์ ์ค์น๋ฉ๋๋ค. |
|
|
|
ํ์ง๋ง `pip`๋ฅผ ๊ทธ๋ฅ ๋ฐ๋ก ์ฌ์ฉํ๋ฉด, ํจํค์ง๋ค์ด **์ ์ญ ํ์ด์ฌ ํ๊ฒฝ(global Python environment)**(์ ์ญ์ ์ผ๋ก ์ค์น๋ ํ์ด์ฌ)์ ์ค์น๋ฉ๋๋ค. |
|
|
|
|
|
|
|
### ๋ฌธ์ ์ |
|
|
|
|
|
|
|
๊ทธ๋ ๋ค๋ฉด, ์ ์ ์ญ ํ์ด์ฌ ํ๊ฒฝ์ ํจํค์ง๋ฅผ ์ค์นํ๋๊ฒ ๋ฌธ์ ๊ฐ ๋ ๊น์? |
|
|
|
๊ทธ๋ ๋ค๋ฉด ์ ์ ์ญ ํ์ด์ฌ ํ๊ฒฝ์ ํจํค์ง๋ฅผ ์ค์นํ๋๊ฒ ๋ฌธ์ ๊ฐ ๋ ๊น์? |
|
|
|
|
|
|
|
์ฌ๋ฌ๋ถ์ ์๋ง๋ ์ธ์ ๊ฐ **์๋ก ๋ค๋ฅธ ํจํค์ง๋ค**์ ์์กดํ๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ๋ค์ ๋ง๋ค๊ฒ ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ค ์ผ๋ถ ํ๋ก์ ํธ๋ ๊ฐ์ ํจํค์ง์ **๋ค๋ฅธ ๋ฒ์ **์ ์์กดํ๊ฒ ๋ ๊ฒ์
๋๋ค. ๐ฑ |
|
|
|
์ฌ๋ฌ๋ถ์ ์๋ง๋ ์ธ์ ๊ฐ **์๋ก ๋ค๋ฅธ ํจํค์ง**์ ์์กดํ๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ๋ค์ ๋ง๋ค๊ฒ ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ค ์ผ๋ถ ํ๋ก์ ํธ๋ ๊ฐ์ ํจํค์ง์ **๋ค๋ฅธ ๋ฒ์ **์ ์์กดํ๊ฒ ๋ ๊ฒ์
๋๋ค. ๐ฑ |
|
|
|
|
|
|
|
์๋ฅผ ๋ค์ด `philosophers-stone`๋ผ๋ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ์ด ํ๋ก๊ทธ๋จ์ ํจํค์ง **`harry` ๋ฒ์ 1**์ ์์กดํ๊ณ , ์ฌ๋ฌ๋ถ์ `harry`๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. |
|
|
|
์๋ฅผ ๋ค์ด `philosophers-stone`๋ผ๋ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ์ด ํ๋ก๊ทธ๋จ์ ํจํค์ง **`harry` ๋ฒ์ `1`**์ ์์กดํ๋ฏ๋ก, ์ฌ๋ฌ๋ถ์ `harry`๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. |
|
|
|
|
|
|
|
```mermaid |
|
|
|
flowchart LR |
|
|
@ -466,7 +465,7 @@ flowchart LR |
|
|
|
|
|
|
|
ํ์ง๋ง ์ด์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ง์ฝ ํจํค์ง๋ฅผ ๋ก์ปฌ **๊ฐ์ ํ๊ฒฝ**์ด ์๋ ์ ์ญ์ ์ผ๋ก(์ ์ญ ํ๊ฒฝ์) ์ค์นํ๋ค๋ฉด, ์ฌ๋ฌ๋ถ์ `harry`์ ์ด๋ค ๋ฒ์ ์ ์ค์นํ ์ง ์ ํํด์ผ ํฉ๋๋ค. |
|
|
|
|
|
|
|
์๋ฅผ ๋ค์ด `philosophers-stone`์ ์คํํ๋ ค๋ฉด ๋จผ์ ๋ค์๊ณผ ๊ฐ์ด `harry` ๋ฒ์ `1`์ ์ค์นํ ๊ฒ์
๋๋ค: |
|
|
|
์๋ฅผ ๋ค์ด `philosophers-stone`์ ์คํํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด `harry` ๋ฒ์ `1`์ ๋จผ์ ์ค์นํ ๊ฒ์
๋๋ค: |
|
|
|
|
|
|
|
<div class="termy"> |
|
|
|
|
|
|
@ -500,7 +499,7 @@ $ pip install "harry==3" |
|
|
|
|
|
|
|
์ด์ ์ ์ญ ํ์ด์ฌ ํ๊ฒฝ์ `harry` ๋ฒ์ `3`์ด ์ค์น๋ ์ํ๊ฐ ๋ฉ๋๋ค. |
|
|
|
|
|
|
|
๊ทธ๋ฆฌ๊ณ ๋ค์ `philosophers-stone`์ ์คํํ๋ ค๊ณ ํ๋ฉด, `harry` ๋ฒ์ `1`์ ํ์๋ก ํ๋ฏ๋ก **์ ์์ ์ผ๋ก ์๋ํ์ง ์์** ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. |
|
|
|
๊ทธ๋ฆฌ๊ณ ๋ค์ `philosophers-stone`์ ์คํํ๋ ค๊ณ ํ๋ฉด, `harry` ๋ฒ์ `1`์ด ํ์ํ๋ฏ๋ก **์ ์์ ์ผ๋ก ์๋ํ์ง ์์** ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. |
|
|
|
|
|
|
|
```mermaid |
|
|
|
flowchart LR |
|
|
@ -519,7 +518,7 @@ flowchart LR |
|
|
|
|
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
์ผ๋ฐ์ ์ผ๋ก ํ์ด์ฌ ํจํค์ง๋ค์ **์๋ก์ด ๋ฒ์ **์์ **ํธํ์ฑ์ด ์์๋๋ ๋ณ๊ฒฝ(breaking changes)์ ํผํ๊ธฐ** ์ํด ์ต์ ์ ๋คํ์ง๋ง, ๋ ์์ ํด์ง๋ ๋ฐฉ๋ฒ์ ์๋ก์ด ๋ฒ์ ์ ๊ณํ์ ์ผ๋ก ์ค์นํ๊ณ ๋ชจ๋ ๊ฒ์ด ์ ์์ ์ผ๋ก ์๋ํ๋์ง ํ
์คํธ๋ฅผ ์คํํด ํ์ธํ๋ ๊ฒ์
๋๋ค. |
|
|
|
์ผ๋ฐ์ ์ผ๋ก ํ์ด์ฌ ํจํค์ง๋ค์ **์๋ก์ด ๋ฒ์ **์์ **ํธํ์ฑ์ด ์์๋๋ ๋ณ๊ฒฝ(breaking changes)์ ํผํ๊ธฐ** ์ํด ์ต์ ์ ๋คํ์ง๋ง, ์ ๋ฒ์ ์ ๊ณํ์ ์ผ๋ก ์ค์นํ๊ณ ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ๋์ง ํ
์คํธํ๋ ๊ฒ์ด ๋ ์์ ํฉ๋๋ค. |
|
|
|
|
|
|
|
/// |
|
|
|
|
|
|
@ -529,9 +528,9 @@ flowchart LR |
|
|
|
|
|
|
|
## ํจํค์ง๊ฐ ์ค์น๋ ์์น |
|
|
|
|
|
|
|
ํ์ด์ฌ์ ์ค์นํ ๋ ์ปดํจํฐ์ ์ฌ๋ฌ ๋๋ ํฐ๋ฆฌ๋ค๊ณผ ํ์ผ๋ค์ด ์์ฑ๋ฉ๋๋ค. |
|
|
|
ํ์ด์ฌ์ ์ค์นํ ๋ ์ปดํจํฐ์ ์ฌ๋ฌ ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. |
|
|
|
|
|
|
|
์ด ๋๋ ํฐ๋ฆฌ๋ค ์ค ์ผ๋ถ๋ ์ฌ๋ฌ๋ถ์ด ์ค์นํ ๋ชจ๋ ํจํค์ง๋ค์ ์ ์ฅํ๋ ์ญํ ์ ํฉ๋๋ค. |
|
|
|
์ด ๋๋ ํฐ๋ฆฌ๋ค ์ค ์ผ๋ถ๋ ์ฌ๋ฌ๋ถ์ด ์ค์นํ ๋ชจ๋ ํจํค์ง๋ฅผ ์ ์ฅํ๋ ์ญํ ์ ํฉ๋๋ค. |
|
|
|
|
|
|
|
๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ ๊ฒฝ์ฐ: |
|
|
|
|
|
|
@ -557,7 +556,7 @@ $ pip install "fastapi[standard]" |
|
|
|
|
|
|
|
์ ์ญ ํ๊ฒฝ์ ๋ชจ๋ ํจํค์ง๋ฅผ ์ค์นํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ **ํ๋ก์ ํธ๋ณ ๊ฐ์ ํ๊ฒฝ**์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. |
|
|
|
|
|
|
|
๊ฐ์ ํ๊ฒฝ์ ์ ์ญ ํ๊ฒฝ๊ณผ ์ ์ฌํ๊ฒ **๋๋ ํฐ๋ฆฌ**์ธ๋ฐ, ํน์ ํ๋ก์ ํธ๋ฅผ ์ํ ํจํค์ง๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. |
|
|
|
๊ฐ์ ํ๊ฒฝ์ ์ ์ญ ํ๊ฒฝ๊ณผ ์ ์ฌํ๊ฒ **๋๋ ํฐ๋ฆฌ**์ด๋ฉฐ, ํน์ ํ๋ก์ ํธ๋ฅผ ์ํ ํจํค์ง๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. |
|
|
|
|
|
|
|
์ด๋ ๊ฒ ํ๋ฉด, ๊ฐ ํ๋ก์ ํธ๋ ์์ ์ ํจํค์ง๋ฅผ ์ํ ์์ฒด์ ์ธ ๊ฐ์ ํ๊ฒฝ(`.venv` ๋๋ ํฐ๋ฆฌ)์ ๊ฐ์ง๋๋ค. |
|
|
|
|
|
|
@ -620,7 +619,7 @@ $ source .venv/Scripts/activate |
|
|
|
|
|
|
|
//// |
|
|
|
|
|
|
|
์ด ๋ช
๋ น์ด๋ ๋ค์ ๋ช
๋ น์ด์์ ์ฌ์ฉํ ์ ์๋๋ก ์ผ๋ถ [ํ๊ฒฝ ๋ณ์](environment-variables.md){.internal-link target=_blank}๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ ํฉ๋๋ค. |
|
|
|
ํด๋น ๋ช
๋ น์ด๋, ๋ค์ ๋ช
๋ น์ด์์ ์ฌ์ฉํ ์ ์๋๋ก ์ผ๋ถ [ํ๊ฒฝ ๋ณ์](environment-variables.md){.internal-link target=_blank}๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ ํฉ๋๋ค. |
|
|
|
|
|
|
|
๊ทธ ํ๊ฒฝ ๋ณ์ ์ค ํ๋๊ฐ `PATH`์
๋๋ค. |
|
|
|
|
|
|
@ -632,7 +631,7 @@ $ source .venv/Scripts/activate |
|
|
|
|
|
|
|
๊ฐ์ ํ๊ฒฝ์ ํ์ฑํํ๋ฉด ๊ฐ์ ํ๊ฒฝ์ ๊ฒฝ๋ก `.venv/bin`(Linux ๋ฐ macOS) ๋๋ `.venv\Scripts`(Windows)๊ฐ `PATH` ํ๊ฒฝ ๋ณ์์ ์ถ๊ฐ๋ฉ๋๋ค. |
|
|
|
|
|
|
|
ํ๊ฒฝ์ ํ์ฑํํ๊ธฐ ์ `PATH` ๋ณ์๊ฐ ๋ค์๊ณผ ๊ฐ์๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค: |
|
|
|
๊ฐ์ํ๊ฒฝ์ ํ์ฑํํ๊ธฐ ์ `PATH` ๋ณ์๊ฐ ๋ค์๊ณผ ๊ฐ์๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค: |
|
|
|
|
|
|
|
//// tab | Linux, macOS |
|
|
|
|
|
|
@ -640,7 +639,7 @@ $ source .venv/Scripts/activate |
|
|
|
/usr/bin:/bin:/usr/sbin:/sbin |
|
|
|
``` |
|
|
|
|
|
|
|
์ด๋ ์์คํ
์ด ๋ค์ ๊ฒฝ๋ก์์ ํ๋ก๊ทธ๋จ์ ์ฐพ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: |
|
|
|
์ด๊ฒ์ ์์คํ
์ด ๋ค์ ๊ฒฝ๋ก์์ ํ๋ก๊ทธ๋จ์ ์ฐพ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: |
|
|
|
|
|
|
|
* `/usr/bin` |
|
|
|
* `/bin` |
|
|
@ -654,7 +653,7 @@ $ source .venv/Scripts/activate |
|
|
|
```plaintext |
|
|
|
C:\Windows\System32 |
|
|
|
``` |
|
|
|
์ด๋ ์์คํ
์ด ๋ค์ ๊ฒฝ๋ก์์ ํ๋ก๊ทธ๋จ์ ์ฐพ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: |
|
|
|
์ด๊ฒ์ ์์คํ
์ด ๋ค์ ๊ฒฝ๋ก์์ ํ๋ก๊ทธ๋จ์ ์ฐพ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: |
|
|
|
|
|
|
|
* `C:\Windows\System32` |
|
|
|
|
|
|
@ -668,7 +667,7 @@ C:\Windows\System32 |
|
|
|
/home/user/code/awesome-project/.venv/bin:/usr/bin:/bin:/usr/sbin:/sbin |
|
|
|
``` |
|
|
|
|
|
|
|
์ด๋ ์์คํ
์ด ์ด์ ๋ ๋ค์ ๊ฒฝ๋ก์์ ๋จผ์ ํ๋ก๊ทธ๋จ์ ์ฐพ๊ธฐ ์์ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: |
|
|
|
์ด๊ฒ์ ์์คํ
์ด ์ด์ ๋ ๋ค์ ๊ฒฝ๋ก์์ ๋จผ์ ํ๋ก๊ทธ๋จ์ ์ฐพ๊ธฐ ์์ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: |
|
|
|
|
|
|
|
```plaintext |
|
|
|
/home/user/code/awesome-project/.venv/bin |
|
|
@ -692,7 +691,7 @@ C:\Windows\System32 |
|
|
|
C:\Users\user\code\awesome-project\.venv\Scripts;C:\Windows\System32 |
|
|
|
``` |
|
|
|
|
|
|
|
์ด๋ ์์คํ
์ด ์ด์ ๋ ๋ค์ ๊ฒฝ๋ก์์ ๋จผ์ ํ๋ก๊ทธ๋จ์ ์ฐพ๊ธฐ ์์ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: |
|
|
|
์ด๊ฒ์ ์์คํ
์ด ์ด์ ๋ ๋ค์ ๊ฒฝ๋ก์์ ๋จผ์ ํ๋ก๊ทธ๋จ์ ์ฐพ๊ธฐ ์์ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: |
|
|
|
|
|
|
|
```plaintext |
|
|
|
C:\Users\user\code\awesome-project\.venv\Scripts |
|
|
@ -713,7 +712,7 @@ C:\Users\user\code\awesome-project\.venv\Scripts\python |
|
|
|
|
|
|
|
์ค์ํ ์ ์ ๊ฐ์ ํ๊ฒฝ์ ๊ฒฝ๋ก๊ฐ `PATH` ๋ณ์์ **๊ฐ์ฅ ์์** ์ถ๊ฐ๋๋ค๋ ๊ฒ์
๋๋ค. ์์คํ
์ ๋ค๋ฅธ ํ์ด์ฌ์ ์ฐพ๊ธฐ **์ ์** ์ด ๊ฒฝ๋ก์์ ๋จผ์ ํ์ด์ฌ์ ์ฐพ์ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ `python`์ ์คํํ์ ๋, ๋ค๋ฅธ ์ด๋ค `python`(์๋ฅผ ๋ค์ด ์ ์ญ ํ๊ฒฝ์ `python` ๊ฐ์) ๋์ ์ **๊ฐ์ ํ๊ฒฝ์** ํ์ด์ฌ์ด ์ฌ์ฉ๋ฉ๋๋ค. |
|
|
|
|
|
|
|
๊ฐ์ ํ๊ฒฝ์ ํ์ฑํ ํ๋ฉด ๋ช ๊ฐ์ง ๋ค๋ฅธ ๋ณํ๋ ์์ง๋ง, ์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํ ํ๋์
๋๋ค. |
|
|
|
๊ฐ์ ํ๊ฒฝ์ ํ์ฑํํ๋ฉด ๋ช ๊ฐ์ง ๋ค๋ฅธ ๋ณํ๋ ์์ง๋ง, ์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํ ์ ์
๋๋ค. |
|
|
|
|
|
|
|
## ๊ฐ์ ํ๊ฒฝ ํ์ธํ๊ธฐ |
|
|
|
|
|
|
@ -753,15 +752,15 @@ Linux์ macOS์์๋ `which`๋ฅผ, Windows PowerShell์์๋ `Get-Command`๋ฅผ |
|
|
|
|
|
|
|
์ด ๋ช
๋ น์ด์ ์๋ ๋ฐฉ์์ `PATH` ํ๊ฒฝ ๋ณ์๋ฅผ ํ์ธํ๊ณ **๊ฐ ๊ฒฝ๋ก๋ฅผ ์์ฐจ์ ์ผ๋ก** ํ์ํ์ฌ, `python`์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฐพ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ์ ์ฐพ์ผ๋ฉด ๊ทธ **๊ฒฝ๋ก๋ฅผ ๋ณด์ฌ์ค๋๋ค**. |
|
|
|
|
|
|
|
๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ `python`์ ํธ์ถํ ๋, ๋ฐ๋ก ๊ทธ "`python`"์ด ์คํ๋๋ค๋ ๊ฒ์
๋๋ค. |
|
|
|
๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ `python`์ ํธ์ถํ ๋, ๋ฐ๋ก ๊ทธ ๊ฒฝ๋ก์ "`python`"์ด ์คํ๋๋ค๋ ๊ฒ์
๋๋ค. |
|
|
|
|
|
|
|
๋ฐ๋ผ์ ์ฌ๋ฌ๋ถ์ ์ฌ๋ฐ๋ฅธ ๊ฐ์ ํ๊ฒฝ์ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. |
|
|
|
๊ทธ๋์ ์ฌ๋ฌ๋ถ์ ์ฌ๋ฐ๋ฅธ ๊ฐ์ ํ๊ฒฝ์ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. |
|
|
|
|
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
ํ๋์ ๊ฐ์ ํ๊ฒฝ์ ํ์ฑํ ํ์ฌ ํ์ด์ฌ์ ์คํํ ํ, **๋ ๋ค๋ฅธ ํ๋ก์ ํธ๋ก ์ด๋**ํ ์ ์์ต๋๋ค. |
|
|
|
ํ๋์ ๊ฐ์ ํ๊ฒฝ์ ํ์ฑํ ํ์ฌ ํ์ด์ฌ์ ์คํํ ํ, **๋ ๋ค๋ฅธ ํ๋ก์ ํธ๋ก ์ด๋**ํฉ๋๋ค. |
|
|
|
|
|
|
|
๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ํ๋ก์ ํธ๋ **์๋ํ์ง ์์ต๋๋ค**. ๋ค๋ฅธ ํ๋ก์ ํธ ๊ฐ์ํ๊ฒฝ์ ํ์ด์ฌ์ด๋ผ, **์๋ชป๋ ํ์ด์ฌ**์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
๋๋ค. |
|
|
|
๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ํ๋ก์ ํธ๋ **์๋ํ์ง ์์ต๋๋ค**. ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ์ํ ๊ฐ์ํ๊ฒฝ์ผ๋ก๋ถํฐ์, **์๋ชป๋ ํ์ด์ฌ**์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
๋๋ค. |
|
|
|
|
|
|
|
์ด๋ค `python`์ด ์ฌ์ฉ๋๊ณ ์๋์ง ํ์ธํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ์ฉํฉ๋๋ค. ๐ค |
|
|
|
|
|
|
@ -769,9 +768,9 @@ Linux์ macOS์์๋ `which`๋ฅผ, Windows PowerShell์์๋ `Get-Command`๋ฅผ |
|
|
|
|
|
|
|
## ๊ฐ์ ํ๊ฒฝ์ ๋นํ์ฑํ ํ๋ ์ด์ |
|
|
|
|
|
|
|
์๋ฅผ ๋ค์ด **๊ฐ์ ํ๊ฒฝ์ ํ์ฑํ ํ** `philosophers-stone` ํ๋ก์ ํธ์์ ์์
์ค์ผ ๋, ๊ทธ ํ๊ฒฝ์์ ํจํค์ง๋ฅผ ์ค์นํ๊ณ ์์
ํ ์ ์์ต๋๋ค. |
|
|
|
์๋ฅผ ๋ค์๋ฉด, **๊ฐ์ ํ๊ฒฝ์ ํ์ฑํ ํ** `philosophers-stone` ํ๋ก์ ํธ์์ ์์
์ค์ผ ๋, ๊ทธ ํ๊ฒฝ์์ ํจํค์ง๋ฅผ ์ค์นํ๊ณ ์์
ํ ์ ์์ต๋๋ค. |
|
|
|
|
|
|
|
๊ทธ๋ฆฌ๊ณ ๋์ **๋ค๋ฅธ ํ๋ก์ ํธ**์ธ `prisoner-of-azkaban`์์ ์์
ํ๊ธธ ์ํ ์๋ ์์ต๋๋ค. |
|
|
|
๊ทธ๋ฐ ํ **๋ค๋ฅธ ํ๋ก์ ํธ**์ธ `prisoner-of-azkaban`์์ ์์
ํ๊ธธ ์ํ ์๋ ์์ต๋๋ค. |
|
|
|
|
|
|
|
๊ทธ ํ๋ก์ ํธ๋ก ์ด๋ํฉ๋๋ค: |
|
|
|
|
|
|
@ -823,15 +822,15 @@ I solemnly swear ๐บ |
|
|
|
|
|
|
|
## ๋์ |
|
|
|
|
|
|
|
์ด ๊ฐ์ด๋๋ ์์ํ๋ ๋ฐ ๋์์ ์ฃผ๊ณ ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ **์๋**ํ๋์ง ์๋ ค์ฃผ๊ธฐ ์ํ ๊ฐ๋จํ ๊ฐ์ด๋์
๋๋ค. |
|
|
|
์ด ๊ฐ์ด๋๋ ์์ํ๋ ๋ฐ ๋์์ ์ฃผ๊ธฐ ์ํ ๊ฐ๋จํ ๊ฐ์ด๋์ด๊ณ , ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ **์๋**ํ๋์ง ์๋ ค์ค๋๋ค. |
|
|
|
|
|
|
|
๊ฐ์ ํ๊ฒฝ๊ณผ ํจํค์ง ์์กด์ฑ(์๊ตฌ์ฌํญ), ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ง์ **๋์๋ค**์ด ์์ต๋๋ค. |
|
|
|
๊ฐ์ ํ๊ฒฝ๊ณผ ํจํค์ง ์์กด์ฑ (requirements), ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ง์ **๋์๋ค**์ด ์์ต๋๋ค. |
|
|
|
|
|
|
|
์ผ๋จ **์ ์ฒด ํ๋ก์ ํธ ๊ด๋ฆฌ**, ํจํค์ง ์์กด์ฑ, ๊ฐ์ ํ๊ฒฝ ๋ฑ์ ๊ด๋ฆฌํ ๋๊ตฌ๋ฅผ ์ํ๊ณ ์ค๋น๊ฐ ๋์๋ค๋ฉด, <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">uv</a>๋ฅผ ์๋ํด ๋ณด๊ธธ ์ถ์ฒ๋๋ฆฝ๋๋ค. |
|
|
|
์ผ๋จ **์ ์ฒด ํ๋ก์ ํธ ๊ด๋ฆฌ**, ํจํค์ง ์์กด์ฑ, ๊ฐ์ ํ๊ฒฝ ๋ฑ์ ๊ด๋ฆฌํ ๋๊ตฌ๋ฅผ ์ํ๊ณ ์ค๋น๊ฐ ๋์๋ค๋ฉด, <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">uv</a>๋ฅผ ์๋ํด ๋ณด๊ธธ ์ถ์ฒํฉ๋๋ค. |
|
|
|
|
|
|
|
`uv`๋ ๋ง์ ์ผ์ ํ ์ ์์ต๋๋ค: |
|
|
|
|
|
|
|
* ๋ค์ํ ๋ฒ์ ์ ํฌํจํ **ํ์ด์ฌ ์ค์น** |
|
|
|
* ๋ค์ํ ๋ค๋ฅธ ๋ฒ์ ์ **ํ์ด์ฌ ์ค์น** |
|
|
|
* ํ๋ก์ ํธ์ **๊ฐ์ ํ๊ฒฝ** ๊ด๋ฆฌ |
|
|
|
* **ํจํค์ง** ์ค์น |
|
|
|
* ํ๋ก์ ํธ๋ฅผ ์ํ ํจํค์ง **์์กด์ฑ ๋ฐ ๋ฒ์ ** ๊ด๋ฆฌ |
|
|
@ -840,6 +839,6 @@ I solemnly swear ๐บ |
|
|
|
|
|
|
|
## ๊ฒฐ๋ก |
|
|
|
|
|
|
|
์ด ๋ชจ๋ ๋ด์ฉ์ ์ฝ๊ณ ์ดํดํ๋ค๋ฉด, ์ด์ ์ฌ๋ฌ๋ถ์ ๋ค๋ฅธ ๋ง์ ๊ฐ๋ฐ์๋ค ๋ณด๋ค ๊ฐ์ ํ๊ฒฝ์ ๋ํด **ํจ์ฌ ๋ ์ ์๊ฒ๋์์ต๋๋ค**. ๐ค |
|
|
|
์ด ๋ชจ๋ ๋ด์ฉ์ ์ฝ๊ณ ์ดํดํ๋ค๋ฉด, ์ด์ ์ฌ๋ฌ๋ถ์ ๋ค๋ฅธ ๋ง์ ๊ฐ๋ฐ์๋ค ๋ณด๋ค ๊ฐ์ ํ๊ฒฝ์ ๋ํด **ํจ์ฌ ์ ์๊ฒ๋์์ต๋๋ค**. ๐ค |
|
|
|
|
|
|
|
์ด ์ธ๋ถ ์ฌํญ๋ค์ ์๋ค๋ ๊ฒ์, ์ธ์ ๊ฐ ๋ณต์กํด ๋ณด์ด๋ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น
ํ ๋ ์ ์ฉํ ์ ์์ผ๋ฉฐ, ๊ทธ๋ฌ๋ ๊ทธ๋๋ ์ด **๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง** ์๊ฒ๋ ๊ฒ์
๋๋ค. ๐ |
|
|
|
์ด ์ธ๋ถ ๋ด์ฉ์ ์๊ณ ์๋ค๋ ๊ฒ์, ์ธ์ ๊ฐ ๋ณต์กํด ๋ณด์ด๋ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น
ํ ๋ ์ ์ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ทธ๋๋ ์ด **๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง**๋ ์๊ฒ๋ ๊ฒ์
๋๋ค. ๐ |
|
|
|