2025. 3. 24. 13:09ใ๐ ์ฝ๋ฉ ํ ์คํธ/Python

Python์ main์ด ์๋ ์ด์ : ๊ฐ๊ฒฐํจ๊ณผ ์ ์ฐ์ฑ์ ์ฒ ํ
Python์ ์ฒ์ ์ ํ๋ ๊ฐ๋ฐ์๋ผ๋ฉด, Java๋ C ๊ฐ์ ์ธ์ด์์ ํํ ๋ณด์ด๋ main ํจ์๊ฐ Python ์ฝ๋์์๋ ๋ช ์์ ์ผ๋ก ๋ณด์ด์ง ์๋๋ค๋ ์ ์ ์์ํจ์ ๋๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด, Java์์๋ ํ๋ก๊ทธ๋จ์ ์ง์ ์ (entry point)์ผ๋ก public static void main(String[] args)๊ฐ ํ์์ ์ด๋ค. ํ์ง๋ง Python์์๋ ๋จ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ ์คํํ๋ฉด ๋ฐ๋ก ๋์ํ๋ค. ์ ๊ทธ๋ด๊น? ๊ทธ ์ด์ ๋ Python์ ์ค๊ณ ์ฒ ํ๊ณผ ์คํ ๋ฐฉ์์ ์๋ค.
1. Python์ ์ธํฐํ๋ฆฌํฐ ๊ธฐ๋ฐ ์คํ
Python์ ์ปดํ์ผ๋ฌ ์ธ์ด๊ฐ ์๋๋ผ ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ค. C๋ Java๋ ์ฝ๋๋ฅผ ์ปดํ์ผํด์ ์คํ ๊ฐ๋ฅํ ํ์ผ์ ๋ง๋ค๊ณ , ๊ทธ ๊ณผ์ ์์ main ํจ์๋ฅผ ํ๋ก๊ทธ๋จ์ ์์์ ์ผ๋ก ๋ช ์์ ์ผ๋ก ์ ์ํด์ผ ํ๋ค. ๋ฐ๋ฉด Python์ ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ๊ณ ์ฆ์ ์คํํ๋ค. ๋ฐ๋ผ์ ๋ณ๋์ ์ง์ ์ ์ ์ง์ ํ ํ์ ์์ด, ํ์ผ ๋งจ ์๋ถํฐ ์๋๋ก ์์ฐจ์ ์ผ๋ก ์คํ๋๋ค. ์๋ฅผ ๋ค์ด:
์ ์ฝ๋๋ฅผ hello.py๋ก ์ ์ฅํ๊ณ python hello.py๋ก ์คํํ๋ฉด ๋ฐ๋ก "Hello, World!"๊ฐ ์ถ๋ ฅ๋๋ค. main ํจ์ ์์ด๋ ๋์ํ๋ ์ด์ ๋ Python์ด ์คํฌ๋ฆฝํธ ์ ์ฒด๋ฅผ ํ๋์ ์คํ ํ๋ฆ์ผ๋ก ๊ฐ์ฃผํ๊ธฐ ๋๋ฌธ์ด๋ค.
2. ๋ชจ๋๊ณผ ์คํฌ๋ฆฝํธ์ ์ด์ค ์ญํ
Python์์๋ ๋ชจ๋ .py ํ์ผ์ด ๋์์ ์คํฌ๋ฆฝํธ์ด์ ๋ชจ๋๋ก ๋์ํ ์ ์๋ค. ๋ค๋ฅธ ์ธ์ด์์๋ ํ๋ก๊ทธ๋จ์ ์ง์ ์ ์ main์ผ๋ก ๋ช ํํ ๊ตฌ๋ถํ์ง๋ง, Python์ ํ์ผ์ด ์ง์ ์คํ๋๋์ง, ์๋๋ฉด ๋ค๋ฅธ ํ์ผ์์ ๋ชจ๋๋ก ์ํฌํธ๋๋์ง์ ๋ฐ๋ผ ๋์์ ์กฐ์ ํ๋ค. ์ด๋ฅผ ์ํด Python ๊ฐ๋ฐ์๋ค์ ๊ด๋ก์ ์ผ๋ก __name__ ๋ณ์์ if __name__ == "__main__": ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ค:
- ํ์ผ์ด ์ง์ ์คํ๋๋ฉด __name__์ด "__main__"์ผ๋ก ์ค์ ๋์ด say_hello()๊ฐ ํธ์ถ๋๋ค.
- ํ์ผ์ด ๋ชจ๋๋ก ์ํฌํธ๋๋ฉด __name__์ด ํ์ผ ์ด๋ฆ(์: my_module)์ด ๋์ด if ๋ธ๋ก์ด ์คํ๋์ง ์๋๋ค.
์ฆ, Python์ main ํจ์๋ฅผ ๊ฐ์ ํ๊ธฐ๋ณด๋ค๋ ๊ฐ๋ฐ์๊ฐ ํ์์ ๋ฐ๋ผ ์ง์ ์ ์ ์ ์ฐํ๊ฒ ์ ์ํ ์ ์๋ค.
3. ๊ฐ๊ฒฐํจ์ ์ถ๊ตฌํ๋ ์ฒ ํ
Python์ ์ค๊ณ ์ฒ ํ์ "Zen of Python"(PEP 20)์ ์ ๋ํ๋๋ค. ์ฌ๊ธฐ์๋ "๋จ์ํจ์ด ๋ณต์กํจ๋ณด๋ค ๋ซ๋ค(Simple is better than complex)"๋ผ๋ ์์น์ด ํฌํจ๋์ด ์๋ค. main ํจ์๋ฅผ ํ์๋ก ์๊ตฌํ์ง ์์์ผ๋ก์จ, Python์ ๋ถํ์ํ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋๋ฅผ ์ค์ด๊ณ ๊ฐ๋ฐ์๊ฐ ๋ ์ง๊ด์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค. ์์ ์คํฌ๋ฆฝํธ๋ถํฐ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ๊น์ง, Python์ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ฉฐ ๊ฐ๋ฐ์์ ์๋๋ฅผ ์ต๋ํ ์กด์คํ๋ค.
๊ฒฐ๋ก
Python์ main ํจ์๊ฐ ์๋ ์ด์ ๋ ๊ฐ์ ์ ์ธ ์ง์ ์ ๋์ ์ ์ฐ์ฑ๊ณผ ๊ฐ๊ฒฐํจ์ ์ ํํ ์ค๊ณ ๊ฒฐ์ ๋๋ฌธ์ด๋ค. __name__ == "__main__" ํจํด์ ํ์ํ ๋ ์ด๋ฅผ ๋ณด์ํ๋ฉฐ, Python์ ์ฒ ํ์ธ "์ฝ๊ธฐ ์ฝ๊ณ ์ฐ๊ธฐ ์ฌ์ด ์ฝ๋"๋ฅผ ์ ์งํ๋ค. ๊ทธ๋ฌ๋ Python์ ์ฌ์ฉํ ๋ main์ด ์๋ค๊ณ ๋นํฉํ์ง ๋ง๊ณ , ๊ทธ ์์ ๋ก์์ ์ฆ๊ฒจ๋ณด์!
'๐ ์ฝ๋ฉ ํ ์คํธ > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ์ ๋ ฌ๊ณผ ํ์ ์๊ณ ๋ฆฌ์ฆ ์์ ์ ๋ณต! (with Python) (4) | 2025.07.01 |
---|---|
๐ง ๋ฆฌ์คํธ(๋ฐฐ์ด) ๊ฐ๋ ์ ๋ฆฌ & ์ฐ์ต๋ฌธ์ ํ์ด (with Python) (0) | 2025.07.01 |
๊ทธ๋ฆฌ๋ & ๊ตฌํ # 2 (0) | 2020.11.25 |
๊ทธ๋ฆฌ๋ & ๊ตฌํ # 1 (0) | 2020.11.25 |
ํ์ด์ฌ ๋ฌธ๋ฒ #4 (0) | 2020.11.19 |