
Python์ ์ด๋ค ์ธ์ด์ธ๊ฐ? Python์ ์ฃผ์ ํน์ง๊ณผ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.

ํ์ด์ฌ ์ฝ๋๋ ์ด๋ป๊ฒ ์คํ๋ ๊น? CPython์ด ์์ค ์ฝ๋๋ฅผ ๋ถ์ํ๊ณ , ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผํด ์คํํ๋ ๊ณผ์ ์ ์ ๋ฆฌํ์ต๋๋ค.

๋ณ์๋ ๊ฐ์ฒด๋ฅผ ๋ด๋ ์์์ผ๊น? ๋ณ์์ ๊ฐ์ฒด์ ๊ด๊ณ๋ฅผ ๋ฐํ์ผ๋ก ๋์ ๊ณผ ์ฌ๋์ ์ ์๋ฏธ, is์ ==์ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํด๋ดค๋ค.

๊ฐ์ฒด๋ ๋ชจ๋ ๋ณ๊ฒฝํ ์ ์์๊น? ๊ฐ๋ณ ๊ฐ์ฒด์ ๋ถ๋ณ ๊ฐ์ฒด์ ์ฐจ์ด๋ฅผ ์์๋ณด๊ณ , ๋ฆฌ์คํธยท๋ฌธ์์ดยทํํ ์์ ๋ก ๊ฐ์ฒด์ ๋ณ๊ฒฝ๊ณผ ์ฌ๋์ ์ด ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์ ๋ฆฌํด๋ดค์ต๋๋ค.

๋ณต์ฌ๋ ์ด๋ป๊ฒ ๋์ํ ๊น? ๋จ์ ๋์ , ์์ ๋ณต์ฌ, ๊น์ ๋ณต์ฌ์ ์ฐจ์ด๋ฅผ ๊ฐ์ฒด์ ์ฐธ์กฐ ๊ด๊ณ๋ก ์ดํดํ๊ณ , ์ด๋ค ์ํฉ์์ ์ด๋ค ๋ณต์ฌ๊ฐ ํ์ํ์ง ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.

์๋ฃํ์ ์ด๋ป๊ฒ ์ ํํ ๊น? ์์, ์ค๋ณต, ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ, ์ ๊ทผ ๋ฐฉ์์ ๊ธฐ์ค์ผ๋ก ์๋ฃํ์ ๋น๊ตํ๊ณ , ์ํฉ์ ๋ง๋ ์๋ฃํ์ ์ ํํ๋ ๊ธฐ์ค์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.

if, for, while์ ์ด๋ป๊ฒ ๋์ํ ๊น? ์ด๋ฒ ๊ธ์์๋ ์กฐ๊ฑด๋ฌธ์ Truth Value์ ๋ฐ๋ณต๋ฌธ์ Iterable, Iterator ๊ฐ๋ ์ ์ค์ฌ์ผ๋ก ํ์ด์ฌ์ ์คํ ํ๋ฆ์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.

comprehension์ ์ ์ฌ์ฉํ ๊น? List, Dictionary, Set Comprehension์ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ ํ์ฉ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์์ง ์์๋ณด์์ต๋๋ค.

ํจ์์ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๋งค๊ฐ๋ณ์์ ์ธ์๋ถํฐ ๊ฐ์ฒด ๊ณต์ , ์์ ๊ณผ ์ฌ๋์ ์ ์ฐจ์ด๊น์ง ํ์ด์ฌ ํจ์์ ๋์ ์๋ฆฌ๋ฅผ ๋ค์ ํ๋ฒ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.

ํจ์ ์์์ ๋ฐ๊พผ ๋ณ์๊ฐ ์ ํจ์ ๋ฐ์์๋ ๊ทธ๋๋ก์ผ๊น? ์ง์ญ ๋ณ์์ ์ ์ญ ๋ณ์, ์ค์ฝํ์ ๋ค์์คํ์ด์ค, LEGB ๊ท์น์ ํตํด ํ์ด์ฌ์ ์ด๋ฆ ํ์ ์๋ฆฌ๋ฅผ ์์๋ณด๊ณ , global๊ณผ nonlocal, ๊ฐ์ฒด ๋ณ๊ฒฝ๊ณผ ์ฌ๋์ ์ ์ฐจ์ด๋ฅผ ์ดํด๋ณด์์ต๋๋ค.

์ง๋ ๊ธ์์๋ ํจ์ ์ํ์ ๋ณ์๋ฅผ ๊ตฌ๋ถํ๋ ์ค์ฝํ(Scope) ์ ์ด๋ฆ์ ํ์ํ๋ LEGB ๊ท์น์ ์์๋ดค๋ค. ๊ทธ๋ฐ๋ฐ ํ์ด์ฌ์์ ํจ์๋ ๋จ์ํ ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ํ ๋ฌธ๋ฒ์ผ๊น? ์ฐ๋ฆฌ๋ ๋ณดํต greet()์ฒ๋ผ ํจ์๋ฅผ ํธ์ถํด์ ์ฌ์ฉํ๋ค. ํ์ง๋ง ํ์ด์ฌ์์๋ ํจ์ ๊ฐ์ฒด๋ฅผ

ํ์ด์ฌ์ ๋ฐ์ฝ๋ ์ดํฐ๋ ์ด๋ป๊ฒ ๋์ํ ๊น? ํจ์๊ฐ ๊ฐ์ฒด๋ผ๋ ํน์ง๊ณผ ํด๋ก์ ๋ฅผ ๋ฐํ์ผ๋ก, ๊ธฐ์กด ํจ์๋ฅผ ์์ ํ์ง ์๊ณ ๊ธฐ๋ฅ์ ํ์ฅํ๋ ์๋ฆฌ๋ฅผ ์ดํด๋ณด๊ณ `@` ๋ฌธ๋ฒ์ ๋ด๋ถ ๋์์ ์์๋ณด์์ต๋๋ค.

์ ๋๋ ์ดํฐ๋ ์ด๋ป๊ฒ ๋์ํ ๊น? ๋ฆฌ์คํธ์์ ์ฐจ์ด๋ถํฐ ์ง์ฐ ํ๊ฐ, `yield`๋ฅผ ํตํ ์คํ ์ํ ์ ์ง ์๋ฆฌ๊น์ง ์ดํด๋ณด๊ณ , ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์ง ์์๋ณธ๋ค.

ํ์ด์ฌ์ import๋ ์ด๋ป๊ฒ ๋์ํ ๊น? ๋ชจ๋์ ๋ก๋์ ์คํ, sys.modules ์บ์ฑ, sys.path ํ์, ํจํค์ง์ __init__.py, ์ด๋ฆ ๋ฐ์ธ๋ฉ๊ณผ __name__์ ์ญํ ๊น์ง ๋ด๋ถ ๋์์ ์ดํด๋ณด์์ต๋๋ค.