
JavaScript๋ ๋ฌด์์ธ๊ฐ!
์ฌ๋ ์ธ์ด๋ฅผ ๊ณต๋ถํ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก, JS๋ผ๋ ์ธ์ด์ ํ์ ๋ฐฐ๊ฒฝ์ด๋ผ๋ ์ง,, ํน์ง์ ๋ํด์ ๋จผ์ ์์๋ณด๋๋ก ํ์.
์ฌ์ค ์ด ๊ณผ์ ์ ์ธ ๋ฐ ์๋ ์๊ฐ ๋ญ๋น๋ก ๋ณด๋ ์น๊ตฌ๋ค๋ ์์ง๋ง, ๊ฐ์ธ์ ์ผ๋ก ์ด๋ฐ ๋ฐฐ๊ฒฝ ์ง์์ ์๋ฉด ์ธ์ด์ ์กฐ๊ธ ๋ ํฅ๋ฏธ๊ฐ ์๊ธฐ๋ ๊ฒ ๊ฐ์์ ์ข์ํ๋ค.
์ด๋ค ๋งฅ๋ฝ์์ ์ด๋ค ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ธ์ด์ธ์ง,, ๋ชจ๋ฅด๊ณ ๊ณต๋ถ๋ฅผ ์์ํ๋ ๊ฒ ๋ณด๋ค๋ ์๊ณ ์์ํ๋ ๊ฒ ํจ์ฌ ์ข์ง ์์๊น??
์ฑ ์์๋ 'ํ๋ก๊ทธ๋๋ฐ์ด๋ ๋ฌด์์ธ๊ฐ'๋ฅผ ๋จผ์ ์ ์ํ๋ฉฐ ์์ํ๋ค.
๊ธธ๊ฒ ์ค๋ช ๋ ๊ธ์ ์ฝ์ด๋ณด๋ฉด, ๊ฒฐ๊ตญ ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ปดํจํฐ์์ ์ปค๋ฎค๋์ผ์ด์ ์ด๋ผ๋ ๋ด์ฉ์ด๋ค.
๋ค๋ง ๊ทธ ๋์์ด ์ธ๊ฐ์ด ์๋๊ณ , ๋ช ํํ ๋ช ๋ น๋ง์ ์ดํดํ๋ '์ปดํจํฐ'์ด๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ๋ ์๊ตฌ์ฌํญ์ ๋ถ๋ช ํ ์ ๋ฌํด์ผํ๋ค.
์ด ์ฑ ์ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ฌธ์ฅ์ผ๋ก ์ ์ํ๋ค.
์๊ตฌ์ฌํญ์ ์งํฉ์ ๋ถ์ํด์ ์ ์ ํ ์๋ฃ ๊ตฌ์กฐ์ ํจ์์ ์งํฉ์ผ๋ก ๋ณํํ ํ, ๊ทธ ํ๋ฆ์ ์ ์ดํ๋ ๊ฒ.
(๋ด๊ฐ ๋งค๋ฒ ๊ฑฐ์น๋ ๊ณผ์ ์ ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํด์ ๋์ผ๋ก ๋ง์ฃผํ๋ ๊ธฐ๋ถ์ด ์ด์ํ๊ณ ์ ๊ธฐํ๋ค.)
์ด ๋ฌธ์ฅ์ ์ฝ์ด๋ณด๋ฉด, ๋จ์ง JavaScript์๋ง ํด๋นํ๋ ๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํ์ตํ ๋ ์ฝ์ด๋ณด๋ฉด ์ข์ ๋ฌธ์ฅ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
๋ค์ ๋ณธ๋ก ์ผ๋ก ๋์๊ฐ์...
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ํ๋ก๊ทธ๋๋ฐ์ ๋ชฉ์ ์ด๋ค.
์ฌ๋์ ์์ฐ์ด๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง๋ง, ์ปดํจํฐ๋ ๊ธฐ๊ณ์ด๋ง์ ์ดํดํ๋ค.
๊ทธ๋ ๊ธฐ์ ํ๋ก๊ทธ๋๋จธ๋, ์ฌ๋์ด ์ดํดํ ์ ์๋ ์ฝ์๋ syntax๋ก ๊ตฌ์ฑ๋ programming language๋ฅผ ์ฌ์ฉํด ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค.
๊ทธ ํ๋ก๊ทธ๋จ์ ๊ธฐ๊ณ๊ฐ ์ดํดํ๋๋ก, ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํด์ฃผ๋ ์ญํ ์ ํ๋ ๊ฒ์ ์ปดํ์ผ๋ฌ ๋๋ ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ผ๊ณ ํ๋ค.
์ ์๋ ค์ง C, C++, Java ๊ฐ ์ปดํ์ผ๋ฌ ์ธ์ด, ๊ทธ๋ฆฌ๊ณ Python์ด ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ด๋ค.
๊ทธ๋ฆฌ๊ณ Javascript ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ด๋ค.
JacaScript๋, ์นํ์ด์ง์์ ๋ณด์กฐ์ ์ธ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํจ์ด์๋ค.
1995๋ Netscape communications์์ ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ ๊ฒฝ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋์ ์ ๊ฒฐ์ ํ๋ค.
Brendan Eich๊ฐ ๊ฐ๋ฐํ JavaScript๋, 1996๋ 3์ Netscape communications์ ์น๋ธ๋ผ์ฐ์ ์ธ Netscape Navigator 2์ ํ์ฌ๋์๋ค. ์ด๋์ JavaScript๋ Mocha๋ผ๊ณ ๋ถ๋ ธ๋ค.
Internet Explorer 3.0์, JavaScript์ ํ์๋ฒ์ ์ธ JScript๊ฐ ํ์ฌ๋๋ค.
๋ฌธ์ ๋ JavaScript์ JScript๊ฐ ํ์คํ๋์ง ์์๋ค๋ ๊ฒ์ด๋ค.
์๋ก ์์ ์ ๋ธ๋ผ์ฐ์ ์ ์์ฅ์ ์ ์จ์ ๋์ด๊ธฐ ์ํด, ์์ ์ ๋ธ๋ผ์ฐ์ ์์๋ง ๋์๊ฐ๋ ๊ธฐ๋ฅ์ ๊ฒฝ์์ ์ผ๋ก ์ถ๊ฐํ๊ธฐ ์์ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ด์๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ๋ค.
๊ฒฐ๊ตญ JavaScript์ ํํธํ ๋ฐฉ์ง์ ํ์์ฑ, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ ์์ ์ผ๋ก ๋์๊ฐ๋ ํ์คํ๋ JS์ ํ์์ฑ์ด ๋๋๋์๋ค.
Netscape communications์์๋, JavaScript(Mocha)๋ฅผ LiveScript๋ก ์ด๋ฆ์ ๋ฐ๊พผ๋ค.
๊ฒฐ๊ตญ Netscape communications์์๋, ECMA International์ JavaScript์ ํ์คํ ์์ฒญ์ ํ๋ค.
(ECMA International : ์ปดํจํฐ ์์คํ
์ ํ์ค์ ๊ด๋ฆฌํ๋ ๋น์๋ฆฌ ํ์คํ ๊ธฐ๊ตฌ)
Netscape communications์์๋, JavaScript(LiveScript)์ ์ด๋ฆ์ JavaScript๋ก ์ต์ข ๋ช ๋ช ํ๋ค.
ECMA-262๋ผ๊ณ ๋ถ๋ฆฌ๋, ํ์คํ๋ JavaScript ์ดํ ์ฌ์์ด ์์ฑ๋๋ค. ์ํ๊ถ ๋ฌธ์ ๋ก, ํด๋น ์ธ์ด๋ ECMAScript(ES1)๋ก ๋ช ๋ช ๋์๊ณ , ์ด๋ ํ์ฌ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์ ํ์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.
ECMAScript3๊ฐ ๊ณต๊ฐ๋๋ค.
Ajax๊ฐ ๋ฑ์ฅํ๋ค.
์ด๋ JavaScript๋ฅผ ์ด์ฉํด์ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋ ํต์ ๊ธฐ๋ฅ์ด๋ค.
๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด, ์นํ์ด์ง์์ ๋ณ๊ฒฝํ ํ์๊ฐ ์๋ ๋ถ๋ถ์ ๋ค์ ๋ ๋๋งํ์ง ์๋, ํ์ ์ ์ธ ๋ ๋๋ง์ด ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์๋ค.
๋๋ถ์ ์น๋ธ๋ผ์ฐ์ ์์ ๋ฐ์คํฌํ ์ฑ๊ณผ ์ ์ฌํ ์ ๋์ ๋น ๋ฅธ ์ฑ๋ฅ, ๊ทธ๋ฆฌ๊ณ ๋ถ๋๋ฌ์ด ํ๋ฉด ์ ํ์ด ๊ฐ๋ฅํด์ก๋ค.
jQuery๋ผ๋ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฑ์ฅํ๋ค.
DOM ์ ์ด๊ฐ ์ฌ์์ก๊ณ , ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ด์๋ฅผ ์ด๋์ ๋ ํด๊ฒฐํ๋ค.
๊ตฌ๊ธ์ V8 JavaScript ์์ง์ด ๋ฑ์ฅํ๋ค.
JavaScript ๋ฑ์ฅ ํ, ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๋ ค๋ ์๋๊ฐ ์ฆ๊ฐํ๊ณ , ๋๋ฌธ์ ๋ ๋น ๋ฅด๊ฒ ๋์ํ๋ JS ์์ง์ด ํ์ํ๋๋ฐ, ๋ง์นจ๋ด V8 JavaScript ์์ง์ด ๋ฑ์ฅํ๋ค.
V8 JavaScript ์์ง์ ๋ฑ์ฅ์ผ๋ก JavaScript๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ ์ฐฉํ๊ฒ ๋์๋ค.
์๋ฒ์์ ์ํ๋๋ ๋ก์ง๋ค์ด ๋๊ฑฐ ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ) ๋ก ์ด๋ํ๊ณ , ๋๋ฌธ์ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์์ ํ๋ก ํธ์ํธ๊ฐ ์ฃผ๋ชฉ๋ฐ๋ ๊ณ๊ธฐ๊ฐ ๋์๋ค.
ES5๊ฐ HTML5์ ํจ๊ป ์ถํํ๋ค.
Ryan Dahl์ด Node.js๋ฅผ ๋ฐํํ๋ค.
์ด๋ V8 JS ์์ง์ผ๋ก ๋น๋๋ JavaScript ๋ฐํ์ ํ๊ฒฝ์ด๋ค.
Node.js๋, ๋ธ๋ผ์ฐ์ ์ JavaScript ์์ง์์๋ง ๋์ํ๋ JavaScript๋ฅผ ๋ธ๋ผ์ฐ์ ์ด์ธ์ ํ๊ฒฝ์์๋ ๋์ํ ์ ์๋๋ก JavaScript ์์ง์ ๋ธ๋ผ์ฐ์ ์์ ๋
๋ฆฝ์์ผฐ๋ค.
(์ฌ์ค Node.js๊ฐ JavaScript ๊ฐ๋ฐ ์ํ๊ณ์์ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํ๋ค๋ ์ ๋๋ ์์ง๋ง, ์์ง ์ธ๋ถ์ ์ธ ๋ถ๋ถ์ ๋ด๋ ์ดํด๊ฐ ์ ์๋๋ ๋์ค์ ์์๋ด์ผ๊ฒ ๋ค,,)
ES6์ด ๋ฑ์ฅํ๋ค.
ES6์์๋ ์ด์ ์ ๋ฌธ์ ์ ์ ๋ง์ด ๊ฐ์ ํ๊ณ , ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก์ ๊ฐ์ถฐ์ผํ ๊ธฐ๋ฅ์ ๋๊ฑฐ ๋์
ํ๋ค.
๋ค์ ๊ธ๋ถํฐ๋ ๋ณธ๊ฒฉ์ ์ผ๋ก JavaScript ๋ฌธ๋ฒ๋ค์ ๋ํด ์ ๋ฆฌํ ๊ฒ์ด๋ค.
์ฌ์ค JavsScript๋ฅผ ์ ๋ง ์ฒ์์ ๋ค์์ ๋๋ 'HTML, CSS ๋ค์์ ๋ฐฐ์ฐ๋ ์ธ์ด' ์ ๋๋ก ์ดํดํ์ง๋ง, ์ด์ ๋.. ์ด์ฌํ ๊ณต๋ถํด์ ์ ๋ง JavaScript ๋ง์คํฐ๊ฐ ๋์ด๋ณด๊ฒ ๋ค..