TIL

์กฐํ˜„์ •ยท2023๋…„ 4์›” 25์ผ
0

2023.04.24.์›”

๐ŸŽˆ์™ธ๋ถ€ ๊ฐ•์˜ ๋“ฃ๊ธฐ ์‹œ์ž‘

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๋ฆฌ์•กํŠธ ์ˆ™๋ จ๊ฐ•์˜๋„ ์ดํ•ดํ•˜๊ณ  ์ถ”๊ฐ€๊ฐ•์˜๋„ ๋“ฃ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค. ๋‚˜๋Š” ๊ธฐ๋ณธ๊ฐ•์˜๋ถ€ํ„ฐ ์ดํ•ด๋ฅผ ์ž˜ ๋ชปํ•ด์„œ ๊ณ„์† ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ๋ฐ›๊ณ  ์žˆ๋‹ค. ์ž๊พธ๋งŒ ์ž ์ด ๋“ ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‚˜ ์›น์ข…๊ฐ•์˜ ๋ชจ๋‘ 2์ฃผ์ฐจ๊นŒ์ง€ ์ดํ•ดํ•˜๊ณ  3์ฃผ์ฐจ๋ถ€ํ„ฐ๋Š” ๊ณ„์† ๊พธ๋ฒ…๊พธ๋จน ์กธ๊ณ , ์ง‘์ค‘๋„ ๋ชปํ•˜๊ณ  ์ดํ•ด๋„ ๋ชปํ•˜๋Š” ์ƒํƒœ์ด๋‹ค. ์–ด์ œ๋Š” ์กธ๋”๋ผ๋„ ๋ณด๋ ค๊ณ  ๊ณ„์† ์ง„๋„๋ฅผ ๋‚˜๊ฐ”๋Š”๋ฐ, ๊ฒฐ๊ตญ ์—ฌ๋Ÿฌ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋Š”๋ฐ๋„ ์กธ๋ฉด์„œ ๋ด์„œ ๋จธ๋ฆฌ์— ํ•˜๋‚˜๋„ ์•ˆ ๋‚จ์•„์žˆ์—ˆ๋‹ค. ์ง„๋„๋ฅผ ๋”ฐ๋ผ๊ฐ€์ง€ ๋ชปํ•ด์„œ ๊ณ„์† ๊ณ ์—ญ์ด์—ˆ๋Š”๋ฐ, ๊ทธ๋ƒฅ ๋‚ด ์†๋„์™€ ์ˆ˜์ค€์— ๋งž์ถฐ์•ผ ๊ฒ ๋‹ค. ๋‚ด๊ฐ€ ์ง‘์ค‘์ด ๋˜๋Š” ์ˆ˜์ค€๊ณผ ์Šคํƒ€์ผ์˜ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ์„ฑ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์จ์•ผ ๊ฒ ๋‹ค.
-์• ํ”Œ์ฝ”๋”ฉ ๋ฆฌ์•กํŠธ ๊ฐ•์˜ : ํ• ์ธ์ฝ”๋“œ ์ ์šฉ๋ฐ›์•„ 7๋งŒ์›๋Œ€ ๊ฒฐ์žฌ
-๋…ธ๋งˆ๋“œ์ฝ”๋” ๋ฆฌ์•กํŠธ ๊ฐ•์˜ ๋“ฃ๊ธฐ ์‹œ์ž‘

๐ŸŽˆReact Lv.2 ๊ณผ์ œ

์‚ฌ์‹ค 2๋ช…์”ฉ ์ง์ง€์–ด์„œ React level2๊ณผ์ œ๋ฅผ ํ•ด์•ผ ํ•˜๊ณ  ๊ทธ๋Ÿฌ๋ ค๋ฉด ๋ฆฌ๋•์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  DucksํŒจํ„ด์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ณ .. ๋ญ ๊ทธ๋Ÿฐ ์กฐ๊ฑด์„ ๊ฐ–์ถ”์–ด์•ผ ํ•˜๋Š”๋ฐ, ์•„์ง ๋ฌด์Šจ ๋ง์ธ์ง€๋„ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€์„œ...๊ทธ๋ƒฅ ์ง์—๊ฒŒ ์–‘ํ•ด๋ฅผ ๊ตฌํ•˜๊ณ  ์ผ๋ฐฉ์ ์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์ง์ด๋ž‘ ๊ฐ™์ด ๊ณผ์ œ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ๋•Œ๋ฌธ์— ์ง€๋‚œ์ฃผ๋ถ€ํ„ฐ ์—„์ฒญ ๊ดด๋กœ์› ๋‹ค. ๊ฐ•์˜๋Š” ์†Œํ™”๋ฅผ ๋ชปํ•˜๊ณ  ๊ณผ์ œ๋Š” ํ•ด์•ผํ•˜๊ณ , ๋ฏผํ๊ฐ€ ๋ ๊นŒ ๋„ˆ๋ฌด ๋ฏธ์•ˆํ•˜๊ณ ...

โ—ํ•ด๊ฒฐ๋จ

โœ…๋นˆํด๋” ๋งŒ๋“ค์–ด ๋‘” ๊ฒŒ ์žˆ์–ด์„œ
ํ„ฐ๋ฏธ๋„์— yarn create react-app ์ƒˆํด๋”๋ช…(๋‚˜์ค‘ํด๋”)์ณค๋”๋‹ˆ

๋‚˜๋Š” ํ•œ์ฐธ ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  'cd ๋‚˜์ค‘ํด๋”๋ช…, yarn start ํ™”๋ฉด์— ๋‚˜์˜ด'์š”๋ ‡๊ฒŒ ๋  ๊ฑธ๋กœ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์—๋Ÿฌ๋œธ. ๊ตฌ๊ธ€๋ง์—์„œ ์ด๋ ‡๋‹ค๊ณ  ํ•จ.

์•Œ๊ณ ๋ณด๋‹ˆ yarn create..๋ฅผ yarn creaate๋ผ๊ณ  ์”€.ใ…Žใ…Ž ์ž˜ ์“ฐ๋‹ˆ๊นŒ ๋‹ค์šด๋กœ๋“œ๋จ

โœ…์™œ ๊ณ„์† ์—๋Ÿฌ๋‚˜๋‚˜ ํ–ˆ๋Š”๋ฐ ์š”๋ ‡๊ฒŒ 'set์ข‹์•„์š”'๋ฅผ ๋จผ์ € ์ผ์–ด์•ผ ํ•จ.

โ“ํ•ด๊ฒฐ ํ•„์š”

๐ŸŸฉ์• ํ”Œ์ฝ”๋”ฉ์ƒ˜์ด ์š”๋ ‡๊ฒŒ ํ•˜๋ฉด '๊ธ€์ˆ˜์ •'๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ์—ฌ์ž์ฝ”ํŠธ๋กœ ๋ฐ”๋€๋Œ”๋Š”๋ฐ ์•ˆ๋จ-> ram์— ๊ฐ€์„œ ['์—ฌ์ž์ฝ”ํŠธ',..]๋กœ ๋‚ด์šฉ ๋ฐ”๊ฟˆ.ํ•˜์ง€๋งŒ array๋ฅผ ์ˆ˜์ •ํ–ˆ์ง€ ๋ณ€์ˆ˜์— ์žˆ๋˜ ํ™”์‚ดํ‘œ๋Š” ์ˆ˜์ •์•ˆ๋จ. ์–˜๋Š” ์‹ ๊ทœ๋ž‘ ๊ธฐ์กดstate๊ฐ€ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ state๋ณ€๊ฒฝ ์•ˆํ•ด์คŒ.

๐ŸŸฉ(๊ฐ•์˜ ๋‚ด์šฉ ์ ์—ˆ๋Š”๋ฐ ์•„์ง ์ดํ•ด ์•ˆ๊ฐ„ ๋ถ€๋ถ„)state์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์นดํ”ผ๋ณธ ๋งŒ๋“ค์–ด์„œ ์ธ๋ฑ์Šค ๋งž์ถฐ์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•จ. ์ด๋•Œ [...]์„ ์จ์ค˜์•ผ ๋™์ž‘ ํ•จ. why?๋ณต์‚ฌ๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— copy๋Š” ๊ธฐ๋ณธstate๋ž‘ ๋‹ค๋ฅธ๋ฐ๋„ ์ˆ˜์ • ์•ˆ๋จ. ๊ธ€์ œ๋ชฉ์ด ๋ณ€์ˆ˜์— ์ €์žฅ๋˜์–ด์žˆ๋˜ ๊ฑด ํ™”์‚ดํ‘œ๋ฐ–์— ์—†์Œ,copy์— let๊ธ€์ œ๋ชฉ์— ์žˆ๋˜ ํ™”์‚ดํ‘œ๊ฐ€ ๋ณต์‚ฌ๋จ. ๋ณ€์ˆ˜1,๋ณ€์ˆ˜2ํ™”์‚ดํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด ๋ณ€์ˆ˜1==๋ณ€์ˆ˜2๋น„๊ตํ•ด๋„ true๋‚˜์˜ด. ์—ฌ์ž์ฝ”ํŠธ๋กœ ๋ฐ”๊พผ ํ›„์— console.lg(copy==๊ธ€์ œ๋ชฉ)์ฐ์œผ๋ฉด true๋‚˜์˜ด.
array.object๋Š” reference data type์ด๋ผ์„œ ๊ทธ๋Ÿผ.
[...๊ธ€์ œ๋ชฉ]:...๋Š” ๊ด„ํ˜ธ ๋ฒ—๊ฒจ์ฃผ์„ธ์š”๋ผ๋Š” ๋ฌธ๋ฒ•->[]๊ทธ ๋‹ค์Œ์— ๋‹ค์‹œ ๊ด„ํ˜ธ ์”Œ์–ด์ฃผ์„ธ์š”->์™„์ „ํžˆ ๋…๋ฆฝ์ ์ธ ์‚ฌ๋ณธ(์ด๋Ÿฌ๋ฉด ํ™”์‚ดํ‘œ๋„ ๋‹ฌ๋ผ์ง), ์ด์ œ๋Š” ์ƒˆ๋กœ์šด state๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ์ˆ˜์ • ์ž˜ ๋จ.


state๋ณ€๊ฒฝํ•จ์ˆ˜ ํŠน์ง•
๊ธฐ์กดstate==์‹ ๊ทœstate์˜ ๊ฒฝ์šฐ ๋ณ€๊ฒฝ ์•ˆํ•ด์คŒ
array/objectํŠน์ง•
arry/object ๋‹ด์€ ๋ณ€์ˆ˜์—” ํ™”์‚ดํ‘œ๋งŒ ์ €์žฅ๋จ
let arr =[1,2,3]; [1,2,3]์„ arr์— ๋„ฃ์–ด์ฃผ์„ธ์š”๊ฐ€ ์•„๋‹˜
[1,2,3]์€ RAM์˜ ๋ฏธ์ง€์˜ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฒƒ์ด๊ณ  ํ™”์‚ดํ‘œ๋งŒ
*state๊ฐ€ array/object๋ฉด shallow copy(deep copy)๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•จ

profile
๋งˆํ” ์‚ด์— ์ฝ”๋”ฉ๊ณต๋ถ€

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