๐ŸŒฑ ์ •์  ํƒ€์ดํ•‘ vs ๋™์  ํƒ€์ดํ•‘!

sh_awtylol4ยท2022๋…„ 6์›” 24์ผ
0
post-thumbnail

๐Ÿค” Typing์ด๋ž€?

ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ž๋ฃŒํ˜•: data type)์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์ •์ (static) ๊ณผ ๋™์ (dynamic) ํƒ€์ž…์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฏธ๋ฆฌ ์„ ์–ธํ•œ ํ›„, ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ ์‹œ์— ํƒ€์ž…์„ ์ฒดํฌํ•˜๋Š” C, C++์™€ ๊ฐ™์€ ์–ธ์–ด๋Š” ์ •์  ํƒ€์ž… ์–ธ์–ด๋‹ค. ๋ฐ˜๋ฉด์— ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ์— type check๋ฅผ ํ•˜๋Š” Python์€ ๋™์  ํƒ€์ž… ์–ธ์–ด๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

์ฆ‰, Python์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ทธ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ์•Œ ์ˆ˜ ์—†์œผ๋ฉฐ, ์‹คํ–‰ ์‹œ์— ์ž์œ ๋กญ๊ฒŒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํŒŒ์ด์ฌ์˜ ์žฅ์  ์ค‘ ํ•˜๋‚˜์ธ "์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ• ๋‹น"์€ ๋™์  ๋ฐ์ดํ„ฐ ํƒ€์ดํ•‘ ์–ธ์–ด์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

x = 10
type(x)
<class 'int'>

---------------------

x = '123'
type(x)
<class 'str'>

---------------------

y = int(x)
type(y)
<class 'int'>

๐Ÿฅ‡ ์ •์  ํƒ€์ดํ•‘ VS ๋™์  ํƒ€์ดํ•‘

๋™์  ํƒ€์ดํ•‘ (Dynamic typing)

  • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.
  • ์ฝ”๋“œ์˜ ๋‚ด์šฉ, ๋กœ์ง์„ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ๋‹ค.
  • ์ฒ˜์Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•™์Šตํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์ ํ•ฉํ•œ ์–ธ์–ด์ด๋‹ค.
  • ์†๋„๋ฅผ ์ค‘์š”์‹œํ•˜๋Š” ์ž‘์—…์—์„  ์‚ฌ์šฉํ•˜๊ธฐ ๋ถ€์ ํ•ฉํ•˜์ง€๋งŒ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ธฐ์—” ์ ํ•ฉํ•˜๋‹ค.
  • Python', php, Ruby'

์ •์  ํƒ€์ดํ•‘ (Static typing)

  • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹œ๊ฐ„์ด ๋Š๋ฆฌ๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
  • ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ๋‹ค.
  • ์ฒ˜์Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ•™์Šตํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค.
  • ํฌ๊ณ  ๋ณต์žกํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ํ•จ๊ป˜ ์ฐธ์—ฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•˜๋‹ค.
  • C, C++, Java
profile
ํฌ๊ธฐํ•˜๋Š” ๊ทธ ์ˆœ๊ฐ„์ด ๋ฐ”๋กœ ์‹œํ•ฉ์ข…๋ฃŒ์˜ˆ์š”...

0๊ฐœ์˜ ๋Œ“๊ธ€