๐ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)๋?
- ๊ฐ์ฒด ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- ์น ํ์ด์ง์ ์๋๊ฐ์ ๋ถ์ด๋ฃ๊ธฐ ์ํด ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑํ ํ๋ก๊ทธ๋จ์ ์คํฌ๋ฆฝํธ(script) ๋ผ๊ณ ํจ
- ์นํ์ด์ง์ HTML ์์ ์์ฑ ๊ฐ๋ฅํ๋ฉฐ, ํ์ด์ง๊ฐ ๋ก๋๋ ๋ ์๋ ์คํ๋จ
๐ ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ง
โ
๋ธ๋ผ์ฐ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ ์ ์๋ ์ผ
- ํ์ด์ง์ ์๋ก์ด HTML์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด HTML ๋ฐ ์คํ์ผ ์์
- ์ฌ์ฉ์์ ํ๋ (๋ง์ฐ์ค ํด๋ฆญ, ํค๋ณด๋ ์
๋ ฅ ๋ฑ)์ ๋ฐ์ํ๊ธฐ
- ๋คํธ์ํฌ๋ฅผ ํตํด ์๊ฒฉ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ฑฐ๋, ํ์ผ ๋ค์ด๋ก๋ ๋ฐ ์
๋ก๋ํ๊ธฐ
- ์ฟ ํค๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ค์ ํ๊ธฐ, ์ฌ์ฉ์์๊ฒ ์ง๋ฌธ์ ๊ฑด๋ค๊ฑฐ๋ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ
- ํด๋ผ์ด์ธํธ ์ธก์ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ (๋ก์ปฌ ์คํ ๋ฆฌ์ง)
โ ๋ธ๋ผ์ฐ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ ์ ์๋ ์ผ
- ์นํ์ด์ง ๋ด ์คํฌ๋ฆฝํธ๋ ๋์คํฌ์ ์ ์ฅ๋ ์์์ ํ์ผ์ ์ฝ๊ฑฐ๋ ์คํํ๋ ๊ฒ์ด ์ ํ๋จ
์นด๋ฉ๋ผ๋ ๋ง์ดํฌ ๊ฐ์ ๋๋ฐ์ด์ค์ ์ํธ ์์ฉํ๋ ค๋ฉด ์ฌ์ฉ์์ ๋ช
์์ ์ธ ํ๊ฐ๊ฐ ํ์ํจ
- ๋ธ๋ผ์ฐ์ ๋ด ๋ค๋ฅธ ํญ๊ณผ ์ฐฝ์ ์ ๋ณด ์ ๊ทผ ๋ถ๊ฐ
๋จ, ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ ์ฐฝ์ ์ด ๊ฒฝ์ฐ ์์ธ๊ฐ ์ ์ฉ๋์ง๋ง, ๋๋ฉ์ธ, ํ๋กํ ์ฝ, ํฌํธ๊ฐ ๋ค๋ฅด๋ฉด ์ ๊ทผ ๋ถ๊ฐ
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ฒ์ ์ฝ๊ฒ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ง๋ง, ํ ์ฌ์ดํธ๋ ๋๋ฉ์ธ์ ๋ฐ์ดํฐ ์ ๊ทผ์ ๋ถ๊ฐ๋ฅ
์๊ฒฉ ์๋ฒ์์ ๋ช
ํํ๊ฒ ์น์ธ(CORS ์ค์ ) ํด์ผ ํจ
๐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ๊ฒฝ
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐ๋๊ณ , ๊ฐ๋ฐฉ์ ์ด๋ฉฐ, ๋ง์ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋จ
๋ค์ํ ์ธ์ด์ ์ฅ์ ์ ๊ฒฐํฉํ์ฌ ๋ง๋ค์ด์ง
| ๊ธฐ์ฌํ ์ธ์ด | ํน์ง |
|---|
| ์๋ฐ(Java) | ๋ฌธ๋ฒ ๊ตฌ์กฐ |
| ์คํค๋ง(Scheme) | ์ผ๊ธ ๊ฐ์ฒด, ํด๋ก์ |
| ํ์ดํผํ ํฌ(HyperTalk) | ๋ธ๋ผ์ฐ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ |
| ํ(Pearl), ํ์ด์ฌ(Python) | ๋ฌธ์์ด, ๋ฐฐ์ด, ์ ๊ทํํ์ |
| ์
ํ(Self) | ํ๋กํ ํ์
ํ์ฅ |
| ์คํฌ(Oak) | ํจ์ |
๐ฏ ECMAScript์ JavaScript
JavaScript๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๊ณ , ECMAScript(ES)๋ JavaScript์ ๋ช
์ธ(ํ์ค)
| ์ฉ์ด | ์ค๋ช
|
|---|
| JavaScript | ํ๋ก๊ทธ๋๋ฐ ์ธ์ด |
| ECMAScript | JavaScript์ ํ์ค ๋ช
์ธ |
| TC39 | ECMAScript ํ์ค์ ๊ด๋ฆฌํ๋ ์กฐ์ง |
| Babel | ์ต์ JavaScript๋ฅผ ํ์ ๋ฒ์ ์์๋ ์ฌ์ฉํ ์ ์๋๋ก ๋ณํํ๋ ๋๊ตฌ |
๐น ECMAScript ๋ฒ์
- ES1, ES2, ES3... ์ต์ ๋ฒ์ ์ผ๋ก ๋ฐ์ ์ค
- ES6(ES2015) ์ดํ ํ์ดํ ํจ์,
let, const, Promise ๋ฑ ์ถ๊ฐ๋จ
๐ ์๋ฐ์คํฌ๋ฆฝํธ Everywhere
| ๋ถ์ผ | ๊ธฐ์ |
|---|
| ๋ธ๋ผ์ฐ์ | IE, Chrome, Firefox (V8 ์์ง) |
| ์๋ฒ | Node.js |
| ํจํค์ง ๋งค๋์ | npm |
| AJAX | ๋น๋๊ธฐ ๋ฐ์ดํฐ ์์ฒญ |
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ | jQuery, JSON, React |
โก V8 ์์ง & Node.js
- V8 ์์ง : Google Chrome์์ ์ฌ์ฉํ๋ JavaScript ์์ง
- Node.js : Chrome V8 ์์ง์ ๊ธฐ๋ฐ์ผ๋ก ํ JavaScript ๋ฐํ์ โก๏ธ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํ์์ผ์ค ์ ์๋ ํ๊ฒฝ โก๏ธ ํ๊ฒฝ์ ํตํด์ ์๋ฒ๋ฅผ ๊ตฌ์ถ
console.log("Hello, Node.js!");
๐ฒ JavaScript์ ํ์ฉ
- Facebook ์ฑ : React๋ก ๊ฐ๋ฐ๋จ
- Electron : ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด ๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ ๊ฐ๋ฅ
- VSCode, Slack, Notion ๋ชจ๋ Electron ๊ธฐ๋ฐ
- ๊ฐ๋ฐ์ ๋๊ตฌ(F12)์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ํ์ธ ๊ฐ๋ฅ
๐ ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ ๊ฐ๋ฅ
- HTML + CSS + JavaScript ํ์ฉ โ ๋ค์ํ ํ๋ซํผ์์ ์ฌ์ฉ ๊ฐ๋ฅ
- React Native : ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ
- Electron : ๋ฐ์คํฌํ ์ฑ ๊ฐ๋ฐ (Windows, Mac ์ง์)
- Node.js : ์๋ฒ ๊ฐ๋ฐ
๐ ์ฐธ๊ณ ๋ฌธํ
๐ JAVASCRIPT.INFO