Python์— main์ด ์—†๋Š” ์ด์œ 

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์€ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ์ฝ๊ณ  ์ฆ‰์‹œ ์‹คํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ„๋„์˜ ์ง„์ž…์ ์„ ์ง€์ •ํ•  ํ•„์š” ์—†์ด, ํŒŒ์ผ ๋งจ ์œ„๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

 
print("Hello, World!")

์œ„ ์ฝ”๋“œ๋ฅผ hello.py๋กœ ์ €์žฅํ•˜๊ณ  python hello.py๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋ฐ”๋กœ "Hello, World!"๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. main ํ•จ์ˆ˜ ์—†์ด๋„ ๋™์ž‘ํ•˜๋Š” ์ด์œ ๋Š” Python์ด ์Šคํฌ๋ฆฝํŠธ ์ „์ฒด๋ฅผ ํ•˜๋‚˜์˜ ์‹คํ–‰ ํ๋ฆ„์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

2. ๋ชจ๋“ˆ๊ณผ ์Šคํฌ๋ฆฝํŠธ์˜ ์ด์ค‘ ์—ญํ• 

Python์—์„œ๋Š” ๋ชจ๋“  .py ํŒŒ์ผ์ด ๋™์‹œ์— ์Šคํฌ๋ฆฝํŠธ์ด์ž ๋ชจ๋“ˆ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ ์„ main์œผ๋กœ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜์ง€๋งŒ, Python์€ ํŒŒ์ผ์ด ์ง์ ‘ ์‹คํ–‰๋˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๋ชจ๋“ˆ๋กœ ์ž„ํฌํŠธ๋˜๋Š”์ง€์— ๋”ฐ๋ผ ๋™์ž‘์„ ์กฐ์ •ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Python ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ด€๋ก€์ ์œผ๋กœ __name__ ๋ณ€์ˆ˜์™€ if __name__ == "__main__": ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค:

 
def say_hello(): print("Hello from function!") if __name__ == "__main__": say_hello()
  • ํŒŒ์ผ์ด ์ง์ ‘ ์‹คํ–‰๋˜๋ฉด __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์ด ์—†๋‹ค๊ณ  ๋‹นํ™ฉํ•˜์ง€ ๋ง๊ณ , ๊ทธ ์ž์œ ๋กœ์›€์„ ์ฆ๊ฒจ๋ณด์ž!

๋ฐ˜์‘ํ˜•