๐ ๊ธฐ์ ๋ฉด์ ์์ฃผ
Q : ๋๊ธฐ์ ๋น๋๊ธฐ์ ๋ํด ์ค๋ช
ํด์ฃผ์ธ์
A : ๋๊ธฐ ์ฝ๋๋ ์์๋๋ก ์คํ๋๊ณ , ํ ์์
์ด ๋๋ ๋๊น์ง ๋ค์ ์์
์ผ๋ก ์งํํ์ง ์์ต๋๋ค. ๋ฐ๋ฉด, ๋น๋๊ธฐ ์ฝ๋๋ ์์
์ด ์์๋ ํ์๋ ๋ค์ ์์
์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋์์ ์งํ๋ฉ๋๋ค.
Q : ๊ตฌ์กฐ๋ถํดํ ๋น(๋น ๊ตฌ์กฐํ ํ ๋น)์ ๋ํด ์ค๋ช
ํด์ฃผ์ธ์
A :
๊ตฌ์กฐ ๋ถํด ํ ๋น(Structuring Destructuring)์ ํ๋ก๊ทธ๋๋ฐ์์ ๋ณ์๋ฅผ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์์ ์ถ์ถํ์ฌ ๊ฐ๋ณ ๋ณ์๋ก ํ ๋นํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ด๋ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์์ ์ํ๋ ๊ฐ์ ์ฝ๊ฒ ์ถ์ถํ์ฌ ๋ณ์์ ํ ๋นํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ธฐ๋ฅ์
๋๋ค.
const numbers = [1, 2, 3];
const [a, b, c] = numbers;
console.log(a);
console.log(b);
console.log(c);
const person = { name: 'John', age: 30 };
const { name, age } = person;
console.log(name);
console.log(age);
Q : ์ํ๊ด๋ฆฌ์ ์ค์์ฑ์?
A : ์ํ๊ด๋ฆฌ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์ค์ํ ์ธก๋ฉด ์ค ํ๋๋ก, ํฐ ๊ท๋ชจ์ ์ ํ๋ง์ด์
๋๋ ๋ณต์กํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฃฐ ๋ ํนํ ์ค์ํฉ๋๋ค.
- ์ปดํฌ๋ํธ๊ฐ ํต์ : ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๊ฐ ์กด์ฌํ๋ฉฐ ์ด๋ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ๋ฌํ๊ณ ๋๊ธฐํํ๊ธฐ ์ํด ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ์ํ๊ด๋ฆฌ๋ ์ปดํฌ๋ํธ ๊ฐ ํจ์จ์ ์ธ ํต์ ์ ๊ฐ๋ฅ์ผ ํฉ๋๋ค.
- ์ค์ ์ํ ๊ด๋ฆฌ๋ฅผ ํตํด ์ด๋ค ๋ถ๋ถ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋์ง ์ถ์ ํ๊ธฐ๊ฐ ์ฌ์์ง๋๋ค.
- ๋น๋๊ธฐ ์์
์ด๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ ์ํ ๊ด๋ฆฌ๋ ๋ฐ์ดํฐ ํ๋ฆ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ UI๋ฅผ ์
๋ฐ์ดํธํ๋๋ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Q : ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌด์์ด ์์๊น์?
A :
- ์ด๋ฏธ์ง ์ต์ ํ : ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ์ฌ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ํ์์๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
- CSS ๋ฐ Javascript ์ต์ ํ : ๋ถํ์ํ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๊ณ ํ์ผ์ ์์ถํ์ฌ ์ ์ก ํฌ๊ธฐ๋ฅผ ์ต์ํํฉ๋๋ค.
- ์๋ฒ ์บ์ฑ ๋ฐ ํด๋ผ์ด์ธํธ ์บ์ฑ : ์บ์ฑ์ ํ์ฉํ์ฌ ๋ฐ๋ณต์ ์ผ๋ก ์์ฒญ๋๋ ๋ฐ์ดํฐ๋ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ๋ฆฌ์์ค์ ์ ์ก์ ์ต์ํ์ํต๋๋ค.
- ๋ ๋๋ง ์ต์ ํ : DOM ์กฐ์์ ์ต์ํํ๊ณ ๋ ์ด์์ ๋ฐ ๋ฆฌํ์ธํธ๊ฐ ๋ฐ์ํ๋ ํ์๋ฅผ ์ต์ํ์ํต๋๋ค.
Q : ๋ฆฌ์กํธ๋ ๋ฌด์์ด๋ฉฐ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
A : ๋ฆฌ์กํธ๋ ํ์ด์ค๋ถ์์ ๊ฐ๋ฐํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ฃผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ๋ง์ด ์ฌ์ฉ๋๋ฉฐ ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์๋ ํ์ฉ๋ฉ๋๋ค.
[ํน์ง]
- ๋ฆฌ์กํธ๋ ๊ฐ์ DOM์ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค. ์ค์ DOM์กฐ์์ ์ต์ํํ๊ณ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์
๋ฐ์ดํธํ์ฌ ๋น ๋ฅธ ๋ ๋๋ง์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ
์ฒ๋ฅผ ์ฌ์ฉํ์ฌ UI๋ฅผ ๋
๋ฆฝ์ ์ธ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ก ๋๋์ด ๊ฐ๋ฐํ ์ ์๊ฒ ํฉ๋๋ค. ๊ฐ ์ปดํฌ๋ํธ๋ ์์ฒด์ ์ผ๋ก ์ํ๋ฅผ ๊ฐ์ง ์ ์๊ณ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
- ๋ถ๋ชจ ์ปดํ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ๋๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ ํ๋ฆ์ด ์์ธก ๊ฐ๋ฅํ๊ณ ๋๋ฒ๊น
์ด ์ฉ์ดํด์ง๋๋ค.
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ์ ํจ๊ป ๋ฆฌ์กํธ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์ปดํฌ๋ํธ๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๊ฒ ํฉ๋๋ค.
Q : ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ทธ์ ๋ํ ์ด์ ๋?
A :
- ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ : ๋ฆฌ๋์ค, ๋ทฐ, MobX๋ฑ๊ณผ ๊ฐ์ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ContextAPI : createContext๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด Context๋ฅผ ์์ฑํ๊ณ Context.Provider๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ญ์ํ๋ฅผ ์ ๊ณตํ๋ฉฐ value ํ๋กํผํฐ์๋ ๊ณต์ ํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๊ฐ์ฒด๊ฐ ์ ๋ฌ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ useContext ํ
์ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ ๋ด์์ Context์ ๊ฐ์ ์ฝ์ด์ต๋๋ค.

์ ์ญ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ์ด์ ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ์ค์์์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๋ฐ์ดํฐ ๊ฐ์ ํต์ ์ ๊ฐ์ํ๋๋ฉฐ ๋ณต์กํ ์ปดํฌ๋ํธ ๊ตฌ์กฐ์์ ํต์ ์ ๋จ์ํํ ์ ์์ต๋๋ค. ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ์ค๋ณต์ผ๋ก ์ ์งํ ํ์๊ฐ ์์ด์ ธ ์ฝ๋์ ๊ฐ๋
์ฑ์ด ์ข์์ง๋ฉฐ ํ์ผ์ ์ฉ๋์ด ์ต์ํ๋ ์ ์์ต๋๋ค.
๐ ๊ธฐํ, ์ธ์ฑ๋ฉด์
Q : ํ๊ณ ์ถ์ ์
๋ฌด, ์๋ก์ด ์ธ์ด ๋ญ๊ฐ ์๋์ง
Q : ํ์ฌ ํด์ฌ ์ด์
Q :