๐Ÿคฏ ์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ: ์†๋„์˜ ํ•œ๊ณ„๋ฅผ ๋›ฐ์–ด๋„˜๋Š” ๋†€๋ผ์šด ๊ธฐ์ˆ ๋“ค!








๐Ÿคฏ ์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ: ์†๋„์˜ ํ•œ๊ณ„๋ฅผ ๋›ฐ์–ด๋„˜๋Š” ๋†€๋ผ์šด ๊ธฐ์ˆ ๋“ค!

๐Ÿคฏ ์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ: ์†๋„์˜ ํ•œ๊ณ„๋ฅผ ๋›ฐ์–ด๋„˜๋Š” ๋†€๋ผ์šด ๊ธฐ์ˆ ๋“ค!

A. ์ปดํŒŒ์ผ๋Ÿฌ๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ์ค‘์š”ํ•œ๊ฐ€์š”?

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

B. ์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ข…๋ฅ˜์™€ ํŠน์ง•

์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํฌ๊ฒŒ AOT (Ahead-of-Time) ์ปดํŒŒ์ผ๋Ÿฌ์™€ JIT (Just-in-Time) ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ „์— ์ „์ฒด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‹คํ–‰ ์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐ˜๋ฉด, JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‹คํ–‰ํ•˜์—ฌ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ๊ณผ ์ ์šฉ ๋ถ„์•ผ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • AOT ์ปดํŒŒ์ผ๋Ÿฌ: ๋†’์€ ์‹คํ–‰ ์†๋„, ๋‚ฎ์€ ์˜ค๋ฒ„ํ—ค๋“œ, ํ•˜์ง€๋งŒ ํ”Œ๋žซํผ ์˜์กด์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ. ์˜ˆ: GCC, Clang
  • JIT ์ปดํŒŒ์ผ๋Ÿฌ: ์œ ์—ฐ์„ฑ๊ณผ ์ตœ์ ํ™”์˜ ๊ฐ€๋Šฅ์„ฑ, ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ, ํ•˜์ง€๋งŒ ์‹คํ–‰ ์ดˆ๊ธฐ ์†๋„๊ฐ€ ๋Š๋ฆด ์ˆ˜ ์žˆ์Œ. ์˜ˆ: Java Virtual Machine, .NET runtime

์ตœ๊ทผ์—๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๋„ ๋งŽ์ด ๋“ฑ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” AOT์™€ JIT ์ปดํŒŒ์ผ์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์„ฑ๋Šฅ๊ณผ ์œ ์—ฐ์„ฑ์„ ๋ชจ๋‘ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์‹œ๋„์ž…๋‹ˆ๋‹ค.

C. ์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ ์„ ํƒ ๊ธฐ์ค€

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

D. ์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ตœ์‹  ๋™ํ–ฅ๊ณผ ๋ฏธ๋ž˜ ์ „๋ง

ํ˜„์žฌ ์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ ๋ถ„์•ผ๋Š” ์ธ๊ณต์ง€๋Šฅ, ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ๋”์šฑ ์ •๊ตํ•œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋‹ค์–‘ํ•œ ์•„ํ‚คํ…์ฒ˜(๋ฉ€ํ‹ฐ์ฝ”์–ด, GPU ๋“ฑ)๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ๊ตฌ๊ฐ€ ํ™œ๋ฐœํžˆ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๋ฏธ๋ž˜์—๋Š” ๋”์šฑ ์ง€๋Šฅ์ ์ด๊ณ  ์ž๋™ํ™”๋œ ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ๊ณผ ์„ฑ๋Šฅ ๊ทน๋Œ€ํ™”๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

E. ๊ฒฐ๋ก 

์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ํ•„์ˆ˜์ ์ธ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋ณธ ๊ธ€์—์„œ๋Š” ์„ฑ๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฐœ๋…, ์ข…๋ฅ˜, ์„ ํƒ ๊ธฐ์ค€, ๊ทธ๋ฆฌ๊ณ  ๋ฏธ๋ž˜ ์ „๋ง์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์„ ํƒํ•˜๊ณ  ํ™œ์šฉํ•จ์œผ๋กœ์จ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ฑ๋Šฅ์„ ํš๊ธฐ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



“`

..

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ