[WeCode] 4Week - #mapํ•จ์ˆ˜, KEY๐Ÿ”‘

UlongChaS2ยท2021๋…„ 6์›” 3์ผ
0

WeCode

๋ชฉ๋ก ๋ณด๊ธฐ
14/17
post-thumbnail

๐Ÿ™‹โ€โ™€๏ธ ์‚ฌ๋‹ด์œผ๋กœ ๋œฌ๊ทผ์—†์ด '์™œ mapํ•จ์ˆ˜ ๊ฒŒ์‹œ๋ฌผ์ด์ง€?' ๊ทธ๋ฆฌ๊ณ  React๋ฅผ ์„ธ์„ธํžˆ ์ ์ง€์•Š๊ณ  ๋„˜์–ด๊ฐ„๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ WeCode ์‹œ๋ฆฌ์ฆˆ๋Š” WeCode์—์„œ ๋ฐฐ์› ๋˜ ๊ฒƒ, assignment๋ฅผ ๊ธฐ๋กํ•˜๊ณ ์ž ์ ๋Š”๊ฑฐ๋ผ ๋‚ด์šฉ์ด ๋ณด๋žŒ์ฐจ์ง€ ์•Š๊ฒŒ ๋ณด์ผ ์ˆ˜๋Š” ์žˆ๋‹ค. ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์ด ๋‚˜์˜ค๋ฉด ๊ทธ ๋ถ€๋ถ„ ์‹œ๋ฆฌ์ฆˆ์— ๋” ์ถ”๊ฐ€๋กœ ๊ณ„์† ์ ์„ ์˜ˆ์ •์ด๋‹ค


map()

๋ฐฐ์—ด ๋‚ด์˜ ๋ชจ๋“  ์š”์†Œ ๊ฐ๊ฐ์— ๋Œ€ํ•˜์—ฌ ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

let numbers = [1, 4, 9];
let roots = numbers.map(x => x / 2);

๐Ÿ‘‰ roots๋Š” [1, 2, 3], numbers๋Š” ๊ทธ๋Œ€๋กœ [1, 4, 9]์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

  • mapํ•จ์ˆ˜์˜ ๊ฐ’์€ ์ด์ „์˜ ๊ฐ’์— ์˜ํ•ญ์„ ์ฃผ์ง€์•Š๊ณ  ์ƒˆ๋กœ์šด ๊ฐ’์„ ์ฃผ๊ฒŒ๋˜๋Š”๊ฒŒ mapํ•จ์ˆ˜์˜ ํฌ์ธํŠธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Component๋ฅผ ๋งŒ๋“ค ๋•Œ mapํ•จ์ˆ˜๋ฅผ ์จ์„œ ํ•œ ๊ฐœ์˜ Component๋กœ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ฐ ํ•ญ๋ชฉ์— ๊ณ ์œ ์˜ key ๊ฐ’์ด ์žˆ๋Š”๋ฐ ์ข‹๋‹ค

๐Ÿ”‘KEY ๊ฐ’์ด ํ•„์š”ํ•œ ์ด์œ ?

Key๋Š” React๊ฐ€ ์–ด๋–ค ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œํ• ์ง€ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์„ ๋•๋Š”๋‹ค.
๐Ÿ‘‰ Component๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ์žฌํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ ์›ํ•˜๋Š” ๋ถ€๋ถ„์— ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด๋ฉด ๊ฐ Component๋ฅผ ์‹๋ณ„ ํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ์ด ๋•Œ key๊ฐ€ ์žˆ์œผ๋ฉด ์ ‘๊ทผํ•˜๊ธฐ ์šฉ์ดํ•˜๋‹ค๋Š” ์†Œ๋ฆฌ์ด๋‹ค.

๐Ÿ”‘KEY๋Š” ์–ด๋””์— ์ง€์ •ํ•ด์ค˜์•ผ ํ•˜๋‚˜?

  • Key๋Š” ์—˜๋ฆฌ๋จผํŠธ์— ์•ˆ์ •์ ์ธ ๊ณ ์œ ์„ฑ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ์—˜๋ฆฌ๋จผํŠธ์— ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.
    ๐Ÿ‘‰ <ul>ํƒœ๊ทธ์™€ <li>ํƒœ๊ทธ๊ฐ€ ์žˆ๋‹ค๋ฉด ์‹ธ๊ณ  ์žˆ๋Š” <ul>๊ฐ€ ์•„๋‹Œ ๊ฐ <li>์— Key๊ฐ€ ํ•„์š”ํ•˜์—ฌ ๋ถ€์—ฌํ•œ๋‹ค.
  • map()์œผ๋กœ ๋ฐ˜๋ณตํ•˜๋Š” Component์˜ ์•ˆ์— ์žˆ๋Š” ์š”์†Œ๊ฐ€ ์•„๋‹Œ ๊ทธ ์ž์ฒด์˜ Component์— key๊ฐ’์„ ์ง€์ •ํ•ด์•ผํ•œ๋‹ค
  • ๋ณดํ†ต Key ๊ฐ’์€ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ์˜ ๊ณ ์œ ์˜ ID ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ์—†๋‹ค๋ฉด ์—˜๋ฆฌ๋จผํŠธ์˜ index๊ฐ’์œผ๋กœ Key ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Key ๊ฐ’์€ ๊ฐ™์€ ๋ฐฐ์—ด ์•ˆ์—์„œ๋Š” ๋˜‘๊ฐ™์€ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ณ ์œ ํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋‹ˆ ๊ทธ๋Ÿด ์ˆ˜ ์—†์ง€๋งŒ, ๋‹ค๋ฅธ ๋ฐฐ์—ด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ID๋ฅผ key ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

ํ•ญ๋ชฉ์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ๊ฒฝ์šฐ index๊ฐ’๋„ ๋ฐ”๋€Œ๊ธฐ ๋•Œ๋ฌธ์— ์˜๋„ํ–ˆ๋˜ ์—˜๋ฆฌ๋จผํŠธ์˜ ํ‚ค๊ฐ’์ด ๋‹ฌ๋ผ์ง€๊ฒŒ ๋˜์–ด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๊ฑฐ๋‚˜ Component์˜ state์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ


๐Ÿ˜ƒ๋Š๋‚€์ 
์ˆ˜์—…์„ ๋“ค์œผ๋ฉด์„œ ๋Œ€์ถฉ ์™œ key ๊ฐ’์„ ์ฃผ๋Š”์ง€๋Š” ์•Œ์•˜์ง€๋งŒ ๋ฌด์—‡ ๋•Œ๋ฌธ์— ๋™์ ์ธ ๊ฐ’(ex: index)์€ key ๊ฐ’์œผ๋กœ ์ฃผ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•˜์ง€ ์•Š๊ณ  ๋˜ ์ •ํ™•ํžˆ ์–ด๋””์— ์ง€์ •ํ•ด์ค˜์•ผํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์•„์ง๊นŒ์ง€ JavaScript๋ฅผ ๋†“์ง„ ๋ชปํ–ˆ์ง€๋งŒ ์ ์  React๋ž‘ ์นœํ•ด์ ธ์•ผ๋˜๊ฒ ๋‹ค.

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