2015๋ ์ผ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ๋๊ฒฉ๋ณ, ES2015 (a.k.a ES6)์ ๋ฑ์ฅ์ด ์์๋ค.
๋ ธ๋ 6 ๋ฒ์ ๋ถํฐ ES2015 ๋ฌธ๋ฒ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ,
ํ์ฌ๋ ES2022๊น์ง ๋ฑ์ฅํ ์ํฉ์ด๋ฏ๋ก ES2015+๋ผ ํต์นญํ์ฌ ๋ถ๋ฅธ๋ค.
var๊ณผ ์ ์ฌํ ๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฌ๋ var์ ํจ์ ์ค์ฝํ๋ก ๋ธ๋ก์ ๋ฒ์์ ์๊ด์์ด ์ฌ์ฉํ ์ ์์ผ๋, const๋ let๋ ๋ธ๋ก ์ค์ฝํ๋ก ๋ธ๋ก ๋ฐ์์๋ ์ฌ์ฉํ ์ ์๋ค.
๊ธฐ์กด ๋ฌธ์์ด๊ณผ ๋ค๋ฅด๊ฒ ํค๋ณด๋ ์ข์ธก ์๋จ์ ์๋ ๋ฐฑํฑ ๋ฌธ์๋ก ๊ฐ์ผ๋ค. (๋ค๋ง ๋งฅ๋ถ์ ๋ฐฑํฑ ๋์ โฉ๊ฐ ๋์จ๋ค. ์์ํด๋ผ...)
๋ฐฑํฑ ์์ ๋ณ์๋ฅผ ๋ฃ์ ์ ์๋๋ฐ, ${๋ณ์} ํํ๋ก ์ฌ์ฉํ๋ค.
๊ฐ์ฒด์ ๋ฉ์๋์ ํจ์๋ฅผ ์ฐ๊ฒฐํ ๋ ์ฝ๋ก (:)๊ณผ function์ ๋ถ์ด์ง ์์๋ ๋๋ค.
๋๋ถ์ด, ์์ฑ๋ช ๊ณผ ๋ณ์๋ช ์ด ๋์ผํ ๊ฒฝ์ฐ์๋ ํ ๋ฒ๋ง ์ฌ์ฉํด๋ ๋๋ค.
๊ธฐ์กด์ function @@@() {}๊ณผ ํจ๊ป, const @@@ = () => {}์ผ๋ก ํจ์๋ฅผ ์ ์ํ ์ ์๊ฒ ๋์๋ค.
๋๋ถ์ด ๋ณ์์ ๋์ ์, ๋์ค์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
๊ธฐ์กด๊ณผ์ ์ฐจ์ด์ ์ this ๋ฐ์ธ๋ ํ์์ด๋ฏ๋ก this ์ฌ์ฉ ์์๋ ํ์ดํ ํจ์๋ ํจ์ ์ ์ธ๋ฌธ ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์ฌ์ฉํ๋ฉด ๋๋ค.
๊ฐ์ฒด ๋ฐ ๋ฐฐ์ด์์ ์์ฑ์ด๋ ์์๋ฅผ ๋น ๋ฅด๊ฒ ๊บผ๋ผ ์ ์๊ฒ ๋๋ค.
var getCandy = candyMachine.getCandy
const { getCandy, status: { count } } = candyMachine
// ๋์ ๋์ผํ ์๋ฏธ์ด๋ค. ๋๋๋ค!
์ฝ๋ ์ค ์๋ฅผ ์๋นํ ์ค์ฌ์ฃผ๊ธฐ ๋๋ฌธ์, ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค.
ํด๋์ค ๋ฌธ๋ฒ์ ์ถ๊ฐ๋์์ง๋ง, ๋ค๋ฅธ ์ธ์ด์ฒ๋ผ ํด๋์ค ๊ธฐ๋ฐ์ด ์๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ ๋ ธ๋์์๋ ๋น๋๊ธฐ๋ฅผ ์ ํ๋๋ฐ, ํนํ ์ด๋ฒคํธ ๋ฆฌ์ค๋์์ ์ฝ๋ฐฑ ํจ์๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ค. ์ด๋ฅผ ๋์ ํ์ฌ ํ๋ก๋ฏธ์ค ๊ธฐ๋ฐ์ผ๋ก ์ฌ๊ตฌ์ฑ๋ ์ฝ๋๊ฐ ๋น์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค!
ํ๋ก๋ฏธ์ค๋ ์คํ์ ๋ฐ๋ก ํ๋, ๊ฒฐ๊ด๊ฐ์ ๋์ค์ ๋ฐ๋ ๊ฐ์ฒด์ด๋ค. ๋ชจ๋ ์คํ์ด ์๋ฃ๋ ํ, then์ด๋ catch ๋ฉ์๋๋ฅผ ํตํด ๋ฐ๊ฒ ๋๋ค.
ํ๋ก๋ฏธ์ค ์ค ํ๋๋ผ๋ reject๋๋ค๋ฉด catch๋ก ๋์ด๊ฐ๋ค.
๋ ธ๋ 7.6 ๋ฒ์ ์ดํ๋ถํฐ ์ง์ํ๋ค. ES2017๋ถํฐ ์ถ๊ฐ๋์๋ค!
ํ๋ก๋ฏธ์ค์์ then๊ณผ catch๋ฅผ ๋ฐ๋ณตํด์ ์ฌ์ฉํ ๊ฒ์ ์ด๊ฒจ๋ด๊ธฐ ์ํด, async/await๊ฐ ์๊ฒจ๋ฌ๋ค.
await 000์ด resolve๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ํ, ๋ค์ ๊ฒ์ผ๋ก ๋์ด๊ฐ๋ค. ๋ค๋ง, ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ด ์๊ธฐ์ try-catch๋ก ๋ก์ง์ ์ก์ ์ฃผ์ด์ผ ํ๋ค.
Asynchronouse Javascript And XML์ ์ค์๋ง๋ก, ๋น๋๊ธฐ์ ์น ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋ ์ฌ์ฉํ๋ค.
ํ์ด์ง ์ด๋ ์์ด ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ๋ ๊ธฐ์ ์ด๋ค. ํ์ด์ง ์ ํ ์์ด ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๊ฒฝ์ฐ, ๋๋ถ๋ถ AJAX ๊ธฐ์ ์ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
axios.get / post ๋ฑ์ด ์์๊ฐ ๋ ์ ์๋ค.
form ํ๊ทธ์ ๋ฐ์ดํฐ๋ฅผ ๋์ ์ผ๋ก ์ ์ดํ ์ ์๋ ๊ธฐ๋ฅ์ผ๋ก, AJAX๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ค.
FormData ์์ฑ์๋ก formData ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ , ๊ฐ์ appendํ๋ค. ์ดํ axios๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ฉด ๋!
AJAX ์์ฒญ์ ๋ณด๋ผ ๋, ์ฃผ์์ ํ๊ธ์ด ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก URIComponsent.
https://000.com/ $ {encodeURIComponent ( 'ํ๊ธ' )} ๋ฑ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ฐ๋ ์ชฝ์์๋ decodeURIComponent('%00%00%00%00')๋ก ๋ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค.
ํ๋ก ํธ์๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ ๊ฐ์ฅ ๋จผ์ ๊ณ ๋ คํ ๊ฒ์ ๋ณด์์ด๋ค. ๋ณด์๊ณผ ๋ฌด๊ดํ ๊ฒ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์์ ์ ์ฅํด๋ ๋์ง๋ง, ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์ ๋ฐ์ดํฐ ์์ฑ(data attribute)์ด๋ค.
์ฅ์ ์ผ๋ก๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค๋ ์ ์ด ์๋ค. ์์ผ๋ก ์์ฃผ ์ฌ์ฉํ๊ฒ ๋ ์น๊ตฌ์ด๋, ์ ๊ธฐ์ตํด ๋์.
es2015 ์ค๋ช : https://www.w3schools.com/js/js_es6.asp
๋ ธ๋ ๋ฒ์ ๋ณ ECMAScript ์คํ : https://node.green/
[Node.js] 5์ฅ ํจํค์ง ๋งค๋์ (0) | 2022.10.13 |
---|---|
[Node.js] 4์ฅ http ๋ชจ๋๋ก ์๋ฒ ๋ง๋ค๊ธฐ (0) | 2022.10.06 |
[Node.js] 3์ฅ ๋ ธ๋ ๊ธฐ๋ฅ (0) | 2022.09.29 |
[Node.js] 3์ฅ ๋ ธ๋ ๊ธฐ๋ฅ (0) | 2022.09.22 |
[Node.js] 1์ฅ ๋ ธ๋ ์์ํ๊ธฐ (0) | 2022.09.19 |