์ข ์ข 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๋ ์์ฌํ ์ฌ์ง์์ด ๊ณ์ ์ฑ์ฅํ๋ ์น ๊ฐ๋ฐ ์ํ๊ณ์์ ๋์ ๋๊ณ ์ค์ํ ์ธ์ด๋ก ๋จ์ ๊ฒ์ ๋๋ค.