๐ [Python] Python ํน์ง๋ค์ ๋ํด ์ ๋ฆฌํด๋ณผ๊น
1. Python์ ์ฅ์ ?
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- ๊ณ ๊ธ ์ธ์ด ์ด๋ฉด์
๋์ ์ธ์ด
- ์์ฒญ๋ ์์
๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์จ๋ํํฐ ๋ชจ๋์ ์กด์ฌ
- ๋ชจ๋ ์ค์์ฒด์ ์์ ์ฌ์ฉ ๊ฐ๋ฅํจ
2. Python์์ sort()์ sorted() ๋ฉ์๋๊ฐ ์๋ค. ์ด๊ฑด ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ๋์ํ ๊น?
Tim Sort
- ์ต์ ์ ์ํฉ์ผ ๋ O(nlogn)์ธ ๋งค์ฐ ๋น ๋ฅด๋ฉฐ ์์ ์ ์ธ ์๊ณ ๋ฆฌ์ฆ
ํ์ด๋ธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
์ด๋ผ๊ณ ํจ- Merge Sort & Insert Sort ์์ ํ์๋ ์๊ณ ๋ฆฌ์ฆ
3. list VS tuple
list
- ๊ฐ๋ณ ๊ฐ์ฒด๋ฅผ ๋ค๋ฃธ
- ํํ๋ณด๋ค ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ชจํจ
- ์ฝ์ ๊ณผ ์ญ์ ๋ฉด์์๋ ํํ๋ณด๋ค ์ ๋ฆฌํจ
- ์ดํฐ๋ ์ด์
(๋ฐ๋ณต)์ ์ฌ์ฉํด ์๊ฐ์ด ๋ ๊ฑธ๋ฆผ
tuple
- ๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ๋ค๋ฃธ
- ๋ฆฌ์คํธ๋ณด๋ค ๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ชจํจ
- ์์์ ์ ๊ทผํ๋ ์ธก๋ฉด์์๋ ๋ฆฌ์คํธ๋ณด๋ค ์ ๋ฆฌํจ
- ์ดํฐ๋ ์ด์ ์๋๊ฐ ๋นจ๋ผ ์๊ฐ ์๋ชจ๊ฐ ์ ์
4. ํ์ด์ฌ์์๋ ์ด๋ป๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ ๊น?
ํ์ด์ฌ์๋ ๊ฐ์ฒด ํน์ ์๋ฃ๊ตฌ์กฐ๋ง๋ค ์จ๊ฒจ์ง ๊ฐ์ธ ํ
๊ณต๊ฐ์ด ์กด์ฌํ๋ค.
์ด ๊ณต๊ฐ์ ๊ฐ๋ฐ์์กฐ์ฐจ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ธํฐํ๋ฆฌํฐ์์ ์ง์ ๊ด๋ฆฌํ๋ค.
๋ํ, ๊ฐ์ฒด์ ๋ํ ํ ๊ณต๊ฐ์ ํ ๋นํ๋ ๋ถ๋ถ์ Python Memory Manager
์ ์ํด ์ํ๋๋ค.
Java
์ ๋น์ทํ๊ฒ ์ฌ์ฉ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌํ์ฉํ๊ณ , ํด์ ํ์ฌ ํ ๊ณต๊ฐ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ
๊ฐ ์กด์ฌํ๋ค.
5. ํ์ด์ฌ์ ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ธ๊ฐ?
์ปดํ์ผ ์ธ์ด์ด๋ฉด์ ์ธํฐํ๋ฆฌํฐ ์ธ์ด์!
๋ถ๋ถ์ ์ปดํ์ผ๊ณผ ๋ถ๋ถ์ ์ธํฐํ๋ฆฌํฐ ๋์์ ์ํํ๋ค.
์ฐ์ .py
ํ์ผ์ ๋ฐ์ดํธ์ฝ๋
๋ก ์ปดํ์ผํ๊ณ , ์ปดํ์ผ๋ ๋ฐ์ดํธ์ฝ๋๊ฐ ์ธํฐํ๋ฆฌํฐ์ ์ํด ์คํ๋๋ ์์๋ฅผ ๊ฐ์ง๋ค.
์ฆ, ์ฒ์์ ์ปดํ์ผ ๋์ค์ ์ธํฐํ๋ฆฌํฐ
ํ์ง๋ง, ์ฃผ๋ก ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ผ๊ณ ํ๋ค๊ณ ํ๋ค.
6. ๋ฐ์ฝ๋ ์ดํฐ๊ฐ ๋ญ๋?
@decorator
์ฒ๋ผ ์๊ธด ์ฝ๋๋ฅผ ๋ณธ ์ ์ด ์๋ค.
์ด๊ฑด ๋ฐ์ฝ๋ ์ดํฐ
๋ผ๊ณ ํ๋ค.
ํจ์๋ฅผ ๊ฐ์ธ ์๊ตฌ์ ์ผ๋ก ์์ ํ์ง ์๊ณ , ํจ์์ ํ์๋ฅผ ํ์ฅํ ์ ์๋ ํ์ด์ฌ์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด๋ค.
7. set() VS dict()
set()
- ์์๊ฐ ์ ์๋์ง ์์ ๋ฐ์ดํฐ โํ์ โ์ ์งํฉ์
- ๊ฐ๋ณ ๊ฐ์ฒด๋ฅผ ๋ค๋ฃธ
- ์์์ ์ค๋ณต์ ํ์ฉํ์ง ์์ -> ์ค๋ณต ์ ๊ฑฐ
dict()
- ์์๊ฐ ์ ์๋์ง ์์ ๋ฐ์ดํฐ โ๊ฐโ๋ค์ ์งํฉ
map
์ฒ๋ผ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํจ- ์์์ ์ค๋ณต์ ํ์ฉํจ
- {key:value} ํ์์ด๊ณ , key๋ง ๋จ๋ ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์
8. Pickling & Unpickling
Pickling
๋ชจ๋ ํ์ด์ฌ ๊ฐ์ฒด๋ฅผ ๋ฐ์ ๋ฌธ์์ด๋ก ํ๋ณํ์ ์งํํ ํ, dump()
๋ก ๋ฌธ์์ด์ ํ์ผ
๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋งํ๋ค.
Unpickling
๋ฌธ์์ด๋ก ํ๋ณํํ๋ ๊ณผ์ ์์ ์ ์ฅ๋ ์๋ณธ ํ์ด์ฌ ๊ฐ์ฒด
๋ฅผ ์กฐํํ๋ ๊ณผ์ ์ ๋งํจ.
9. ๋๋คํจ์(lambda)?
lambda function์ ์ต๋ช
ํจ์
๋ผ๊ณ ๋ ํจ.
๋งค๊ฐ๋ณ์๋ก ๋ชจ๋ ์ซ์๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ์ค์ง ํ๋์ ๊ตฌ๋ฌธ
๋ง ๊ฐ๋ฅํ๋ค.
a = lambda x, y : x * y
print(a(3, 7)) # 21 ์ถ๋ ฅ
10. .py VS .pyc ?
.py
.py
ํ์ผ์ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ํ์ด์ฌ ํ์ผ์ ๋งํ๋ค.
.pyc
.py
ํ์ผ์ ์ปดํ์ผ๋ ๋ฒ์ ์.
ํ๋ซํผ์ ๋
๋ฆฝ์ ์ธ ๋ฐ์ดํธ์ฝ๋
๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์, .pyc๋ฅผ ์ง์ํ๋ ํ๋ซํผ์ด๋ฉด ์ด๋ ํ๋ซํผ์ด๋ ์คํํ ์ ์๋ค.
python์ ์ฑ๋ฅ ํฅ์์ ์ํด ์๋์ผ๋ก ์์ฑ๋๋ฉฐ, PVM(Python Virtual Machine)
์ ์ํด ์คํ๋๋ค!
์ง์๋ ์๊ด ์์ง๋ง, ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์๋โฆ
์ฐธ๊ณ ์๋ฃ
๊ตฌ๊ธ๋งํ๋ฉด์ ์์ฑํ ๊ฐ๋ ๋ค์ด๋ผ ๋ํํ ์ข ์ด๋ก ์์โฆ
๋๊ธ๋จ๊ธฐ๊ธฐ