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

1995๋…„ Brendan Eich๊ฐ€ ์ฒ˜์Œ ๋งŒ๋“  JavaScript๋Š” ์ฒ˜์Œ์—๋Š” Netscape Navigator ์›น ๋ธŒ๋ผ์šฐ์ €์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋Š” ๋„๋ฆฌ ๋ฐ›์•„๋“ค์—ฌ์กŒ๊ณ  ์›น ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚  JavaScript๋Š” World Wide Web์˜ ํ•„์ˆ˜์ ์ธ ๋ถ€๋ถ„์ด๋ฉฐ ๋ชจ๋“  ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

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

์›น ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ์—์„œ JavaScript์˜ ์ค‘์š”์„ฑ์€ Angular, React ๋ฐ Vue.js์™€ ๊ฐ™์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ŸฐํŠธ ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ์˜ ์‚ฌ์šฉ์œผ๋กœ ๋”์šฑ ๊ฐ•์กฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณ ๋„๋กœ ๋Œ€ํ™”ํ˜•์ด๊ณ  ํšจ์œจ์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์‚ฌ์ „ ๊ตฌ์ถ•๋œ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด AppMaster ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ฐ„์†Œํ™”๋œ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด JavaScript์— ํฌ๊ฒŒ ์˜์กดํ•˜๋Š” Vue3 ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ JavaScript๋Š” ์„œ๋ฒ„ ์ธก ๊ฐœ๋ฐœ, ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ, ์‚ฌ๋ฌผ ์ธํ„ฐ๋„ท(IoT) ์žฅ์น˜๊นŒ์ง€ ๊ทธ ๋ฒ”์œ„๋ฅผ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. Node.js๋Š” Chrome์˜ V8 JavaScript ์—”์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ์ž˜ ์•Œ๋ ค์ง„ ์„œ๋ฒ„์ธก JavaScript ๋Ÿฐํƒ€์ž„์œผ๋กœ, ์›น ๊ฐœ๋ฐœ์ž๊ฐ€ JS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. React Native ๋ฐ Apache Cordova์™€ ๊ฐ™์€ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ JavaScript, HTML ๋ฐ CSS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ ๋ช‡ ๋…„ ๋™์•ˆ JavaScript๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์—…๋ฐ์ดํŠธ์™€ ๊ฐœ์„ ์„ ๊ฑฐ์ณ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ฑ„ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ECMA ๊ตญ์ œ ์กฐ์ง์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ECMAScript(ES) ํ‘œ์ค€์˜ ๋„์ž…์€ JavaScript์˜ ๊ธฐ๋Šฅ๊ณผ ๊ตฌ๋ฌธ์„ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ‘œ์ค€์€ ๋‹ค์–‘ํ•œ JavaScript ๊ตฌํ˜„ ์ „๋ฐ˜์— ๊ฑธ์ณ ์ผ๊ด€์„ฑ๊ณผ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด๋ฉฐ ํด๋ž˜์Šค, ๋ชจ๋“ˆ ๋ฐ ํ™”์‚ดํ‘œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋ฐ ๊ฐœ์„  ์‚ฌํ•ญ์˜ ๊พธ์ค€ํ•œ ์ถœ์‹œ๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค.

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

๋”์šฑ์ด TypeScript์™€ ๊ฐ™์€ ์ •์  ์œ ํ˜• ๊ฒ€์‚ฌ ๋„๊ตฌ์˜ ์ถœํ˜„์œผ๋กœ JavaScript์˜ ๊ธฐ๋Šฅ์ด ๋”์šฑ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. TypeScript๋Š” ์„ ํƒ์  ์œ ํ˜• ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์ดˆ๊ธฐ์— ์˜ค๋ฅ˜๋ฅผ ์žก์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ •์ ์œผ๋กœ ์œ ํ˜•์ด ์ง€์ •๋œ JavaScript์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด AppMaster TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ•๋ ฅํ•˜๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์†Œ์Šค ์ฝ”๋“œ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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