์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฌด์์ธ๊ฐ
#
๊ฐ์ถ๋ฆฐ ์ญ์ฌ#
์๋ฐ์คํฌ๋ฆฝํธ์ ํ์์น์ด ์ธ๊ธฐ๋ฅผ ์ป์ผ๋ฉด์ ํด๋ผ์ด์ธํธ ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ํ ์๊ตฌ๊ฐ ์ ์ ์ปค์ก๋ค. ์น ํ์ด์ง๊ฐ ์ปค์ง๊ณ ๋ณต์กํด์ง๋ ์ค์๋ ์ ํ์ ์ ์ด์ฉํ 28.8kbps ๋ชจ๋์ด ๋๋ฆฌ ์ฐ์๊ธฐ ๋๋ฌธ์๋จ์ํ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํด ๋งค๋ฒ ์๋ฒ๊น์ง ์๋ณตํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ๋ค.
๋ท์ค์ผ์ดํ๊ฐ์ด๋ฌํ ํด๋ผ์ด์ธํธ ์คํฌ๋ฆฝํธ ์ธ์ด์ ํ์์ฑ์ ๋๊ผ๊ณ ๋ท์ค์ผ์ดํ์์ ์ผํ๊ณ ์๋ Brendan Eich์ ์ํด Mocha๋ผ๋ ์ด๋ฆ์ผ๋ก ์ต์ด์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ํ์ํ๋ค. Mocha๋ 1995๋ 3์ ๋ท์ค์ผ์ดํ์ ์น ๋ธ๋ผ์ฐ์ ์ธ Netscape Navigator 2์ ํ์ฌ๋์๊ณ ๊ทธ ํด 9์ LiveScript๋ผ๋ ์ด๋ฆ์ ๊ฑฐ์ณ 12์์์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ต์ข ๋ช ๋ช ๋์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ผ๋ ์ด๋ฆ์ ๋น์ ์๋ฐ๊ฐ ์ป๊ณ ์๋ ์ธ๊ธฐ์ ํธ์นํ๊ธฐ ์ํจ์ด์๊ณ , ์๋ฐ์ ํน๋ณํ ์ฐ๊ด์ฑ์ด ์๋ ๊ฒ์ ์๋๋ค.
๋ท์ค์ผ์ดํ์ ๋์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋์ฑ๊ณต์ ๊ฑฐ๋๋ฉด์ ๋ท์ค์ผ์ดํ๋ ์น์ ์ ๋ํ๋ํ์ฌ๋ก ์๋ฆฌ๋งค๊นํ ์ ์์๋ค. ํ์ง๋ง ๋ง์ดํฌ๋ก์ํํธ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ๋ฒ์ ์ธ JScript๋ฅผ ํ์ฌํ์ฌ Internet Explorer 3๋ฅผ ์ถ์ํ๋ฉด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ์คํ๋์ง ๋ชปํ๋ค๋ ์ด์๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ๋ค.
์ด์ 1996๋ 11์, ๋ท์ค์ผ์ดํ๋ ๋น์๋ฆฌ ํ์คํ ๊ธฐ๊ตฌ์ธ ECMA ์ธํฐ๋ค์ ๋(European Computer Manufacturers Association)์ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์คํ๋ฅผ ์์ฒญํ์๋ค. ECMA๋ ๋ท์ค์ผ์ดํ, ๋ง์ดํฌ๋ก์ํํธ, ์ ๋ฑ๋ฑ ์ด ์คํฌ๋ฆฝํธ์ ๋ฏธ๋ ์ ํฅ๋ฏธ๋ฅผ ๊ฐ์ง ํ์ฌ๋ค์์ ํ๋ก๊ทธ๋๋จธ๋ค์ ํฌ์ ํ์ฌ ๊ธฐ์ ์์ํ TC39๋ฅผ ๊ตฌ์ฑํ๋ค. TC39๊ฐ ๋ช ๋ฌ์ ๊ฑธ์ณ ์๋ฐ์คํฌ๋ฆฝํธ 1.1 ์ ์์งํ ๋์ 1997๋ 7์, ECMA-262๋ผ ๋ถ๋ฆฌ๋ ํ์คํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ดํ, ECMAScript 1์ ๋ช ์ธ๋ฅผ ์์ฑํ์๋ค. ๋น์ Sun ์ฌ๊ฐ 'Java'๋ฅผ ์ํ ๋ฑ๋กํด๋จ๊ธฐ ๋๋ฌธ์ 'JavaScript'๋ผ๊ณ ๋ช ๋ช ํ ์ ์์ด ํ์ค ์ธ์ด์ ์ด๋ฆ์ ECMAScript๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋์๊ณ ๋์ธ์ ์ผ๋ก ์๋ฆฌ๊ธฐ ์ํด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ผ๊ณ ๋ถ๋ ๋ค.
#
์๋ฐ์คํฌ๋ฆฝํธ ๊ตฌํ์๋ฐ์คํฌ๋ฆฝํธ์ ECMAScript๋ฅผ ๋น์ทํ ๋ง๋ก ์ฌ๊ธฐ๋ ์ฌ๋๋ค์ด ๋ง์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ๋ ECMAScript์ ์ ์๋ ๊ฒ ๋ณด๋ค ๋ง์ ๋ด์ฉ์ ๋ด๊ณ ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ตฌ์ฑ
์ฝ์ด(ECMAScript)
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM)
๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ(BOM)
#
ECMAScriptECMAScript๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ค ๋ช ์ธ์ธ ECMA-262๋ฅผ ๋งํ๋ ๊ฒ์ผ๋ก ๋จ์ํ ๋ช ์ธ์์์ค๋ช ํ๋ ๋ถ๋ถ๋ค์ ๊ตฌํํ ์ธ์ด๋ฅผ ๋ถ๋ฅด๋ ๋ง์ด๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ์ , ๊ฐ, ๊ฐ์ฒด์ ํ๋กํผํฐ, ํจ์, ๋นํธ์ธ ๊ฐ์ฒด ๋ฑ ํต์ฌ ๋ฌธ๋ฒ(core syntax)์ ๊ท์ ํ๋ฉฐ ๊ฐ ๋ธ๋ผ์ฐ์ ์ ์กฐ์ฌ๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๊ตฌํํ ๋ ์ค์ํด์ผ ํ ํ์ค์ด ๋๋ค.
ECMAScript๋ ์น ๋ธ๋ผ์ฐ์ ์ ์ข ์๋๋ ๊ฒ์ด ์๋๊ณ ์น ๋ธ๋ผ์ฐ์ ๋ ECMAScript๋ฅผ ๊ตฌํํ๋ 'ํธ์คํธ ํ๊ฒฝ'์ผ ๋ฟ์ด๋ค. (ํธ์คํธ ํ๊ฒฝ์๋ ์น ๋ธ๋ผ์ฐ์ , NodeJS, ์ด๋๋น ํ๋์๋ฑ์ด ์๋ค.)
#
ECMAScript 'ํ'ECMAScript์ ์ฌ๋ฌ ๋ฒ์ ์ 'ํ'์ด๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ ์ด๋ ECMA-262์ ๊ฐ๋ณ ๊ตฌํ์ ๊ฐ๋ฆฌํจ๋ค. ์ดํ์ ๋ท์ค์ผ์ดํ์ ์๋ฐ์คํฌ๋ฆฝํธ 1.1๊ณผ ๊ฑฐ์ ๊ฐ์ง๋ง ๋ธ๋ผ์ฐ์ ์ข ์์ ์ธ ์ฝ๋๋ฅผ์ญ์ ํ๊ณ ์ธ์ธํ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๋ค. ECMA-262 2ํ์ ๊ต์ ๋ณธ์ผ๋ก์ ๊ตญ์ ํ์ค์ธ ISO/IEC-16262์ ์์ ํ ์ผ์นํ๋๋ก ์ ๋ฐ์ดํธํ์ ๋ฟ์ด๋ค. 3ํ์์๋ ๋ฌธ์์ด์ ๋ค๋ฃจ๋๋ฐฉ๋ฒ, ์๋ฌ ์ ์, ์ซ์ํ ์ถ๋ ฅ์ ์ ๋ฐ์ดํธํ๊ณ , ์ ๊ท ํํ์๊ณผ ์๋ก์ด ์ ์ด๋ฌธ, try-catch๋ฅผ ์ด์ฉํ ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ง์ํ๊ธฐ ์์ํ๋ค. ์ด ๋๋ถํฐ ECMAScript๊ฐ ์ง์ ํํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ฐ์ฃผ๋๊ธฐ ์์ํ๋ค.
4ํ์ ์ธ์ด๋ฅผ ์์ ํ ์๋ก ๋ฐ๊พธ์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์น์์ ์ธ๊ธฐ๋ฅผ ์ป์ ECMAScript ๋ฅผ ๊ฐ์ ํด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ถ๋ถ์ ์ถฉ์กฑํ๋ ค ํ๋ค. TC39 ๋ด๋ถ์์ 4ํ์ด ๋๋ฌด ๊ธ๊ฒฉํ๋์ฝ์ด๋ผ๊ณ ์๊ฐํ ์ฌ๋๋ค์ด ECMAScript 3ํ์ ์ผ๋ถ ๊ฐ์ ํ์ฌ ECMAScript 3.1 ์ด๋ผ ๋ถ๋ฆฌ๋ ๋ณ๋์ ๋ช ์ธ๋ก ์ ์ํ๋ค. ๊ฒฐ๊ตญ TC39์์ ECMAScript 3.1์ด ์ฑํ๋์ด 4ํ์ ๊ณต์์ ์ผ๋ก ๋ฐํ๋์ง ์์ ์ํ์์ ํ๊ธฐ๋์๋ค. ECMAScript 3.1์ด 5ํ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก 2009๋ 12์ ๊ณต์ ๋ฐํ๋์๋ค. ์ด ๋ JSON ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๊ณ ์ง๋ ฌํํ๋ ๋ค์ดํฐ๋ธ JSON ๊ฐ์ฒด, ์์๊ณผ ๊ณ ๊ธ ํ๋กํผํฐ ์ ์์ ์ฐ์ด๋ ๋ฉ์๋, ECMAScript ์์ง์ด ์ฝ๋๋ฅผํด์ํ๊ณ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ผ๋ถ ํ์ฅํ ์คํธ๋ฆญํธ ๋ชจ๋๊ฐ ๋์ ๋์๋ค.
๋ฒ์ | ์ถ์๋ ๋ | ํน์ง |
---|---|---|
ES1 | 1997 | ์ดํ |
ES2 | 1998 | ISO/IEC 16262 ๊ตญ์ ํ์ค๊ณผ ๋์ผํ ๊ท๊ฒฉ์ ์ ์ฉ |
ES3 | 1999 | ์ ๊ท ํํ์, tryโฆcatch ์์ธ ์ฒ๋ฆฌ |
ES5 | 2009 | HTML5์ ํจ๊ป ์ถํํ ํ์ค์. JSON, strict mode, ์ ๊ทผ์ ํ๋กํผํฐ(getter, setter), ํฅ์๋ ๋ฐฐ์ด ์กฐ์ ๊ธฐ๋ฅ(forEach, map, filter, reduce, some, every) |
ES6 (ECMAScript 2015) | 2015 | let, const, class, ํ์ดํ ํจ์, ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด, ๋์คํธ๋ญ์ฒ๋ง ํ ๋น, spread ๋ฌธ๋ฒ, rest ํ๋ผ๋ฏธํฐ, Symbol, Promise, Map/Set, iterator/generator, module import/export |
ES7 (ECMAScript 2016) | 2016 | ์ง์(**) ์ฐ์ฐ์, Array.prototype.includes, String.prototype.includes |
ES8 (ECMAScript 2017) | 2017 | async/await, Object ์ ์ ๋ฉ์๋(Object.values, Object.entries, Object.getOwnPropertyDescriptors) |
ES9 (ECMAScript 2018) | 2018 | Object Rest/Spread ํ๋กํผํฐ |
#
์น ๋ธ๋ผ์ฐ์ ์ ECMAScript ์ง์๋ค์์ ์ฃผ์์์ ES6์ ์ง์ ํํฉ์ ๋ณผ ์ ์๋ค.
ECMAScript 6 compatibility table
IE๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ 96~99% ์ ๋๋ก ES6๋ฅผ ์ง์ํ๊ณ ์๋ค. ํ์ง๋ง IE๋ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๊ฐ ES6๋ฅผ ์ง์ํ์ง ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ค์ ๊ณ ๋ คํ๋ค๋ฉด babel๊ณผ ๊ฐ์ ํธ๋์คํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ES6๋ก ๊ตฌํํ ์์ค์ฝ๋๋ฅผ ES5 ์ดํ์ ๋ฒ์ ์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ ํ์๊ฐ ์๋ค. ๋ํ ES6์์ ๋์ ๋ ๋ชจ๋ import/export๋ ์์ง ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ๊ฐ์ง์ํ์ง ์๊ณ ์์ด์ ํ๋ก์ ํธ์์ ๋ชจ๋์ ๋์ ํ๋ ค๋ฉด Webpack๊ณผ ๊ฐ์ ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ฅผ์ฌ์ฉํด์ผ ํ๋ค.
#
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(Document Object Model)์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก์์ ์ฝ์ด๊ฐ ๋๋ ECMAScript์ ๋ํด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ณ๋ ์ง์ํ๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ Web API, ์ฆ DOM, BOM, Canvas, XMLHttpRequest, Fetch, requestAnimationFrame, SVG, Web Storage, Web Component, Web worker ๋ฑ์๋ชจ๋ ํฌํจํ๋ ๊ฐ๋ ์ด๋ค.
์ด ์ค ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM)์ XML์ด๋ HTML ๋ฌธ์์ ์ ๊ทผํ๊ธฐ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค(API)์ด๋ค. ์ด ๊ฐ์ฒด ๋ชจ๋ธ์ ๋ฌธ์ ๋ด์ ๋ชจ๋ ์์๋ฅผ ์ ์ํ๊ณ , ๊ฐ๊ฐ์ ์์์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. DOM์ ์ ์ฒด ํ์ด์ง๋ฅผ ๋ ธ๋์ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋ณํํ๋ค.
DOM์ ๋ฌธ์๋ฅผ ํํํ๋ ํธ๋ฆฌ๋ฅผ ์์ฑํ๊ณ , ๊ฐ๋ฐ์๋ DOM API๋ฅผ ํตํด ๋ฌธ์์ ์ฝํ ์ธ ์๊ตฌ์กฐ๋ฅผ ์์ ๋กญ๊ฒ ์์ ํ ์ ์๋ค.
#
DOM์ด ํ์ํ ์ด์IE 4์ ๋ท์ค์ผ์ดํ ๋ด๋น๊ฒ์ดํฐ 4๊ฐ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋์ HTML(DHTML)์ ์ง์ํ๋ฉด์ ์น ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ง ์๊ณ ๋ ์ฝํ ์ธ ์ ๋ชจ์์ ๋ฐ๊ฟ ์ ์๊ฒ ๋์์ง๋ง, ๋ ๋ธ๋ผ์ฐ์ ์ DHTML์ด ์์ ํ ๋ฌ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ HTML์ ๋จ ํ๋๋ง ๋ง๋ค๋ฉด ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์์ฌ์ฉํ ์ ์๋ ์๋๋ ๋๋ฌ๋ค.
ํ๋ซํผ ๋ ๋ฆฝ์ ์ธ ์น์ ๋ณธ์ฑ์ ์ ์งํ๊ธฐ ์ํด World Wide Web Consortium์์ DOM ํ์ค์ ๋ง๋ค๊ธฐ ์์ํ๋ค.
#
๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ(Browser Object Model)๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ์ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ์ ๊ทผํ๊ณ ์กฐ์ํ ์ ์๊ฒ ํ๋ ์ธํฐํ์ด์ค ์ด๋ค. ๋ธ๋ผ์ฐ์ ์ ํ์๋๋ ๋ฌธ์(Document)์๋ ๋ณ๊ฐ์ ์ปจํ ์คํธ์์ ๋ธ๋ผ์ฐ์ ์ ์ํธ์์ฉํ ์ ์๋ค. BOM์ ์ฃผ๊ดํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ค์ด ์กด์ฌํ์ง ์๋ค๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ, HTML5๊ฐ ๋ฑ์ฅํ๋ฉด์ BOM์ ๊ณต์ ๋ช ์ธ์ ์ผ๋ถ๋ก ํ์คํํ๊ณ ์๊ณ , ์ด๋ฌํ ํผ๋์ค๋ฌ์์ดํฌ๊ฒ ๊ฐ์ ๋์๋ค.
BOM์ ์ผ์ฐจ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ฐฝ๊ณผ ํ๋ ์์ ๋ค๋ฃจ๋ ์ธํฐํ์ด์ค์ด๊ธด ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก๋ ๋ธ๋ผ์ฐ์ ์ ๊ณ ์ ํ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ฅ๋ BOM์ ์ผ๋ถ๋ก ๊ฐ์ฃผํ๋ค.
๋ธ๋ผ์ฐ์ ์ฐฝ์ ์๋ก ๋์
๋ธ๋ผ์ฐ์ ์ฐฝ์ ์์ง์ด๊ฑฐ๋ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ณ ๋ซ์
๋ธ๋ผ์ฐ์ ์ ์์ธ ์ ๋ณด๋ฅผ ๋ฐํํ๋ navigator ๊ฐ์ฒด
๋ถ๋ฌ์จ ํ์ด์ง์ ์์ธ ์ ๋ณด๋ฅผ ๋ฐํํ๋ location ๊ฐ์ฒด
์ฌ์ฉ์์ ํ๋ฉด ํด์๋์ ๋ํด ์์ธ ์ ๋ณด๋ฅผ ๋ฐํํ๋ screen ๊ฐ์ฒด
์ฟ ํค ์ง์
XMLHttpRequest์ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ์ ActiveXObject ๊ฐ์ ์ปค์คํ ๊ฐ์ฒด
์ค๋ซ๋์ ํ์ค์ด ์์๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ ์์ ์ธ BOM์ ๊ตฌํํ๋ค. window ๊ฐ์ฒด๋ navigator ๊ฐ์ฒด ๊ฐ์ ์ฌ์ค์์ ํ์ค์ด ์กด์ฌํ๊ธด ํ์ง๋ง ๊ฐ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ค์ ํฌํจํ ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ์ ๋ง๋ค ๋ค๋ฅด๊ฒ ์ ์ํ๋ค. HTML5๊ฐ ๋ฑ์ฅํ๋ฉด์ BOM ๊ตฌํ์ ์์ธํ ๋ช ์ธํ๊ณ ์์ผ๋ฏ๋ก ์์ผ๋ก๋ ํธํ์ฑ์ด ํจ์ฌ ์ข์์ง ๊ฒ์ผ๋ก ๊ธฐ๋๋๋ค.
#
์์ฝ์๋ฐ์คํฌ๋ฆฝํธ๋ ์น ํ์ด์ง์ ์ํธ์์ฉํ๋๋ก ๋์์ธ๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ฉฐ ๋ค์ ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
ECMA-262์์ ์ ์ํ๋ ECMAScript ํต์ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM), ์น ํ์ด์ง ์ฝํ ์ธ ๋ฅผ ์กฐ์ํ๋ ๋ฉ์๋์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ(BOM), ๋ธ๋ผ์ฐ์ ์ ์ํธ์์ฉํ๋ ๋ฉ์๋์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
#
์ฐธ๊ณ ์๋ฃ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์๊ณผ ECMAScript ์ญ์ฌ ์ ๋ฆฌ