๐Ÿ“Œ ๊ธฐ์ˆ  ๋ฉด์ ‘ _ ์‹ค์ „(1)

๐Ÿ“Œ ๊ธฐ์ˆ  ๋ฉด์ ‘ ์œ„์ฃผ

Q : ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

A : ๋™๊ธฐ ์ฝ”๋“œ๋Š” ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋˜๊ณ , ํ•œ ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ž‘์—…์œผ๋กœ ์ง„ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, ๋น„๋™๊ธฐ ์ฝ”๋“œ๋Š” ์ž‘์—…์ด ์‹œ์ž‘๋œ ํ›„์—๋„ ๋‹ค์Œ ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋™์‹œ์— ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

Q : ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น(๋น„ ๊ตฌ์กฐํ™” ํ• ๋‹น)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

A :
๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Structuring Destructuring)์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ณ€์ˆ˜๋ฅผ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์—์„œ ์ถ”์ถœํ•˜์—ฌ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์—์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ์‰ฝ๊ฒŒ ์ถ”์ถœํ•˜์—ฌ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

// ๋ฐฐ์—ด์—์„œ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(๋ฐฐ์—ด์— ์ˆœ์„œ์— ๋งž๊ฒŒ ํ• ๋‹น๋จ)
const numbers = [1, 2, 3];
const [a, b, c] = numbers;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3

// ๊ฐ์ฒด์—์„œ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(key๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ• ๋‹น๋จ)
const person = { name: 'John', age: 30 };
const { name, age } = person;
console.log(name); // John
console.log(age);  // 30

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 :

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