๐ŸŒ Compile with Transpile, Build and Runtime

Boriยท2023๋…„ 4์›” 11์ผ
0

์–ด์จŒ๋“  ๊ณต๋ถ€

๋ชฉ๋ก ๋ณด๊ธฐ
15/41

Compile

  • ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๋Š” ์–ธ์–ด(์†Œ์Šค์ฝ”๋“œ)๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด(๊ธฐ๊ณ„์–ด)๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • ์ปดํ“จํ„ฐ์˜ ๋ชจ๋“  ๋ช…๋ น์€ CPU๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ  CPU๋Š” 0๊ณผ 1๋ฐ–์— ๋ชจ๋ฅด๋Š” ๋ฐ”๋ณด์ž…๋‹ˆ๋‹ค.
    • CPU๋Š” ๋ชจ๋“  ๋ช…๋ น์„ 0๊ณผ 1๋กœ๋งŒ ์ดํ•ดํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • 0๊ณผ 1๋กœ๋งŒ ์ž‘์„ฑ๋œ ์–ธ์–ด๋ฅผ ๊ธฐ๊ณ„์–ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Transpile

  • ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋น„์Šทํ•œ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ๊ฐ€์ง„ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • Compiler๊ณผ Transpiler์˜ ์ฐจ์ด์ 
    • Transpiler : Compiler์˜ ์ผ์ข…์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ฐ„์— ๋ณ€ํ™˜์„ ํ•  ๋•Œ ๊ฑฐ์˜ ๋™๋“ฑํ•œ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
      • ES5 ์ฝ”๋“œ โ‡’ ES6 ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜
      • c++ โ‡’ c๋กœ ๋ณ€ํ™˜
    • Compiler : ๋” ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋” ์ €๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
      • Java โ‡’ bytecode ๋กœ ๋ณ€ํ™˜
      • c โ‡’ assembly ๋กœ ๋ณ€ํ™˜

Compile time

  • ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ž‘์„ฑ๋œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ปดํŒŒ์ผ์„ ๊ฑฐ์น˜๋ฉด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ์ปดํŒŒ์ผ ๊ณผ์ •์„ ์ปดํŒŒ์ผํƒ€์ž„(compile time)์ด๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

Build

  • ์†Œ์Šค์ฝ”๋“œ ํŒŒ์ผ์„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์‚ฐ์ถœ๋ฌผ๋กœ ๋งŒ๋“œ๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๋นŒ๋“œ ๋‹จ๊ณ„์— ์ปดํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ์ปดํŒŒ์ผ์€ ๋นŒ๋“œ์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋นŒ๋“œ ํˆด(build tool)
    • ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • ๋นŒ๋“œ ํˆด ๊ธฐ๋Šฅ : ์ „์ฒ˜๋ฆฌ(preprocessing), ์ปดํŒŒ์ผ(compile), ํŒจํ‚ค์ง•(packaging), ํ…Œ์ŠคํŒ…(testing), ๋ฐฐํฌ(distribution)

Runtime

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

์ฐธ๊ณ 

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