๐Ÿ›  JavaScript Essential - 1. JavaScript์˜ ์—ญ์‚ฌ, ์›น์•ฑ์˜ ๊ตฌ์„ฑ ์š”์†Œ, ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

์ด์ถ˜๊ธธยท2021๋…„ 10์›” 10์ผ
0
post-thumbnail

๐Ÿฑโ€๐Ÿ ๋ชฉํ‘œ

  • JavaScript ๋ฒ„์ „ ํŒŒ์•…
  • ์›น์•ฑ์˜ ๊ตฌ์„ฑ ์š”์†Œ
  • ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

๐Ÿ“Œ 1. JavaScript์— ์—ญ์‚ฌ

1995 : Netscape

  • LiveScript : ๋‹จ์ˆœ HTML์„ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด๋กœ ์„ค๊ณ„
  • IE : JScript

1997 : JavaScript ECMA 3.0

  • JavaScript ํ‘œ์ค€ ๊ธฐ๊ด€ ์„ค๋ฆฝ (ECMA)

2000๋…„๋Œ€ : ๋‹ท์ปด ๋ฒ„๋ธ” ๋ฐœ์ƒ

  • ์ธํ„ฐ๋„ท ์‚ฌ์šฉ๋Ÿ‰ ํญ์ฆ
  • ActionScript(Flash)๋ฅผ JavaScript ํ‘œ์ค€ํ™”๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ
  • Steve Jobs : No Flash !!! (IPhone)
  • ๊ฒฐ๊ณผ์ ์œผ๋กœ, ActionScript๋Š” ์—ญ์‚ฌ์†์œผ๋กœ...
  • ๊ณผ๋„๊ธฐ ๋‹จ๊ณ„๋กœ ์ธํ•œ ECMA 4.0 ๋ฒ„์ „์€ ์กด์žฌํ•˜์ง€ ์•Š์Œ

2009 : ECMAScript 5.0

  • ํ˜„๋Œ€์— ์‚ฌ์šฉํ•˜๋Š” JavaScript ํ˜ธํ™˜์„ฑ ๋ฒ„์ „
  • ์˜ˆ) Babel์„ ํ†ตํ•œ ES ํŠธ๋žœ์ŠคํŒŒ์ผ๋ง > ECMA 5.0

2015 ์ดํ›„ : ES2015 ~

  • ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ผ๊ณ  ๋ถˆ๋ฆฌ์šฐ๋Š” ์ตœ์ดˆ ๋ฒ„์ „
  • ์ด ํ›„, ์—ฐ๋„๋ณ„๋กœ 2016, 2017... ์ถœ์‹œ

๐Ÿ“Œ 2. ์›น์•ฑ์˜ ๊ตฌ์„ฑ ์š”์†Œ

  • HTML, CSS, JavaScript ๋กœ ๊ตฌ์„ฑ

2-1) ์‹คํ–‰ ๊ด€์ ์˜ ๊ตฌ์„ฑ ์š”์†Œ

  • ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ํ™˜๊ฒฝ์„ ๋œปํ•จ
  • Browser, NodeJS

2-2) CSR & SSR

  • CSR
    1) Server์—์„œ HTML ํŒŒ์ผ์„ ์ „์†กํ•œ๋‹ค
    2) Client ๋‚ด์—์„œ JS์— ์˜ํ•ด ํŽ˜์ด์ง€ ์กฐ์ž‘
  • SSR
    1) ์กฐ์ž‘๋œ ํŽ˜์ด์ง€ ์ž์ฒด๋ฅผ ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๋ฐ›๋Š”๋‹ค

2-3) ๊ทธ๋ž˜ํ”ฝ ์‹œ์Šคํ…œ

  • HTML, CSS์„ ํ†ตํ•œ ํ‘œํ˜„
  • ์ฐจํŠธ, ์• ๋‹ˆ๋ฉ”์ด์…˜, 3D : JavaScript Canvas

2-4) ์ด์™ธ์—

  • ๋ฏธ๋””์–ด ํŒŒ์ผ, ์›น ์›Œ์ปค, ์›น ์–ด์…ˆ๋ธ”๋ฆฌ๋“ฑ

๐Ÿ“Œ 3. ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๊ณ ๋„ํ™”

  • JS๋Š” ์ดˆ๊ธฐ ์„ค๊ณ„ ๋‹น์‹œ, ๋‹จ์ˆœ ์›น ์กฐ์ž‘์„ ์œ„ํ•œ ์–ธ์–ด
  • ํ•˜์ง€๋งŒ, ์›น์•ฑ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ณ  ๋ณต์žกํ•ด์ง„๋‹ค.
  • ECMA๋Š” ๋Œ€์‘์„ ์œ„ํ•ด JavaScript์— ์ƒˆ๋กœ์šด ๋ฌธ๋ฒ•๋“ค์„ ์ถ”๊ฐ€ํ–ˆ๊ณ ,
    ES2015์—์„œ ๋ชจ๋“ˆ ๋ฌธ๋ฒ•์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ ํ™˜๊ฒฝ์ด ๋ฐ”๋€๋‹ค.

3-1) ES2015, ๋ชจ๋“ˆ์— ๋“ฑ์žฅ

  1. ์ดˆ๊ธฐ JS๋Š” HTML > head, body ํƒœ๊ทธ์— script ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด์„œ ๋ถˆ๋Ÿฌ๋“ค์ด๋Š” ํ˜•์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค.
<head>
 <script src="..." />
 <script src="..." />
 <script src="..." />
 ...
</head>
  1. ์›น์•ฑ์ด ์ปค์ง€๋ฉด์„œ ๋ชจ๋“  JSํŒŒ์ผ์„ ์„ ์–ธํ•˜๋Š”๊ฒŒ ๋ถˆํŽธํ•˜๋‹ค๊ณ  ํŒ๋‹จ, ํ•ด๊ฒฐ์„ ์œ„ํ•ด ๋ชจ๋“ˆ์ด ๋“ฑ์žฅํ•œ๋‹ค.
  2. import / export ๊ตฌ๋ฌธ์„ ํ†ตํ•ด ๋‹ค๋ฅธ JS ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
// App.js

import Button from 'components/atomics/button';
const App = () => <div><Button /></div>;
export default App;

// index.html
<head>
 <script src="./App.js" />
</head>

3-2) ๋ฒˆ๋“ค๋Ÿฌ์™€ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ์˜ ๋“ฑ์žฅ

1) ๋ฒˆ๋“ค๋Ÿฌ

  • Webpack, Parcel, Rollup๋“ฑ
  1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ์˜ด
  2. ๊ตฌ๋ฌธ์„ ํ•ด์„ํ•จ
  3. ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ฒˆ๋“ค๋ง (ECMA 5.0)
  4. ์ตœ์ ํ™” ๊ธฐ๋Šฅ
    • ์ฝ”๋“œ ์ตœ์ ํ™”
    • CSS, Assets ์ตœ์ ํ™”
  5. ์›น์•ฑ์ด ์ปค์ง€๊ณ  ํŽธ์˜๋ฅผ ์œ„ํ•˜์—ฌ ๋ฒˆ๋“ค๋Ÿฌ ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€
  6. ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ ๋น„๋Œ€ํ•ด์ ธ ์‚ฌ์šฉ, ์„ธํŒ…์ด ๋ณต์žกํ•ด ์ง

2) ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ

  • ๋Œ€ํ‘œ์ ์œผ๋กœ, Babel์ด ์กด์žฌ
  • ์›น ๊ฐœ๋ฐœ ์–ธ์–ด๋Š” JavaScript๊ฐ€ ์œ ์ผํ•จ
  • ๋ธŒ๋ผ์šฐ์ € ( JavaScript > ๊ธฐ๊ณ„์–ด > ๋ธŒ๋ผ์šฐ์ € )
  • ES2015 > ECMA 5.0
  • TypeScript > ECMA 5.0

์ฐธ๊ณ 

ํŒจ์ŠคํŠธ์บ ํผ์Šค ๊น€๋ฏผํƒœ์˜ ํ”„๋ก ํŠธ์—”๋“œ ์•„์นด๋ฐ๋ฏธ

profile
์ผ์ง€๋ฅผ ๊พธ์ค€ํžˆ ์ž‘์„ฑํ•˜์ž.

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