1 ๋ถ„ ์†Œ์š”

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)์— ์˜ํ•ด ์‹คํ–‰๋œ๋‹ค!

์ง€์›Œ๋„ ์ƒ๊ด€ ์—†์ง€๋งŒ, ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„โ€ฆ

์ฐธ๊ณ ์ž๋ฃŒ

๊ตฌ๊ธ€๋งํ•˜๋ฉด์„œ ์ž‘์„ฑํ•œ ๊ฐœ๋…๋“ค์ด๋ผ ๋‚˜ํ•œํ…Œ ์ข…์ด๋กœ ์žˆ์Œโ€ฆ

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ