1. ์ธํฐํ๋ฆฌํฐ(Interperter)
- Interperter : "ํต์ญ์ฌ"๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์.
- ์ธํฐํ๋ฆฌํฐ๋ ํ ์ค์ฉ ๋ฐ๋ก๋ฐ๋ก ์ฝ๊ณ ํต์ญ์ ํด์ ์คํ์ ํด์ค๋ค๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์.
- ์ฝ๊ฒ๋งํด, ํ๋ก๊ทธ๋จ์ด ์คํ์ด ๋๋ฉด ์ค์๊ฐ์ผ๋ก ํ ์ค์ฉ ํด์ํด์ ์คํ์ ํ๋ค๋ ๋ง์.
- ์์์ด ์๊ฐํ ๋, ๋ฐ๋ก ์ดํดํ๊ธฐ ์ฝ๊ฒ ์คํ ๊ณผ์ ์ผ๋ก ์๋ ค์ฃผ๊ฒ ์.
2. ํ์ด์ฌ ํ๋ก๊ทธ๋จ ์คํ ๊ณผ์
(1) ์์ค์ฝ๋ ์์ฑ
- .py ํ์ฅ์๋ฅผ ๊ฐ์ง๋ ์์ค์ฝ๋๋ฅผ ์๋ฏธํจ.
(2) ์์ค์ฝ๋ ์คํ
- ๋ด๋ถ์ ์ธ ๋ช ๋ น์ด python test.py -> test.py ํ์ด์ฌ ์ฝ๋ ์คํ
(3) ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ ์คํ
- ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ์์๋ ์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ 2๊ฐ๊ฐ ๋ด์ฅ์ด ๋์ด์์.
(4) ์ปดํ์ผ๋ฌ ์คํ - ๋ฐ์ดํธ์ฝ๋ ๋ณํ
- ์ปดํ์ผ ๋จ๊ณ์์ ๋ชจ๋ ์์ค์ฝ๋๋ฅผ ์ฝ์ด ๊ตฌ๋ฌธ ๋ถ์, ์ฝ๋ ๋ณํ(๋ฐ์ดํธ์ฝ๋) ๋ฅผ ์ํํ๋ค.
- ์์ค์ฝ๋ -> ๋ฐ์ดํธ์ฝ๋(.pyc)๋ก ๋ณํ
- ์ด๋ ๋ง๋ค์ด์ง๋, ๋ฐ์ดํธ์ฝ๋์๋ ์ธํฐํ๋ฆฌํฐ๊ฐ ํ ์ค์ฉ ํด์ํ๊ธฐ ์ข๊ฒ ๋ฐ์ดํธ์ฝ๋๋ฅผ ๋ง๋ค์ด ๋๋๋ค.
(5) ์ธํฐํ๋ฆฌํฐ ์คํ - ๋ฐ์ดํธ์ฝ๋๋ฅผ ์ด์์ฒด์ ๊ฐ ์ฝ์ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํ
- ์ปดํ์ผ์ด ๋ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์คํํ๋ ์ญํ ์ ํ๋ฉฐ, ๊ธฐ๊ณ์ด๋ก ๋ณํ์ ํด์ค๋ค.
- ์ธํฐํ๋ฆฌํฐ๋ก์จ, ํ ์ค์ฉ ํด์ํ๋ฉฐ ๊ธฐ๊ณ์ด๋ก ๋ณํํด์ ์ด์์ฒด์ ๋ก ๋๊ฒจ์ฃผ๋ฉด, ์ด์์ฒด์ ๊ฐ ์ฝ๋๋ฅผ ์คํํจ.
- ์ด์์ฒด์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ณ์๋, ๊ฐ์ฒด ๋ฑ์ ๊ณต๊ฐ์ ํ ๋นํจ.
- ์ฌ์ค์ ๋ฐ์ดํธ์ฝ๋์๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ด๋ฏธ ์ฝ๋๊ฐ ํ์ค์ฉ ์ฝ๋๋ก ํธํ๊ฒ ์ ๋ฆฌ๊ฐ ๋์ด์์.
- ์ฆ, ํ ์ค์ฉ ์คํ๋๋ ๊ฒ ์๋๋ผ, ์ฝ๋์ ๋ ผ๋ฆฌ์ ์ธ ํ๋ฆ์ ๋ฐํ์ผ๋ก ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ ์ค๊ฐ ์ฝ๋๊ฐ ๋ฐ์ดํธ ์ฝ๋์ธ ์ ์ด๋ค.
- ๋ ผ๋ฆฌ์ ์ผ๋ก ์คํ ๊ฐ๋ฅํ ์งง์ ๋จ์๋ก ์๋ผ ๋์๋๋ฐ, ๊ทธ๊ฒ์ด ํ ์ค๋ก ํํ์ด ๋ ๊ฒ์ด๋ค.
- ์ด๋ฐ์์ผ๋ก ๋ฐ์ดํธ์ฝ๋ ๋ ผ๋ฆฌ์ ๋จ์ -> ์ธํฐํ๋ฆฌํฐ ๊ธฐ๊ณ์ด ๋ณํ -> ์ด์์ฒด์ ์คํ ( ๋ฐ๋ณต์ ํจ )
3. ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ ํจ์์ ํด๋์ค ์ฝ๊ธฐ
- ๊ทธ๋ ๋ค๋ฉด, ์ธํฐํ๋ฆฌํฐ๋ ํจ์์ ํด๋์ค๋ฅผ ์ด๋ป๊ฒ ์ฝ์๊น?
(1) ํจ์
add(1, 2) # ์ค๋ฅ
def add(a, b):
print(a + b)
add(1, 2) # ์ ์ ์คํ
- ์์ ์ฝ๋์ ๊ฐ์ด ํจ์๊ฐ ์กด์ฌํ๊ณ , ํจ์๋ฅผ ํธ์ถํ๋ค๊ณ ๊ฐ์ ํ ๋ ์์ add() ํธ์ถ ๋ผ์ธ์ ์ค๋ฅ๊ฐ ๋ ๊ฒ์ด๋ค.
- ๊ทธ ์ด์ ๋, ์ธํฐํ๋ฆฌํฐ๋ ์์์ ์๋๋ก ์ฝ๊ธฐ ๋๋ฌธ์ ์์ add() ํธ์ถ์ ํ๋ ค๊ณ ํด๋ ๋ฉ๋ชจ๋ฆฌ์ def ํจ์๊ฐ ์ ์๋์ด์์ง ์๊ธฐ๋๋ฌธ
- ์ฆ, ์ธํฐํ๋ฆฌํฐ๋ ์์์ ์๋๋ก ์ฝ๋ ๊ณผ์ ์์ ํจ์๋ฅผ ์ ์ธํ ๋ถ๋ถ์ ๋ง๋๊ฒ ๋๋ฉด, ํด๋น ํจ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ์ ํ๊ฒ ๋๋ค.
- ๊ทธ๋ฌ๋ค ํจ์ ํธ์ถ ๋ถ๋ถ์ ๋ง๋๋ฉด ๊ธฐ์ตํ ํจ์๋ฅผ ํธ์ถํด ์ฝ๋๋ธ๋ก์ ์คํํ๋ ์๋ฆฌ์ด๋ค.
- ํด๋์ค ๋ํ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
(2) import
# test5.py
import test4
test4.add(1, 2)
# import test4 -> ์๋ฌ๋จ
# test4.py
def add(a, b):
print(a + b)
- ์ด๋ ๊ฒ import๋ฅผ ๋งจ ์์ ์ ์ธํ๋ ์ด์ ๋ ์ธํฐํ๋ฆฌํฐ์ ๋์ ์๋ฆฌ ๋๋ฌธ์ธ ๊ฒ์ด๋ค.
- ์ธํฐํ๋ฆฌํฐ์ ์ํด ํด๋น import ๋ผ์ธ์ด ์ฝํ๊ฒ ๋๋ฉด, ํ์ผ(๋ชจ๋)์ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๊ณ ๋ค์ ์ฝ๋๋ฅผ ์คํํ๋ค.
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ import ๋ผ์ธ์ด ๋งจ์์ ์๋ ๊ฒ์ด๋ค. ( ์ฐธ๊ณ ๋ก ์๋์ ๋๊ณ ํด๋น ํจ์ ํธ์ถ ์ ์ค๋ฅ )
4. ์ ๋ฆฌ
- ์ ๋ฆฌ๋ฅผ ํ๋ฉด, ํ์ด์ฌ์์ ์ธํฐํ๋ฆฌํฐ๋ ํ๋์ ํ์ด์ฌ ์ธ์ด๋ก ๋ง๋ค์ด์ง ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์.
- ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ์๋ "์ปดํ์ผ๋ฌ", "์ธํฐํ๋ฆฌํฐ" ๋ ๊ฐ์ง๊ฐ ๋ค์ด๊ฐ ์์. ์ฆ, ํ์ด์ฌ์ ๋ ๊ฐ์ง๋ฅผ ๋์์ ์ด์ฉ์ ํจ.
- ์ฆ, ๋ค๋ฅธ ์ธ์ด์ ๋ค๋ฅด๊ฒ ํ์ด์ฌ์ ์คํ ์, ์ธํฐํ๋ฆฌํฐ ํ ๊ณณ์์ ์ปดํ์ผ ์ธํฐํ๋ฆฌํฐ ๋ ๊ฐ์ง ์์ ์ ์ํํ๋ฉฐ ์คํ๋จ.
- ์๋ฐ๋ฅผ ์๋ก ๋ค๋ฉด, ์๋ฐ๋ ์ปดํ์ผ ์ .class ํ์ผ์ ์ง์ ๊ฐ์ง๊ณ ์๋ค๊ฐ ํด๋น ํ์ผ์ JVM์ ๋๊ฒจ ์คํํ๋ ๋ฐฉ์์.
- ์ฐจ์ด๋ฅผ ๋ณด๋ฉด, ํ์ด์ฌ์ .pyc ํ์ผ์ ์ง์ ๊ฐ์ง๊ณ ์์ง ์๊ณ ๋ฐ๋ก ์คํ์ ์ํค๋ ๋๋์ด๋ผ ๋ณด๋ฉด๋ ๋ฏ.
- ์ธํฐํ๋ฆฌํฐ ์์ฒด์ ๊ฐ๋ ์ ์ดํดํ๊ธฐ ๋ณด๋ค๋, ์ง์ ์ธ์ด๋ฅผ ์ด์ฉํด ํ๋ฆ์ ๋ณด๋ฉด ์๊ฐ๋ณด๋ค ๋งค์ฐ ์ฌ์ด ๊ฐ๋ ์.
'๐ ๏ธBackend > โกPython' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] 10๊ฐ - ๊ฐ์ฒด์งํฅ (1) | 2025.04.18 |
---|---|
[Python] 9๊ฐ - ํจ์ (0) | 2025.04.17 |
[Python] 7๊ฐ - ๋ฐ๋ณต ๊ตฌ์กฐ (0) | 2025.04.17 |
[Python] 6๊ฐ - ์ ํ ๊ตฌ์กฐ (0) | 2025.04.16 |
[Python] 5๊ฐ - ์์ฐจ ๊ตฌ์กฐ ๋ฐ ์ ์ด ๊ตฌ์กฐ (0) | 2025.04.15 |