๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT

Babel: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ์˜ ์„ธ๊ณ„

by ๐Ÿ’ฒ๐ŸŽตโœ–๏ธโœ”๏ธโ˜ผ 2024. 2. 21.
728x90

Babel: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ์˜ ์„ธ๊ณ„

1. ์†Œ๊ฐœ

1.1 Babel์ด๋ž€?

Babel์€ ECMAScript 2015+ ๋ฒ„์ „์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €๋‚˜ ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

1.2 ์œ ๋ž˜

Babel์€ ์ด์ „์— "6to5"๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„ ๋ณ€๊ฒฝ ์ดํ›„, ๋” ๋งŽ์€ ๊ธฐ๋Šฅ๊ณผ ์ƒํƒœ๊ณ„๋ฅผ ํฌํ•จํ•˜๊ฒŒ ๋˜๋ฉด์„œ "Babel"๋กœ ์žฌํƒ„์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2. Babel์˜ ํ™œ์šฉ

2.1 ์‚ฌ์šฉ ์šฉ๋„

Babel์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค:

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

3. Babel์˜ ์žฅ๋‹จ์ 

3.1 ์žฅ์ 

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

3.2 ๋‹จ์ 

  • ๋ฒˆ๋“ค ํฌ๊ธฐ ์ฆ๊ฐ€: ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋ณ€ํ™˜ํ•˜๋ฉด์„œ ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋นŒ๋“œ ์‹œ๊ฐ„ ์ฆ๊ฐ€: ์ฝ”๋“œ ๋ณ€ํ™˜์ด ์ถ”๊ฐ€๋˜๋ฉด ๋นŒ๋“œ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.3 ํ•œ๊ณ„

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

4. ์•ž์œผ๋กœ์˜ ๋ฐœ์ „๊ณผ ๋Œ€์ฒด ๊ธฐ์ˆ 

4.1 ๋ฐœ์ „ ๊ฐ€๋Šฅ์„ฑ

Babel์€ ์—ฌ์ „ํžˆ ํ™œ๋ฐœํ•œ ๊ฐœ๋ฐœ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ECMAScript์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ์„ฑ๋Šฅ, ํšจ์œจ์„ฑ, ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ฐœ์ „์ด ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

4.2 ๋Œ€์ฒด ๊ธฐ์ˆ 

์ƒˆ๋กœ์šด ๊ธฐ์ˆ ๋“ค์ด ๊ณ„์†ํ•ด์„œ ๋“ฑ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. SWC(Super-fast Web Compiler)์™€ ๊ฐ™์€ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ๋Š” Babel์„ ๋Œ€์ฒดํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฉฐ, ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ ๋ณ€ํ™˜์„ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.

5. ๊ฒฐ๋ก 

Babel์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ƒํƒœ๊ณ„์—์„œ ํ˜„์กดํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ ์ค‘ ํ•˜๋‚˜๋กœ ํ‰๊ฐ€๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์˜ ๋„์ž…๊ณผ ํ™˜๊ฒฝ์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ, ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์˜ ํŠน์„ฑ๊ณผ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๊ณ  ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€