๐Ÿ“– Javascript ๋ž€?

์–ธ์ง€ยท2025๋…„ 3์›” 17์ผ

๐Ÿš€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript)๋ž€?

  • ๊ฐ์ฒด ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • ์›น ํŽ˜์ด์ง€์— ์ƒ๋™๊ฐ์„ ๋ถˆ์–ด๋„ฃ๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์Šคํฌ๋ฆฝํŠธ(script) ๋ผ๊ณ  ํ•จ
  • ์›นํŽ˜์ด์ง€์˜ HTML ์•ˆ์— ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ์ž๋™ ์‹คํ–‰๋จ

๐Ÿ“Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์ง•

โœ… ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ

  • ํŽ˜์ด์ง€์— ์ƒˆ๋กœ์šด HTML์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด HTML ๋ฐ ์Šคํƒ€์ผ ์ˆ˜์ •
  • ์‚ฌ์šฉ์ž์˜ ํ–‰๋™ (๋งˆ์šฐ์Šค ํด๋ฆญ, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ๋“ฑ)์— ๋ฐ˜์‘ํ•˜๊ธฐ
  • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์›๊ฒฉ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ฑฐ๋‚˜, ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์—…๋กœ๋“œํ•˜๊ธฐ
  • ์ฟ ํ‚ค๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์„ค์ •ํ•˜๊ธฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์งˆ๋ฌธ์„ ๊ฑด๋„ค๊ฑฐ๋‚˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ
  • ํด๋ผ์ด์–ธํŠธ ์ธก์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ (๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€)

โŒ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•  ์ˆ˜ ์—†๋Š” ์ผ

  • ์›นํŽ˜์ด์ง€ ๋‚ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๋””์Šคํฌ์— ์ €์žฅ๋œ ์ž„์˜์˜ ํŒŒ์ผ์„ ์ฝ๊ฑฐ๋‚˜ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ œํ•œ๋จ

    ์นด๋ฉ”๋ผ๋‚˜ ๋งˆ์ดํฌ ๊ฐ™์€ ๋””๋ฐ”์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์˜ ๋ช…์‹œ์ ์ธ ํ—ˆ๊ฐ€๊ฐ€ ํ•„์š”ํ•จ

  • ๋ธŒ๋ผ์šฐ์ € ๋‚ด ๋‹ค๋ฅธ ํƒญ๊ณผ ์ฐฝ์˜ ์ •๋ณด ์ ‘๊ทผ ๋ถˆ๊ฐ€

    ๋‹จ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ƒˆ ์ฐฝ์„ ์—ด ๊ฒฝ์šฐ ์˜ˆ์™ธ๊ฐ€ ์ ์šฉ๋˜์ง€๋งŒ, ๋„๋ฉ”์ธ, ํ”„๋กœํ† ์ฝœ, ํฌํŠธ๊ฐ€ ๋‹ค๋ฅด๋ฉด ์ ‘๊ทผ ๋ถˆ๊ฐ€

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์„œ๋ฒ„์™€ ์‰ฝ๊ฒŒ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ํƒ€ ์‚ฌ์ดํŠธ๋‚˜ ๋„๋ฉ”์ธ์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์€ ๋ถˆ๊ฐ€๋Šฅ

    ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ๋ช…ํ™•ํ•˜๊ฒŒ ์Šน์ธ(CORS ์„ค์ •) ํ•ด์•ผ ํ•จ


๐Ÿ“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฐฐ๊ฒฝ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ๋˜๊ณ , ๊ฐœ๋ฐฉ์ ์ด๋ฉฐ, ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋จ
๋‹ค์–‘ํ•œ ์–ธ์–ด์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง

๊ธฐ์—ฌํ•œ ์–ธ์–ดํŠน์ง•
์ž๋ฐ”(Java)๋ฌธ๋ฒ• ๊ตฌ์กฐ
์Šคํ‚ค๋งˆ(Scheme)์ผ๊ธ‰ ๊ฐ์ฒด, ํด๋กœ์ €
ํ•˜์ดํผํ† ํฌ(HyperTalk)๋ธŒ๋ผ์šฐ์ € ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
ํŽ„(Pearl), ํŒŒ์ด์ฌ(Python)๋ฌธ์ž์—ด, ๋ฐฐ์—ด, ์ •๊ทœํ‘œํ˜„์‹
์…€ํ”„(Self)ํ”„๋กœํ† ํƒ€์ž… ํ™•์žฅ
์˜คํฌ(Oak)ํ•จ์ˆ˜

๐ŸŽฏ ECMAScript์™€ JavaScript

JavaScript๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๊ณ , ECMAScript(ES)๋Š” JavaScript์˜ ๋ช…์„ธ(ํ‘œ์ค€)

์šฉ์–ด์„ค๋ช…
JavaScriptํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
ECMAScriptJavaScript์˜ ํ‘œ์ค€ ๋ช…์„ธ
TC39ECMAScript ํ‘œ์ค€์„ ๊ด€๋ฆฌํ•˜๋Š” ์กฐ์ง
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

0๊ฐœ์˜ ๋Œ“๊ธ€