Javascript๋ฅผ ์์๋ด ์๋ค !
ํ๋ก๊ทธ๋๋ฐ
ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ปดํจํฐ์๊ฒ ์คํ์ ์๊ตฌํ๋ ์ผ์ข ์ ์ปค๋ฎค๋์ผ์ด์ ์ด๋ค. ๋ฌธ์ ๋ฅผ ๋ช ํํ ์ดํดํ๊ณ ์ ์ ํ ํด๊ฒฐ ๋ฐฉ์์ ์ฐพ์ ๊ธฐ๊ณ๊ฐ ์คํํ ์ ์์ ์ ๋๋ก ์๊ตฌ๋ฅผ ์ค๋ช ํ๋ ์์ ์ด๋ฉฐ, ์ด ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐ๋ก ์ฝ๋์ด๋ค.
์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํด ํ๋ก๊ทธ๋จ์ ์์ฑ ํ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํํด์ฃผ๋ ๋ฒ์ญ๊ธฐ๋ฅผ ์ปดํ์ผ๋ฌ(Compiler) ํน์ ์ธํฐํ๋ฆฌํฐ(Interpreter)๋ผ๊ณ ํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ง
์น์ ๊ตฌ์ฑํ๋ ์์ ์ค ํ๋๋ก ์น ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ ์ ์ผํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ๋ฐ์๊ฐ ๋ณ๋์ ์ปดํ์ผ ์์ ์ ์ํํ์ง ์๋ ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฐํ์์ ์ปดํ์ผ๋๋ฉฐ ์คํ ํ์ผ์ด ์์ฑ๋์ง ์๊ณ ์ธํฐํ๋ฆฌํฐ์ ๋์ ์์ด ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ๋ฌ ์ธ์ด๋ผ๊ณ ํ ์๋ ์๋ค.
๋ณ์
๋ณ์๋ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์์ฒด ๋๋ ๊ทธ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ์ ๋งํ๋ค.
์๋ณ์
๋ณ์์ ์ด๋ฆ์ ์๋ณ์(Identifier)๋ผ๊ณ ๋ ํ๋ค. ์๋ณ์๋ ๊ฐ์ด ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๊ธฐ์ตํ๊ณ ์๋ค. ๋ณ์ ๋ฟ๋ง ์๋๋ผ ํจ์, ํด๋์ค ๋ฑ ๋ฉ๋ชจ๋ฆฌ ์์ ์กด์ฌํ๋ ๊ฐ์ ์๋ณํ ์ ์๋ ์ด๋ฆ์ ๋ชจ๋ ์๋ณ์๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ํ์
- Number
- String
- Boolean
- Object
- Symbol
- Function
- undefined
- BigInt..?
null์ object ํ์ ์ด๋ค.
์ค์ฝํ
ํจ์ ๋ ๋ฒจ ์ค์ฝํ
var ํค์๋๋ก ์ ์ธํ ๊ฒฝ์ฐ ํจ์ ๋ ๋ฒจ ์ค์ฝํ. ์ฆ, ์ค๋ก์ง ํจ์์ ์ฝ๋ ๋ธ๋ก๋ง ์ง์ญ ์ค์ฝํ๋ก ์ธ์ ํฉ๋๋ค.
var foo = 1;
{
var foo = 10;
}
console.log(foo) // 10 ์๋์น ์๋ ๋ณ๊ฒฝ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ
let ํค์๋๋ฅผ ํตํด ์ ์ธ๋ ๋ณ์๋ ๋ธ๋ก๋ ๋ฒจ ์ค์ฝํ๋ฅผ ๋ฐ๋ฆ
๋๋ค.
let foo = 1;
{
let foo = 2;
}
console.log(foo) // 1task queue
์ฝ ์คํ์ ๋ค์ด๊ฐ๊ธฐ ์ setTimeout, ์ฌ์ฉ์ ์ด๋ฒคํธ ์ฝ๋ฐฑ ๋ฑ์ด ์ ์ฅ๋๋ ํ
microtask queue
Promise.then ์ฝ๋ฐฑ์ด ์ ์ฅ๋๋ ํ
์ด๋ฒคํธ ๋ฃจํ ?
์ ์
๋ฉ์ธ ์ค๋ ๋ ๋์ ํ์ด๋ฐ์ ๊ด๋ฆฌํ๋ ๊ด๋ฆฌ์ ์ญํ . ๋ฉ์ธ ์ค๋ ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์คํ์ด๋ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง์ ๋งก๋ ๋ฑ ๋ธ๋ผ์ฐ์ ์ ์ฃผ๋ ๋์์ด ์ํ๋๋ ๊ณณ์ด๋ค.
์ค์ํ ์ด์
1. ๋ธ๋ผ์ฐ์ ๋์์ ๋๋ถ๋ถ์ด ๋ฉ์ธ ์ค๋ ๋์์ ์ฑ๊ธ ์ค๋ ๋๋ก ์คํ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ๋๋ง์ ํฌํจํ์ฌ ๋น๋๊ธฐ ํจ์๋ฅผ ์ ์ธํ ๋๋ถ๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฉ์ธ ์ค๋ ๋๋ผ๋ ๊ณณ์์ ์คํ๋๋ค.
์ฑ๊ธ ์ค๋ ๋๊ฐ ํ๋์ ์์ ์ ํ๊ณ ์๋ค๋ฉด ๋ค๋ฅธ ์์ ์ ์ง์ฐ์ํค๊ฒ ๋๋ค. ๋ฉ์ธ ์ค๋ ๋์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฑ๊ธ ์ค๋ ๋ ์์ ์ด ์ด๋ฃจ์ด์ง๋ ๋์ ๋ค๋ฅธ ์์ ๋ค์ ์ง์ฐ์ํค๊ธฐ ๋๋ฌธ์ ์ฑ๊ธ ์ค๋ ๋ ์์ ๊ด๋ฆฌ๋ ๋งค์ฐ ์ค์ํ๋ค.
๋ธ๋ผ์ฐ์ ์ ํญ ๋ง๋ค ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๋์๋ฉ๋๋ค.
2. ๋ฉ์ธ ์ค๋ ๋๋ ์ด๋ฒค๋ ๋ฃจํ์ ์ํด ๊ด๋ฆฌ๋๋ค.
๋ฉ์ธ ์ค๋ ๋์ ๊ฐ์ ์ฑ๊ธ ์ค๋ ๋์์ ํ๋์ ์์
์ด ์ค๋ซ๋์ ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ด๋ค ์์
์ ์ฐ์ ์ผ๋ก ๋์์ํฌ ๊ฒ์ธ๊ฐ ๊ฒฐ์ ํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ๋ค.
์ด๋ฌํ ์ปจํธ๋กค์ ์ด๋ฒคํธ ๋ฃจํ๊ฐ ํ๋ ๊ฒ์ด๋ค.
๋์
- ์ฝ ์คํ์ ์์ฌ์๋ task ์ ๋ฆฌ
- microtask queue์ ๋ฑ๋ก๋ Promise.then ์ฝ๋ฐฑ ์คํ
- ํ๋ฉด ๊ฐฑ์ ์ด ํ์ํ๋ค๋ฉด ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ผ๋ก ์ด๋
- task queue์ ์ฝ๋ฐฑ ํ๋์ฉ ์คํ
๋ธ๋กํน VS ๋ ผ๋ธ๋กํน
ํ์ด์ฌ์ ๋ธ๋กํน ์ธ์ด์ด๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋
ผ๋ธ๋กํน ์ธ์ด์
๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฐ์ฐ์ด ๋๋๋ ๊ฒ์ ๊ธฐ๋ค๋ฆฌ์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ๋น๋๊ธฐ์ ์์
์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋์ ์ด๋ ํ ์์
์ด ๋๋๊ณ ์ด๋ค์ ธ์ผ ํ๋ ์์
๋ค์ async/await ๋ ์ฝ๋ฐฑํจ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ์ด๋ฒคํธ ๋ฃจํ
์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธ ์ค๋ ๋ ์ด๋ฒคํธ ๋ฃจํ ํํ์
๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ Stack๊ณผ Queue๋ฅผ ๊ฐ๊ณ ์๋๋ฐ setTimeout ๊ฐ์ ํจ์๋ค์ Queue(task queue)๋ก ๋ค์ด๊ฐ๊ฒ ๋๊ณ , ๊ทธ ๋ฉ์์ง๊ฐ ์คํ๋์ด์ผํ๋ ์ํฉ์ Stack์ด ๋น์ด์๋ค๋ฉด ์คํ ๋ฉ๋๋ค.
Hosting
์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ์ธ๋ฌธ๋ค์ด ์ต์์๋ก ๋์ด์ฌ๋ ค์ง๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋๋ณด๊ธฐ
ํด๋ก์
ํด๋ก์ ๋ ์์ ์ด ์์ฑ๋ ๋์ ํ๊ฒฝ์ ๊ธฐ์ตํ๋ ํจ์๋ก, ์ธ๋ถ ๋ณ์๋ฅผ ๊ธฐ์ตํ๊ณ ๊ทธ ๋ณ์์ ์ ๊ทผํ ์ ์๋ ํจ์๋ฅผ ๋ปํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ค์ฒฉ ํจ์๋ก ์ฝ๊ฒ ํด๋ก์ ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
์๋ ํจ์ ๋ด๋ถ ๋ณ์๋ฅผ ์ค์ฝํํ ๋๋ ๋ ์์ปฌ ์ค์ฝํ์ ๋ฐ๋ผ์ ๊ทธ ์ ์ญ ๋ณ์์ ์๋ ๊ฐ์ ์ฐธ์กฐํ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง, ํจ์ ๋ด๋ถ์
๋ค๋ฅธ ํจ์๋ฅผ ์์น์ํด์ผ๋ก์ ๋ด๋ถ ํจ์๊ฐ ๊ฐ์ธ๋ environment๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๊ณ , ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
var color = 'red';
function foo() {
var color = 'blue'; // 2
function bar() {
console.log(color); // 1 'blue'
}
return bar;
}
var baz = foo(); // 3
baz(); // 4 undefinedThis
์๋ฐ์คํฌ๋ฆฝํธ๋ this๋ผ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๊ฒ ๋๋๋ฐ, this๋ ํธ์ถ๋ ์ํฉ์์ ํจ์๋ฅผ ์์ ํ๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.
์ ์ญ ํ๊ฒฝ์์ this๋ฅผ ์ฐ๊ฒ ๋๋ฉด, ๊ทธ๊ฒ์ window ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.
apply: ๋ฉ์๋๋ ์ฒซ ๋ฒ์งธ ์ธ์๋กthis๋์ ๊ฐ์ฒด๋ฅผ ๋ณด๋ด๊ณ ๋๋ฒ์งธ ์ธ์๋ก ๋ฐฐ์ด์ด ์จ๋ค.call: ๋ฉ์๋๋ ์ฒซ ๋ฒ์งธ ์ธ์๋กthis๋์ ๊ฐ์ฒด๋ฅผ ๋ณด๋ด๊ณ ๋๋ฒ์งธ ์ธ์๋ก ๋ฐฐ์ด์ด ์๋ ์ผ๋ฐ ๋ณ์๊ฐ ์จ๋ค.bind: ๋ฉ์๋๋ ๋น์ฅ ํธ์ถ๋์ง ์๊ณ ํจ์๊ฐ ๋ฆฌํด๋๋ ํํ๋ก ํ์ํ ๋์ ํธ์ถํ ์ ์๋ค.
apply,call,bind๋ฅผ ํตํดthis๋ฅผ ์ฃผ์ ํน์ ์ถ์ถ์ด ๊ฐ๋ฅํ๋ค.
async/await
์๋ฐ์คํฌ๋ฆฝํธ์์ Promise๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ์ผ๋ก ๋น๋๊ธฐ ์์ ์ ํ ๋ ์ฌ์ฉ๋๊ณ , ์ฝ๋ฐฑ hell์ด๋ ๋ฌดํ then๊ณผ ๊ฐ์ ๋ณด๊ธฐ ์์ข์ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ํํํ ์ ์์ต๋๋ค.
๋น์ ์ด ์ปดํฌ๋ํธ
๋ณดํต์ ์ ์ด ์ปดํฌ๋ํธ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ ์ด ์ปดํฌ๋ํธ์ ํผ ๋ฐ์ดํฐ๋ React ์ปดํฌ๋ํธ์์ ๋ค๋ค์ง๊ณ ๋์์ธ ๋น์ ์ด ์ปดํฌ๋ํธ๋ DOM ์์ฒด์์ ํผ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฃจ์ด์ง๋๋ค.
- ๋น์ ์ด ์ปดํฌ๋ํธ๋
setState๋ก ํผ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ์ง ์๊ณref๋ฅผ ํตํด ๊ด๋ฆฌํฉ๋๋ค. defaultValue๋ฅผ ํตํด ์ด๊ธฐ๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค. (checkbox, radio๋defaultChecked)- https://ko.reactjs.org/docs/uncontrolled-components.html
- file input ์ปดํฌ๋ํธ๋ ํญ์ ๋น์ ์ด ์ปดํฌ๋ํธ ์ ๋๋ค.
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ฅ ๋ฐ์ ํ ๋ฉ์๋
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด๋ ?
ํจ์์ ๋ฐ์ดํฐ ์ค์ฌ์ผ๋ก ์ฝ๋๋ฅผ ์ง๋ ๊ฒ.
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์์ ํจ์๋ก ๋๋์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ธฐ๋ฒ์ผ๋ก, ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ํจ์๋ฅผ ์์ฑํ์ฌ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํด์ค๋ค. ์ถ์ฒ: https://mangkyu.tistory.com/111 [MangKyuโs Diary]
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ ๋ถ์ํจ๊ณผ (Side Effect), โ์๋ณธ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์์ดโ ์ฝ๋๋ฅผ ์ง๋ ๊ฒ์ด๊ณ , ๋ถ๋ณ์ฑ์ ์งํค๋ ๋ฉ์๋๋ค์ด ์ด์ ์ํฉ๋๋ค.
-
์์ํจ์ (๋์ผํ ์ธ์์ ๋ํด ํญ์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ผ ํ๋ค)
-
๋ถ์๋ฌผ X (ํ๋ผ๋ฏธํฐ์ ์๋ ๋ณ์๋ค๋ง ์ฌ์ฉ)
-
ํจ์์ ๋ฐ์ดํฐ ์ค์ฌ
-
map -
filter -
reduce
์ปค์คํ ํ ์ ๋ง๋ค ๋ ์ ์ฝ์กฐ๊ฑด
jquery์ React ์ฐจ์ด
React๋ Virtual DOM์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ ๋๋ง ๋๋ ํ์๊ฐ ์ ์ด ๋น ๋ฅด๊ฒ ๋๊ปด์ง๋๋ค.
์ด๋ฒคํธ ์ค๋ณต ํธ์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํ WebAPI
stopPropagation ์ ํตํด ์ด๋ฒคํธ ๋ฒ๋ธ๋ง/์บก์ณ๋ง์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
ํ ์์์ ์ฌ๋ฌ ๊ฐ์ ์ด๋ฒคํธ๊ฐ ๋ฑ๋ก๋์ด ์์๊ฒฝ์ฐ stopPropagation API๋ฅผ ์ฌ์ฉํด๋ ๋๊ฐ์ ์ด๋ฒคํธ๊ฐ ์คํ๋ฉ๋๋ค. ๋ง์ฝ ํ๋์ ์ด๋ฒคํธ๋ง ์คํ๋์ด์ผ
ํ๋ค๋ฉด stopImmediatePropagation API๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ์ด๋ฒคํธ๊ฐ ๋๊ฐ ๋ฑ๋ก๋์ด ์๋ค๋ฉด ์ด๋ค ๊ฒ์ด ๋จผ์ ์คํ๋๋์ง ์์๋ณด๊ธฐ
function๊ณผ arrow function
- this: function์ ์ ์ญ ๊ฐ์ฒด(window), arrow function์ ์์ ์ค์ฝํ์ this๋ฅผ ๊ฐ๋ฅดํต๋๋ค.
- arguments: arrow function์ arguments๋ฅผ ์ฌ์ฉํ ์ ์์
- prototype: arrow function์ prototype์ ์ฌ์ฉํ ์ ์์
map() ํจ์์์ index๋ฅผ ์ง์ํ๋ ์ด์
์ฐ๋ฆฌ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ฐ๋ณตํ์ฌ ๋ฐฐ์นํ๊ฑฐ๋ ์ฌ์ฉํด์ผํ ๋ map()ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ด ๋ ๋ฐ๋ณต๋๋ element์
key๊ฐ์ ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด ๊ด๋ จ ๊ฒฝ๊ณ ๊ฐ ๋
ธ์ถ๋๋ค. ๋ฆฌ์กํธ ๊ณต์ ๋ฌธ์์์๋ ์ด๋ค ์์ดํ
์ด ๋ณ๊ฒฝ, ์ญ์ ๋์๋์ง
์๊ธฐ ์ํด key props๊ฐ ํ์ํ๋ค๊ณ ์ค๋ช
ํ๊ณ ์๋ค.
๋ฆฌ์กํธ๋ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋ฆฌ๋ ๋๋ง ํด์ฃผ๋๋ฐ ๋ฐฐ์ด์ ์์๊ฐ ์ถ๊ฐ๋์์ ๋ key props๊ฐ ์๋ค๋ฉด ๋ง์ง๋ง ์์๋ง ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ ์ํฉ์ธ๋ฐ๋
์ ์ฒด ๋ฐฐ์ด ์์๋ฅผ ๋ค์ ๋ ๋๋งํ๊ฒ ๋๋ค.
key ๊ฐ์ map() ๋ด๋ถ์ index๋ก ์ง์ ํ ๊ฒฝ์ฐ์๋ ๋ฐฐ์ด ์ ์ฒด ์์๊ฐ ๋ฆฌ๋ ๋๋ง ๋ ์ ์๋ค. ๋ง์ฝ ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์น์
์์๊ฐ ์ถ๊ฐ๋ ๊ฒ์ด๋ผ๋ฉด ๋ฐฐ์ด ์ ์ฒด์ index๊ฐ ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ๊ณ ์ ์ id๋ฅผ ์ฌ์ฉํด์ฃผ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค.
๋ฐ์ดํฐ๊ฐ reordered ๋๋ filtered ๋์ง ์๋ ์ํฉ์ด๋ผ๋ฉด index๋ฅผ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํ๋ค๋ ์๊ฒฌ๋ ์๋ค.
CSS-in-JS VS CSS-in-CSS
Redux, recoil ๊ณตํต์ , ์ฐจ์ด์
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ฅ ๋ฐ์ ํ ๋ฉ์๋
- ์ปค์คํ ํ ์ ๋ง๋ค ๋์ ์ ์ฝ์กฐ๊ฑด
- jquery์ ๋ฆฌ์กํธ ์ฐจ์ด
- commonJs ๋ญ๋๋ผ..
- ์ด๋ฒคํธ ์ค๋ณต ํธ์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํ WebAPI
- Stopimmediatepropagation API
- ์ด๋ฒคํธ๊ฐ ๋๊ฐ ๋ฑ๋ก๋์ด ์์๋ ์ด๋ค๊ฒ ์คํ๋ ๊น?
- function๊ณผ arrow function์ ์ฐจ์ด
- CSS-in-JS VS CSS-in-CSS
- Redux, recoil ๋ค๋ฅธ ์
- Rx, Observable
- CSS, JS๋ก ํด๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ CSS๋ฅผ ์ฌ์ฉํ๋ฉด ์ข์ ์ด์ git / jenkins ๊ด๋ จ ์ง๋ฌธ babel์ ์ญํ ๊ณผ ์ฌ์ฉ ์ด์ webpack์ ์ญํ ๊ณผ ์ฌ์ฉ ์ด์ jquery / react ์ฐจ์ด์ ๋ค์ด๋ฒ์ ์ ์ํ ๋ ๋ ๋๋ง ๋๋ ๊ณผ์ ๋ ๋๋ง ๊ณผ์ ์ ์ง์ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ ์๋น์ค์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์๋ ๋ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ ๋ฐ์ดํฐ ์ ๋ฌ๋๋ ๊ณผ์ tcp / http ์ฐจ์ด์ ํจ์ ์ ์ธ์ / ํจ์ ํํ์ ์ฐจ์ด์ csr / ssr ๊ด๋ จ ์ง๋ฌธ csrf๋? hooks ๊ด๋ จ ์ง๋ฌธ ๋ ์ด์์๊ณผ ๊ด๋ จ๋ css ์์๋ค์ด ๋ฌด์์ด ์๋์ง? this ๊ด๋ จ ์ง๋ฌธ ๋ธ๋ผ์ฐ์ ๊ฐ es6๋ฒ์ ์ดํ๋ก ์๊ฒจ์ง ๊ธฐ๋ฅ๋ค์ ์ฝ์ง ๋ชปํ๋ ์ด์ scriptํ๊ทธ๊ฐ body์์ body์๋์ ์์ ๋ ์ฐจ์ด์ position์ relative์ absolute ์๋ ๋น๊ต
- keep-alive๋? this๋? hooks์๋ ์ข ๋ฅ๊ฐ ๋ฌด์์ด ์๊ณ ์ฌ์ฉํด๋ณธ ๊ฒ์ ์ด๋ค ๊ฒ์ด ์๋๊ฐ? useEffect ๊ด๋ จ ์ง๋ฌธ useCallback ๊ด๋ จ ์ง๋ฌธ useState ์ฌ์ฉ ๋ฐฉ๋ฒ tcp / udp ์ฐจ์ด์ http๋ฒ์ ๊ด๋ จ ์ง๋ฌธ prototype์ด๋? oop๋? lazyLoading์ด๋? ๋ณธ์ธ์ ์ฑ๊ฒฉ์ ์ด๋ค๊ฒ ๊ฐ์์ง? ์ฃผ๋ณ ์ฌ๋๋ค์ด ๋ณธ์ธ์ ์ด๋ป๊ฒ ๋ฐ๋ผ๋ณด๋์ง? ์ฑ์ฅ์ด๋? closure๋? closure ์ฅ๋จ์ index๋? ์ฌ์ฉํด๋ณธ database procedure๋? aop๋? ํ์ฌ๋ค์ ์ง์ํ ๋ ์ด๋ค ๊ฑธ ๋ณด๊ณ ์ง์ ํด์๋์ง? css display ์ข ๋ฅ display์ inline / none ์ฐจ์ด์