์ฃผ์ 1
- 1. ์ฟ ํค์ ์ธ์ ์ ๋ํด ๊ฐ๋จํ ์ค๋ช
- ๋ต๋ณ
- ํผ๋๋ฐฑ
- (ํ๋ฆ๋น ๋ฅด๋ค๋ฉด ์์ผ๋ก ํํ) this๋ ~~, ~~, ~~ ์ด๋ค.
๋ง์ด๋๋ฌด ๋น ๋ฅด๋ค๊ณ ์๊ฐ
- ์ง๋ฌธ2
- ๋ต๋ณ
- ํผ๋๋ฐฑ
์ฃผ์ 2
- ์ง๋ฌธ1
- ๋ต๋ณ
- ํผ๋๋ฐฑ
- ์ง๋ฌธ1
- ๋ต๋ณ
- ํผ๋๋ฐฑ
์ฟ ํค
- ์ฟ ํค์ ๋์ ์๋ฆฌ
- ์ ํจ๊ธฐ๊ฐ์ ์ ํ ์ ์๋ค
- ์ฅ์
- ์น ์คํ ๋ฆฌ์ง์ ๋นํด ์ ์ฅ์ฉ๋์ด ์๋ค
- ์ฟ ํค์ ํจ๊ป ์ ์กํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ํ๊ฐ ์ผ์ด๋จ
- - XSS ๊ณต๊ฒฉ์ ๋ํ์ฌ ์ค๋ช ํ์ง ์์
- ๋ณด์์์ ๋ฌธ์
- ์ด ๋ถ๋ถ์ ๋ต๋ณํ์ง ๋ชปํ๋ค.
์คํ ๋ฆฌ์ง
- ์ฃผ์ํด์ผ ํ ์
- ๋ก์ปฌ, ์ธ์ โ ๋ก์ปฌ ํน์ง: ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๊ฑฐ๋ ํ์ง ์์. ๋๋ฉ์ธ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ๋ ์ ์ง๊ฐ ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ฉ์ ํ ์ ์๋ค
- ์ธ์ ๋ณ๋ก ์ ์ฅ์ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋๋ฉ์ธ์ด๋๋ผ๋ ๋ค๋ฅธ ์ธ์ ์ ์์ผ๋ฉด ๋ฐ์ดํฐ ์ด์ฉ ๋ถ๊ฐ โ ์ข์ ๋ต๋ณ์ธ๋ฏํจ. ์ธ์ ๊ณผ ๋ก์ปฌ์ ์ฐจ์ด์ ๋ํด ์ ์ค๋ช ํจ
๋น๋๊ธฐ
์ฝ๋ฐฑ
- ์ฝ๋ฐฑ ์ง์ฅ
- ์ฒ๋ฆฌ ์์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํ์ฌ ์ค์ฒฉ์ฌ์ฉ์ ์ํด ๋ฐ์
- ์๋ฌ ์ฒ๋ฆฌ๊ฐ ํ๋ค๊ณ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง
- ์ ? ์ด๋์ ์๋ฌ๊ฐ ๋ฐ์ํ๋์ง ํ์ธ์ด ์ด๋ ต๋ค
โ ์ข ๋ ๊ธฐ์ ์ ์ผ๋ก ์ธ๋ถ์ ์ธ ๋ต๋ณ์ ํด์ฃผ์๋ฉด ์ข์๊ฑฐ ๊ฐ์ต๋๋ค.
async/await
- promise์ await ์ ํธ?
- await ์ ํธ โ ๋๊ธฐ์ ์ผ๋ก ๋ณด์ด๊ฒ ํ ์ ์๊ณ ๊ฐ๊ฒฐํด์ง
- ํ๋ก๋ฏธ์ค, await ์ฐจ์ด
- try...catch, then...catch ์๋ฌ์ฒ๋ฆฌ๋ฐฉ์ ๋ฌ๋ผ์ง
โ ๊ผฌ๋ฆฌ ์ง๋ฌธ์ ํ๊ธฐ ์ ์ ์ง์ ์ด์ ์ ๋ํด์ ์ค๋ช
ํ์ ์ ์ด ์ข์์ต๋๋ค.
- ์ด์ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
- promise๋ promise ์ฒด์ธ์ผ๋ก ๋ฐ๋๋ค... ๋ค์ ๋ ์ธ๋ถ ์ค๋ช ์ ๋ถ์ด๋ฉด ์ข์๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
- ์ฝ๋ ์ง๋ฌธ
- ๊ธธ๊ฒ ์๊ฐํ ์ผ์ด ์์ ๋๋ ๋ฉด์ ๊ด์๊ฒ ์ํด๋ฅผ ๊ตฌํ๋๊ฒ ์ข์๊ฑฐ ๊ฐ์ต๋๋ค.
XMLHttpRequest
var, let, const
- ์ฐจ์ด์
- var ์ ์ธ ์ด๊ธฐํ ๋์์ ์ด๋ฃจ์ด์ง, let const ์ ์ธ๊ณผ ์ด๊ธฐํ๊ฐ ๋ฐ๋ก ์ด๋ฃจ์ด์ง๋ค
- โ ์กฐ๊ธ ๋ ์ธ๋ถ์ ์ธ ์ค๋ช ์ด ์์์ผ๋ฉด ์ข๊ฒ ๋ค.
- โ
ํด๋ก์
- ์ด๋ป๊ฒ ์ด๋ฐ ํ์์ด ์ผ์ด๋ ์ ์๋์ง
- ํด๋ก์ ๋ ํจ์๊ฐ ์์ฑ๋ฌ์ ๋ ์์ ์ด ์์ฑ๋ ํ๊ฒฝ์ ๊ธฐ์ต โ ์ค์ฝํ ๋ฐ์ ์ ์ธ์ด ๋ ๋ณ์์ ์ ๊ทผ์ด ๊ฐ๋ฅ
this
- ๋ฉ์๋ ๋ด์์ ์ค์ฒฉ ํจ์ ์ ์ธ ๋ด์์ this ์ฌ์ฉํ ๋ ๊ฐ์ this๋ ๊ฐ์ this๋ฅผ ๊ฐ๋ฆฌํค๊ฒํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
- ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ํ์ฌ ์ ์ค๋ช ํ์์
์ด๋ฒคํธ๋ฃจํ
- ๋์ ์๋ฆฌ:
- ์ฝ๋์์ ํจ์๊ฐ ์คํ๋ ๋ ์ฝ์คํ์ ์์ โ ๋น๋๊ธฐ ์์ ์ ์น api์ ์์ โ ๋๊ธฐ์ค์ธ ์ฝ๋ฐฑํจ์๋ฅผ ์ฝ์คํ์ ๋๊ฒจ์ค
- ์ฒซ ์ง๋ฌธ์ด ๋๋ฌด ๊ฐ๋จํ๊ฒ ๋์ด๋๋๊ฑฐ ๊ฐ์ต๋๋ค.(๊ผฌ๋ฆฌ ์ง๋ฌธ ์์ฒญํ๋๊ฑด๊ฐ์?)
ํจ์์ ํธ์ถ ๊ณผ์
- ์คํ ์ปจํ ์คํธ์ ๊ณต๋ถํ์ง ์์ ๋ต๋ณ์ด ์ด๋ ค์ ์ต๋๋ค.
์คํ / ํ
- ์ ์ ์ ์ถ ํ์ ์ ์ถ
- ์ง๋ฌธ๊ณผ ๋ค๋ฅธ ๋ต๋ณ์ ํ์
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์์ ์ฐ์์
- ์ฝ์คํ ?? ์ด๋๊ฐ์๊น..
- ์์ ๊ฐ์ด ๋ถ์กฑํ ๋ต๋ณ์ด์์ต๋๋ค.
- ๊ฐ์ธ์ ์ผ๋ก ์ถ์์๊ฐ ๋ง์๊ฑฐ ๊ฐ์ต๋๋ค.(๊ทธ, ์ด)
var value = 1000 function delay = () => { return new Promise((resolve, reject) => { console.log('1 : ',value); value = 300; setTImeout(() => { value = 150; console.log('2: ', value); resolve(value); }); } } (async () => { const data = await delay(); console.log('3 :', data); })(); value = 200 console.log('4 :', value);
์ ์ฒด์ ์ธ ํผ๋๋ฐฑ
์ง๊ด์ฑ - ๋ฌด์จ ๋ง์ ํ๋ ค๋์ง ๋น ๋ฅด๊ฒ ์ดํด(good), ๋งํ๋ ค๋ ๋ฐ๋ฅผ ๊ผฌ๋ฆฌ์ง๋ฌธ์ ํตํด ์ดํด (bad)
๊ตฌ์ฒด์ฑ - ๋ฌป๋ ๊ฐ๋
์ ๋ํด ์์ธํ๊ฒ ์ด์ผ๊ธฐ(good), ๋ฌป๋ ๊ฐ๋
์ ์ผ๋ถ๋ง์ ์ด์ผ๊ธฐํจ (bad)
์ ํ์ฑ - ์ฌ๋ฐ๋ฅธ ๊ฐ๋
์ ๋ํด ์ด์ผ๊ธฐ (good), ์๋ชป๋ ์ ๋ณด, ์ฌ๋ฌ ๊ฐ๋
์ ํผํฉํ์ฌ ์ด์ผ๊ธฐํจ (bad)
ํ๋ ๋ฐ ์์ธ - ๋งํ๋ ์๋, ๊ฐ์ฝ์กฐ์ , ์์ ๊ฐ, ๋ชธ์ง์ ๋ณํ๊ฐ ์ ์ ํ๋ค (good)
- ์ ์ฒด์ ์ผ๋ก ์ฐจ๋ถํ ๋ง์ํ์ ์ ํ์ด์ค ์กฐ์ ์ด ์ ๋์๋๋ฏ ํฉ๋๋ค.