Transpiler & Bundler

Transpiler

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ(๋‹ค์–‘ํ•œ ๋ธŒ๋ผ์šฐ์ €, Node.js)์—์„œ ์‹คํ–‰๋˜๋Š”๋ฐ ์‹คํ–‰๋˜๋Š” ๊ณณ๋งˆ๋‹ค ์ธ์‹ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

  • ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค.

  • ์ด๋Ÿฐ ๋ณ€ํ™˜ ๊ณผ์ •์„ Transpile, ๋˜๋Š” Compile์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ

  • Babel -> ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ

  • Typescript -> ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํŠธ๋žœ์ŠคํŒŒ์ผํ•˜๋Š” ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ

  • esbuild -> Go ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋น ๋ฅธ ์†๋„์™€ ๋ฒˆ๋“ค๋ง๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ์ฐจ์„ธ๋ฐ ๋Œ€ํ‘œ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ

  • SWC -> Rust ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋น ๋ฅธ ์†๋„์™€ ์‰ฌ์šด ์‚ฌ์šฉ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์ธ๊ธฐ์žˆ๋Š” ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ

Bundler

  • ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ์‹คํ–‰ ํ™˜๊ฒฝ๋ณด๋‹ค๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ๋ชจ๋“ˆ์„ ๋‚˜๋ˆ„๊ณ  ์„ค๊ณ„ํ•œ๋‹ค.

  • ์ด๋ ‡๊ฒŒ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ตœ์ ํ™” ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•จ๊ป˜ ๋ฌถ๋Š” ์ž‘์—…์„ ๋ฒˆ๋“ค๋ง์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ์ตœ์ข…์ ์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ํฌ๊ธฐ์˜ ํŒŒ์ผ๋“ค(ํ•˜๋‚˜ ํ˜น์€ ์—ฌ๋Ÿฌ๊ฐœ)๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ  ์ด๊ฒƒ์„ ์‹คํ–‰ํ•œ๋‹ค

๋Œ€ํ‘œ์ ์ธ ๋ฒˆ๋“ค๋Ÿฌ

  • Webpack -> ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ๋Œ€ํ‘œ์ ์ธ ๋ฒˆ๋“ค๋Ÿฌ

  • Rollup -> es6 ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒˆ๋“ค๋ง์— ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๋ฒˆ๋“ค๋Ÿฌ

  • Vite -> ๋น ๋ฅธ ์†๋„์™€ ์‰ฌ์šด ์‚ฌ์šฉ๋ฒ•์œผ๋กœ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ๋ฒˆ๋“ค๋Ÿฌ

  • esbuild -> Go ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋น ๋ฅธ ์†๋„์™€ ํŠธ๋žœ์ŠคํŒŒ์ผ๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ์ฐจ์„ธ๋ฐ ๋Œ€ํ‘œ ๋ฒˆ๋“ค๋Ÿฌ

Last updated