React ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค: Part 1 - ๋ฏธ์…˜์œผ๋กœ ๊นจ์šฐ์น˜๋Š” ๋ Œ๋”๋ง ๋ณธ์งˆ๊ณผ ์„ค๊ณ„

๋‹จ์ˆœํžˆ ๋“ฃ๊ณ  ๋๋‚˜๋Š” ๊ฐ•์˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” โ€œReact๋ฅผ ์ดํ•ดํ•˜๋Š” ์ˆœ๊ฐ„โ€์ด ์•„๋‹ˆ๋ผ โ€œReact๋ฅผ ์ง์ ‘ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„โ€์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋งค ์„น์…˜๋งˆ๋‹ค ๊ฐ•์˜์™€ ํ•จ๊ป˜ ๋ฏธ์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ์ง์ ‘ ํ’€๋ฉฐ, JSX, Virtual DOM, State, useEffect ๊ฐ™์€ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์†์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉฐ ์ตํžˆ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์™„๊ฐ•์„ ๋งˆ์ณค์„ ๋•Œ ๋‹น์‹ ์€ ๋‹จ์ˆœํžˆ React ๋ฌธ๋ฒ•์„ ์•„๋Š” ์ž…๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ผ, ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„๋ถ€ํ„ฐ ๋ Œ๋”๋ง ํ๋ฆ„๊นŒ์ง€ ์Šค์Šค๋กœ ์„ค๋ช…ํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. โ€œ๋“ฃ๊ธฐ๋งŒ ํ•˜๋Š” ์ˆ˜์—…์ด ์•„๋‹Œ, ์™„์„ฑํ•ด ๋‚˜๊ฐ€๋Š” ํ•™์Šต.โ€ React์˜ ๋ณธ์งˆ์„ ์ดํ•ดํ•˜๊ณ , ์„ ์–ธํ˜• UI์˜ ์„ธ๊ณ„๋ฅผ ์ง์ ‘ ์ฒดํ—˜ํ•˜์„ธ์š”.

(4.8) ์ˆ˜๊ฐ•ํ‰ 13๊ฐœ

์ˆ˜๊ฐ•์ƒ 196๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
๋ฏธ์…˜๊ธฐ๋ฐ˜
๋ฏธ์…˜๊ธฐ๋ฐ˜
ํ”„๋ก ํŠธ์—”๋“œ๊ธฐ์ดˆ
ํ”„๋ก ํŠธ์—”๋“œ๊ธฐ์ดˆ
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
๋ฏธ์…˜๊ธฐ๋ฐ˜
๋ฏธ์…˜๊ธฐ๋ฐ˜
ํ”„๋ก ํŠธ์—”๋“œ๊ธฐ์ดˆ
ํ”„๋ก ํŠธ์—”๋“œ๊ธฐ์ดˆ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.8

5.0

์•„์นจํ˜•๋‹ญ๊ณ ๊ธฐ

35% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

react api docs ๋กœ ์ฝ์—ˆ์„๋•Œ ๋ญ๋ถ€ํ„ฐ ์ฝ์–ด์•ผ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชฐ๋ผ์„œ ์–ด๋ ค์› ๋Š”๋ฐ ์›๋ฆฌ๋ถ€ํ„ฐ ์•Œ๊ฒŒ ๋˜๋‹ˆ๊นŒ ํŽธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ•์˜๋ฅผ ๋นจ๋ฆฌ ๋งŒ๋“ค์–ด์ฃผ์…จ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

5.0

Su Yeoun Lee

71% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ •์˜๋ฅผ ๋ช…ํ™•ํžˆ ์„ค๋ช…์„ ํ•ด์ฃผ์–ด์„œ ๊ฐœ๋…์„ ์ดํ•ด์‹œ์ผœ์ค๋‹ˆ๋‹ค. ํŠนํžˆ ์„ค๋ช…์— ๊ตฐ๋”๋”๊ธฐ๊ฐ€ ์—†์–ด ์‹œ๊ฐ„ ๋‚ญ๋น„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์„ธ์…˜์˜ ๋์— [ํ•„๋…]์„ ๋‘์–ด ํ•œ๋ฒˆ ๋” ๋ฆฌ๋งˆ์ธ๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ •๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ๋„ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋“ฃ๋‹ค ๋ณด๋ฉด ๋А๊ปด์ง€๋Š”๊ฒŒ ๊ฐ•์‚ฌ๋‹˜์ด ๊ฐ€๋ฅด์น˜๋Š”๋ฐ ์ง„์‹ฌ์ด๋‹ค๋Š” ๊ฒƒ์ด ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ๋ฆฌ์—‘ํŠธ๋ฅผ ๋ฐฐ์šฐ๋ ค๋Š” ๋ถ„๋“ค๊ป˜ ๊ฐ•์ถ”ํ•ฉ๋‹ˆ๋‹ค. ํ›„ํšŒ๋Š” ์—†์„ ๊ฒ๋‹ˆ๋‹ค.

5.0

์˜ค์„ธ์ง„

30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๊น”๋”ํ•œ ์„ค๋ช…๊ณผ ์‰ฌ์šด ์˜ˆ์ œ ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • React๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ์—”์ง„ ์œ„์—์„œ ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ๊ตฌ์กฐ์ ์œผ๋กœ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.

  • ์ง์ ‘ DOM์„ ์กฐ์ž‘ํ•˜๋˜ ์‚ฌ๊ณ ์—์„œ โ€œUI๋ฅผ ์„ ์–ธํ•˜๋Š” ์‚ฌ๊ณ โ€๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • โ€œ๋ Œ๋”๋ง = ๋ฐ์ดํ„ฐ(State) โ†’ ํ™”๋ฉด(UI)โ€์˜ ํ๋ฆ„์„ ์ฝ”๋“œ์™€ ๊ฐœ๋…์œผ๋กœ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • JSX๊ฐ€ Babel์„ ํ†ตํ•ด React.createElement()๋กœ ๋ฐ”๋€Œ๋Š” ๊ณผ์ •์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • UI๋ฅผ ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ๊ณ , props๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋ฉฐ ์กฐ๋ฆฝ์‹ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • state๊ฐ€ ๋ฐ”๋€Œ๋ฉด ํ™”๋ฉด์ด ์™œ, ์–ธ์ œ, ์–ด๋–ป๊ฒŒ ๋‹ค์‹œ ๊ทธ๋ ค์ง€๋Š”์ง€ ์›๋ฆฌ์ ์œผ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์„ ๋ณต์‚ฌยท๊ฐฑ์‹ ํ•˜๋Š” ํŒจํ„ด์„ ํ†ตํ•ด ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ Œ๋”๋ง์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฌ๋Ÿฌ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ํ•ฉ์ณ์ง€๋Š” ์ด์œ ์™€ React์˜ ๋ Œ๋”๋ง ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • ์ด์ „ ์ƒํƒœ(prev)๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ€์ ธ์™€ ์ƒˆ๋กœ์šด ์ƒํƒœ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํŒจํ„ด์„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ๋ถ€๋ชจ๊ฐ€ ์ฃผ๋Š” ๋ฐ์ดํ„ฐ(props)์™€ ๋‚ด๋ถ€์—์„œ ๋ณ€ํ•˜๋Š” ๋ฐ์ดํ„ฐ(state)์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ถ„๋ช…ํžˆ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

  • React์˜ โ€œ๋ฐ์ดํ„ฐ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ํ๋ฅธ๋‹คโ€๋Š” ์›์น™์„ ๊ตฌ์กฐ์ ์œผ๋กœ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • Virtual DOM์˜ diffing ๊ทœ์น™๊ณผ ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ ์กฐ๊ฑด์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋‚ด๋ถ€์—์„œ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ Œ๋”๋ง ๊ณผ์ •์„ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

  • React์˜ ํ•ต์‹ฌ ์ฒ ํ•™: ๋‹จ๋ฐฉํ–ฅ, ์„ ์–ธํ˜•, ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์„ ๋ชธ์— ์ตํž˜

  • children, props drilling, ๊ตฌ์กฐ ๋ถ„ํ•ด๋ฅผ ํ†ตํ•ด ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ์ž…๋ ฅ์ด๋‚˜ ๋ฒ„ํŠผ ํด๋ฆญ์— ๋ฐ˜์‘ํ•˜๋Š” ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ UI๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • React๊ฐ€ Virtual DOM์„ ๊ณ„์‚ฐํ•˜๊ณ  ์‹ค์ œ DOM์— ๋ฐ˜์˜ํ•˜๋Š” ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • DOM ๋ช…๋ น๋ฌธ ๋Œ€์‹  ๋ฐ์ดํ„ฐ์™€ UI๋ฅผ ์—ฐ๊ฒฐ์ง“๋Š” ์‚ฌ๊ณ ๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์Šต๋“ํ•ฉ๋‹ˆ๋‹ค.

  • ์™œ ์ด ๋ถ€๋ถ„์ด ๋‹ค์‹œ ๋ Œ๋”๋ง๋๋Š”๊ฐ€?๋ฅผ ์Šค์Šค๋กœ ์ถ”์ ํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ ์„น์…˜๋ณ„ ์‹ค์Šต๊ณผ ๋ฏธ์…˜์„ ํ†ตํ•ด โ€œ๋ Œ๋”๋ง์˜ ๋ณธ์งˆโ€์„ ์†์œผ๋กœ ๊ฒฝํ—˜ํ•˜๋ฉฐ ์ง„์งœ React ์‚ฌ๊ณ ๋ฅผ ์ตํž™๋‹ˆ๋‹ค.

๐ŸŽ“์ œ๋Œ€๋กœ ๋ฐฐ์šฐ๋Š” React: ๋ฏธ์…˜์œผ๋กœ ์™„์„ฑํ•˜๋Š” ์„ ์–ธํ˜• UI [๊ธฐ์ดˆํŽธ]

React๋Š” โ€œ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ํ™”๋ฉด์œผ๋กœ ์ด์–ด์ง€๋Š”๊ฐ€โ€๋ฅผ ์™„์ „ํžˆ ์ƒˆ๋กญ๊ฒŒ ์ •์˜ํ•œ ๋ Œ๋”๋ง ์—”์ง„์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋Š” React์˜ ๊ฒ‰๋ชจ์Šต์ด ์•„๋‹Œ ๋ณธ์งˆ,
์ฆ‰ ๋ Œ๋”๋ง์˜ ์›๋ฆฌ์™€ ์„ ์–ธํ˜• UI์˜ ์‚ฌ๊ณ  ๋ฐฉ์‹์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ฐจ๊ทผํžˆ ๋ฐฐ์šฐ๋Š” ์ž…๋ฌธ ์™„์„ฑํŽธ์ž…๋‹ˆ๋‹ค.

๋งŽ์€ ์ดˆ๋ณด์ž๊ฐ€ React๋ฅผ ๋ฐฐ์šธ ๋•Œ JSX๋‚˜ useState ๋ฌธ๋ฒ•๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ง€๋งŒ,
์ด ๊ฐ•์˜๋Š” โ€œ์™œ ์ด๋Ÿฐ ๋ฌธ๋ฒ•์ด ์ƒ๊ฒผ๋Š”๊ฐ€โ€์—์„œ ์ถœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
HTML โ†’ DOM โ†’ Virtual DOM โ†’ React ๋ Œ๋”๋ง ๊ตฌ์กฐ๋กœ ์ด์–ด์ง€๋Š” ํฐ ํ๋ฆ„์„ ์™„๋ฒฝํžˆ ์—ฐ๊ฒฐํ•˜๋ฉฐ,
React๊ฐ€ ์–ด๋–ป๊ฒŒ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š”์ง€, ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์™œ ๋‹ค์‹œ ๋ Œ๋”๋ง๋˜๋Š”์ง€,
๊ทธ ๋ชจ๋“  ๊ณผ์ •์„ ๋ˆˆ์œผ๋กœ ๋ณด๊ณ  ์ง์ ‘ ์‹ค์Šตํ•˜๋ฉด์„œ ์ฒด๋“ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงฑ ๊ฐ•์˜ ๊ตฌ์„ฑ์˜ ํ•ต์‹ฌ ์ฒ ํ•™

๐Ÿ“Œ โ€œ์ฝ”๋“œ๋ฅผ ์™ธ์šฐ๊ธฐ๋ณด๋‹ค ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋ผ.โ€
โ†’ JSX, props, state์˜ ๋™์ž‘์„ ๋ฌธ๋ฒ•์ด ์•„๋‹Œ ์›๋ฆฌ๋กœ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
๐Ÿ“Œ โ€œ๋ Œ๋”๋ง์€ ๋งˆ๋ฒ•์ด ์•„๋‹ˆ๋ผ ํ๋ฆ„์ด๋‹ค.โ€
โ†’ ์ƒํƒœ ๋ณ€ํ™” โ†’ Virtual DOM โ†’ ์‹ค์ œ ํ™”๋ฉด ๊ฐฑ์‹ ์˜ ๊ณผ์ •์ด ์†๋์œผ๋กœ ๋А๊ปด์ง‘๋‹ˆ๋‹ค.
๐Ÿ“Œ โ€œ์„ ์–ธํ˜• ์‚ฌ๊ณ ๋ฅผ ํ›ˆ๋ จํ•œ๋‹ค.โ€
โ†’ DOM ์กฐ์ž‘ ์ค‘์‹ฌ์˜ ๋ช…๋ นํ˜• ํŒจํ„ด์—์„œ ๋ฒ—์–ด๋‚˜, React์˜ ์„ ์–ธํ˜• ์‚ฌ๊ณ ๋ฐฉ์‹์„ ๋ชธ์œผ๋กœ ์ตํž™๋‹ˆ๋‹ค.
๐Ÿ“Œ โ€œ์‹ค์Šต ์ค‘์‹ฌ์˜ ๋ฏธ์…˜ ํ•™์Šตโ€
โ†’ ๊ฐ ์„น์…˜๋งˆ๋‹ค ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๋ฏธ์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

โœจ ์ด ๊ฐ•์˜์˜ ํŠน์ง•

  1. โ€˜๋ Œ๋”๋ง์˜ ๋ณธ์งˆโ€™์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ดํ•ดํ•˜๋Š” ์œ ์ผํ•œ ์ž…๋ฌธ ๊ฐ•์˜
    โ†’ React๊ฐ€ Virtual DOM์„ ๋น„๊ตํ•˜๊ณ , ์‹ค์ œ DOM์— ๋ฐ˜์˜ํ•˜๋Š” ๊ณผ์ •์„ ์ง์ ‘ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

  2. JSX, createElement, Virtual DOM๊นŒ์ง€ ๋‹จ๊ณ„๋ณ„ ์—ฐ๊ฒฐ
    โ†’ ๋‹จ์ˆœํžˆ JSX ๋ฌธ๋ฒ•์„ ์“ฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ทธ ๋‚ด๋ถ€์—์„œ ์–ด๋–ค ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ์ฝ”๋“œ ๋ ˆ๋ฒจ๋กœ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.

  3. State, props, ์ด๋ฒคํŠธ, ๋ Œ๋”๋ง์˜ ์™„์ „ํ•œ ์—ฐ๊ฒฐ ๊ณ ๋ฆฌ
    โ†’ โ€œ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ™”๋ฉด์ด ๋ฐ”๋€Œ๋Š” ์ด์œ โ€๋ฅผ ์ •ํ™•ํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  4. ๋ช…๋ นํ˜•์—์„œ ์„ ์–ธํ˜•์œผ๋กœ ์‚ฌ๊ณ  ์ „ํ™˜ ํ›ˆ๋ จ
    โ†’ โ€œ๋ฌด์—‡์„ ๋ณด์—ฌ์ค„๊นŒโ€ ์ค‘์‹ฌ์˜ React์‹ ์‚ฌ๊ณ ๋ฐฉ์‹์„ ํ›ˆ๋ จํ•ฉ๋‹ˆ๋‹ค.

  5. ๋ถˆ๋ณ€์„ฑ๊ณผ ๋ฐฐ์น˜ ์—…๋ฐ์ดํŠธ๊นŒ์ง€ ์ฒด๊ฐํ˜• ํ•™์Šต
    โ†’ state ๋ณ€๊ฒฝ ์‹œ ๋ Œ๋”๋ง ์ตœ์ ํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ DevTools๋ฅผ ํ†ตํ•ด ์ง์ ‘ ๊ด€์ฐฐํ•ฉ๋‹ˆ๋‹ค.

  6. ๋‹จ์ˆœํ•œ ์ฝ”๋”ฉ ์‹ค์Šต์ด ์•„๋‹Œ ๊ตฌ์กฐ์  ์‚ฌ๊ณ  ํ›ˆ๋ จ
    โ†’ ์ฝ”๋“œ ํ•œ ์ค„์„ ๋„˜์–ด โ€œReact์˜ ๋ Œ๋”๋ง ํ๋ฆ„ ์ „์ฒดโ€๋ฅผ ์ดํ•ดํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  7. ๋ชจ๋“  ๊ฐ•์˜๊ฐ€ ์‹ค์ „ ๋ฏธ์…˜๊ณผ ์—ฐ๊ณ„
    โ†’ Section๋ณ„ ๋ฏธ์…˜์„ ํ†ตํ•ด โ€œ์ดํ•ดํ•œ ๊ฐœ๋…์„ ์ง์ ‘ ์ฝ”๋“œ๋กœ ๊ฒ€์ฆโ€ํ•ฉ๋‹ˆ๋‹ค.

  8. ํ•œ ๋ฒˆ ๋ฐฐ์šฐ๋ฉด ์˜ค๋ž˜ ๋‚จ๋Š” โ€˜์›๋ฆฌ ์ค‘์‹ฌโ€™์˜ ๊ธฐ์ดˆ ์„ค๊ณ„
    โ†’ ๋‹จ์ˆœํ•œ ๋”ฐ๋ผํ•˜๊ธฐ๊ฐ€ ์•„๋‹Œ, React์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋„ ์Šค์Šค๋กœ ์‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋ ฅ์„ ๊ธฐ๋ฆ…๋‹ˆ๋‹ค.CRP ์ตœ์ ํ™”)์˜ ํ† ๋Œ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.


1๏ธโƒฃ React๊ฐ€ ์™œ ๋“ฑ์žฅํ–ˆ๋Š”์ง€: ๊ธฐ์กด ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋ฅผ ์งš์œผ๋ฉฐ ์„ ์–ธํ˜• UI์˜ ํ•„์š”์„ฑ์„ ๊นจ๋‹ซ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ DOM๊ณผ ๋ Œ๋”๋ง ๊ตฌ์กฐ๋ฅผ ๋ˆˆ์œผ๋กœ ์‹œ๊ฐํ™”: ํ™”๋ฉด์ด ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์ง€๊ณ  ๊ฐฑ์‹ ๋˜๋Š”์ง€ ์›๋ฆฌ๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„ ์‚ฌ๊ณ  ์ •๋ฆฝ: ํ™”๋ฉด์„ ์ž‘๊ฒŒ ๋‚˜๋ˆ„๊ณ  ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ์  ์‚ฌ๊ณ ๋ฅผ ์ตํž™๋‹ˆ๋‹ค.

5๏ธโƒฃ ๋ Œ๋”๋ง์˜ ๋ณธ์งˆ ์™„์ „ ์ •๋ณต: React๊ฐ€ ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์„ DevTools๋กœ ์ถ”์ ํ•˜๋ฉฐ ์ฒด๋“ํ•ฉ๋‹ˆ๋‹ค.

4๏ธโƒฃ ์ด๋ฒคํŠธ์™€ ์ƒํƒœ(State)์˜ ์—ฐ๊ฒฐ ๊ณ ๋ฆฌ ์ดํ•ด: ํด๋ฆญ์ด ์–ด๋–ป๊ฒŒ ํ™”๋ฉด ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ค๋Š”์ง€ ์ง์ ‘ ์‹คํ—˜ํ•ฉ๋‹ˆ๋‹ค.

6๏ธโƒฃ ๋ช…๋ นํ˜• โ†’ ์„ ์–ธํ˜• ์‚ฌ๊ณ  ์ „ํ™˜: โ€˜๋ฌด์—‡์„โ€™ ๊ทธ๋ฆด์ง€ ์„ ์–ธํ•˜๋Š” React์  ์‚ฌ๊ณ ๋ฒ•์„ ํ›ˆ๋ จํ•ฉ๋‹ˆ๋‹ค.

7๏ธโƒฃ ๋ถˆ๋ณ€์„ฑ๊ณผ ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์›๋ฆฌ: ์ƒํƒœ ๋ณ€๊ฒฝ ์‹œ ํ™”๋ฉด ๊ฐฑ์‹ ์ด ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.

8๏ธโƒฃ ์Šคํƒ€์ผ๋ง์˜ ์ „ ๊ณผ์ • ํ•™์Šต: Vanilla CSS, Modules, CSS-in-JS๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ์ ์žฌ์ ์†Œ ์ „๋žต์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

9๏ธโƒฃ ๋””์ž์ธ ํ† ํฐยท๋กœ์งยท๋ทฐ์˜ ๋ถ„๋ฆฌ(SoC): ๊ทœ๋ชจ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋กœ ํ™•์žฅํ•˜๋Š” ๊ฐ๊ฐ์„ ์ตํž™๋‹ˆ๋‹ค

๐Ÿ”Ÿ์‹ค๋ฌดํ˜• ๋ฏธ์…˜์œผ๋กœ ์™„์ „ ์ฒด๋“: ๋ฒ„ํŠผยทํ…Œ๋งˆยท์•„์ด์ฝ˜ ๋“ฑ UI๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ฉฐ React์˜ ํ๋ฆ„์„ ์†๋์œผ๋กœ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค.

HTMLยทCSS๊นŒ์ง„ ์•Œ์ง€๋งŒ, ํ™”๋ฉด์ด โ€œ์™œโ€ ๋ฐ”๋€Œ๋Š”์ง€ ๊ถ๊ธˆํ•œ ๋ถ„

React๋ฅผ ๋“ค์–ด๋ดค์ง€๋งŒ ๋ง‰์ƒ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๋Š” ๋ถ„


React๊ฐ€ ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ์ง„์งœ ์›๋ฆฌ๋ฅผ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ๋ถ„

DOM์ด ๋ญ”์ง€, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ™”๋ฉด์„ ์›€์ง์ด๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„

๊ฐœ๋…์€ ์•Œ๊ฒ ๋Š”๋ฐ ์ฝ”๋“œ๋กœ ์ง์ ‘ ์˜ฎ๊ธฐ๋ฉด ๋ง‰ํžˆ๋Š” ๋ถ„


React์˜ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ •๋ฆฌํ•ด๋‘๊ณ  ์‹ถ์€ ํ”„๋ก ํŠธ์—”๋“œ ์ดˆ์ž…์ž

๋ Œ๋”๋งยท์ƒํƒœ ๊ฐ™์€ ๋ง์„ ์ฒ˜์Œ ๋“ค์–ด๋ดค๊ฑฐ๋‚˜ ์•„์ง ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ„


๋ช…๋ นํ˜• ์ฝ”๋”ฉ ๋ฐฉ์‹์—์„œ ๋ฒ—์–ด๋‚˜, ๋” ํšจ์œจ์ ์ธ ์‚ฌ๊ณ ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์‹ถ์€ ๋ถ„


โ€œํ•œ ๋ฒˆ์ฏค React๋ฅผ ๋๊นŒ์ง€ ์ œ๋Œ€๋กœ ๋ฐฐ์›Œ๋ณด๊ณ  ์‹ถ๋‹คโ€๋Š” ๋งˆ์Œ์ด ์žˆ๋Š” ๋ถ„

์ˆ˜๊ฐ• ํ›„์—๋Š”

  • โ€œํ™”๋ฉด์ด ์™œ ์ด๋ ‡๊ฒŒ ๋ฐ”๋€Œ๋Š”์ง€โ€ ์ง์ ‘ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • HTMLยทCSSยทJS๊ฐ€ ์–ด๋–ป๊ฒŒ ํ•จ๊ป˜ ์ž‘๋™ํ•ด UI๋ฅผ ๊ทธ๋ฆฌ๋Š”์ง€ ์ดํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ๋ฒ„ํŠผ ํด๋ฆญ ํ•œ ๋ฒˆ์— ํ™”๋ฉด์ด ๊ฐฑ์‹ ๋˜๋Š” ๋ Œ๋”๋ง ์›๋ฆฌ๋ฅผ ์™„์ „ํžˆ ์ฒด๋“ํ•ฉ๋‹ˆ๋‹ค.

  • ์ƒํƒœ(state) ๊ฐœ๋…์„ ์ฝ”๋“œ๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ฉฐ ๋ณ€ํ™” ํ๋ฆ„์„ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • โ€œ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ๋ณต์‚ฌํ•ด์„œ ๊ต์ฒดํ•œ๋‹คโ€๋Š” ๋ถˆ๋ณ€์„ฑ ์‚ฌ๊ณ ๋ฐฉ์‹์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ชธ์— ๋ฐฐ์ž…๋‹ˆ๋‹ค.

  • ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์™€ ํ๋ฆ„ ์ œ์–ด(onClick, onChange ๋“ฑ)๊ฐ€ ์™œ ์ค‘์š”ํ•œ์ง€ ์Šค์Šค๋กœ ๋‚ฉ๋“ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • React๊ฐ€ ๋‘ ๋ฒˆ ๋ Œ๋”๋งํ•˜๋ฉฐ ์ˆœ์ˆ˜์„ฑ์„ ๊ฒ€์‚ฌํ•˜๋Š” Strict Mode์˜ ์ด์œ ๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ์ฒดยท๋ฐฐ์—ด ์ƒํƒœ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋‹ค๋ฃจ๋ฉฐ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ์ž‘์„ฑ ์Šต๊ด€์„ ์ตํž™๋‹ˆ๋‹ค.

  • Vanilla CSS, Modules, styled-components๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ํ˜„๋Œ€์  ์Šคํƒ€์ผ๋ง ์ „๋žต์„ ์Šต๋“ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฝ”๋“œ ํ•œ ์ค„๋งˆ๋‹ค โ€œํ™”๋ฉด์ด ์ด๋ ‡๊ฒŒ ๋ฐ”๋€Œ๋Š” ์ด์œ โ€๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ˆˆ์„ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐ŸŽฏ React Part 1 โ€“ ๋ฏธ์…˜ ์ •๋ฆฌํ‘œ


๐ŸŸฉ React ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์‹ค์Šต โ€” ํด๋ฆญ๋œ ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ์˜ ์ด๋ฆ„๊ณผ ์ธ๋ฑ์Šค ์ถœ๋ ฅํ•˜๊ธฐ
React์˜ ์ด๋ฒคํŠธ ์‹œ์Šคํ…œ์„ ์ฒ˜์Œ์œผ๋กœ ๊ฒฝํ—˜ํ•ด๋ณด๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
๊ฐ ํ•ญ๋ชฉ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, ์–ด๋–ค ํ•ญ๋ชฉ์ด ์„ ํƒ๋˜์—ˆ๋Š”์ง€ ์ด๋ฆ„๊ณผ ์ธ๋ฑ์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋ฉฐ
onClick ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๊ณผ์ •์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
JS ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ React์˜ ์ด๋ฒคํŠธ ๊ฐ์ฒด๊ฐ€ ์—ฐ๊ฒฐ๋˜๋Š” ์›๋ฆฌ๋ฅผ ์ง์ ‘ ์ฒดํ—˜ํ•ฉ๋‹ˆ๋‹ค.


๐ŸŸฅ React์—์„œ State์˜ ํž˜ ๋А๊ปด๋ณด๊ธฐ โ€” ๋ฒ„ํŠผ ํด๋ฆญ์œผ๋กœ ํ™”๋ฉด ์ˆซ์ž ์—…๋ฐ์ดํŠธํ•˜๊ธฐ
React๊ฐ€ ๋‹จ์ˆœํ•œ ํ™”๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ โ€œ์ƒํƒœ ๊ธฐ๋ฐ˜ ๋ Œ๋”๋ง ์—”์ง„โ€์ž„์„ ์‹ค๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ˆซ์ž๊ฐ€ ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ๋˜๋ฉฐ, useState๊ฐ€ ๋ Œ๋”๋ง๊ณผ ์—ฐ๊ฒฐ๋˜๋Š” ๊ณผ์ •์„ ๋ฐฐ์›๋‹ˆ๋‹ค.
UI๋Š” โ€œ๋ฐ์ดํ„ฐ์˜ ๊ฒฐ๊ณผ๋ฌผโ€์ด๋ผ๋Š” React์˜ ํ•ต์‹ฌ ์ฒ ํ•™์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸง ์ด๋ฒคํŠธ์™€ State ๊ฒฐํ•ฉ ์‹ค์Šต โ€” ํด๋ฆญ์œผ๋กœ ํ† ๊ธ€ ์ƒํƒœ ๋ฐ”๊พธ๊ธฐ
์ด๋ฒคํŠธ์™€ ์ƒํƒœ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ, ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ON/OFF๊ฐ€ ์ „ํ™˜๋˜๋Š” ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ UI๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋‹จ์ผ ์ƒํƒœ ๋ณ€์ˆ˜๊ฐ€ UI ์ „์ฒด๋ฅผ ๋ฐ”๊พธ๋Š” ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์šฐ๊ณ ,
setState๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๋ Œ๋”๊ฐ€ ๋‹ค์‹œ ์ผ์–ด๋‚˜๋Š” ํ๋ฆ„์„ ๋ชธ์œผ๋กœ ์ตํž™๋‹ˆ๋‹ค.

๐ŸŸช ์ˆœ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ์‹ค์Šต โ€” ์™ธ๋ถ€ ๋ณ€์ˆ˜ ์—†์ด ๋™์ผ ์ž…๋ ฅ โ†’ ๋™์ผ ์ถœ๋ ฅ ์œ ์ง€ํ•˜๊ธฐ
React ์ปดํฌ๋„ŒํŠธ์˜ ๋ณธ์งˆ์€ โ€œ์ˆœ์ˆ˜ ํ•จ์ˆ˜โ€๋ผ๋Š” ์ ์„ ์‹ค์Šต์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์™ธ๋ถ€ ๋ณ€์ˆ˜์— ์˜์กดํ•˜์ง€ ์•Š๊ณ , ๋™์ผํ•œ props๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ญ์ƒ ๋™์ผํ•œ ํ™”๋ฉด์ด ์ถœ๋ ฅ๋˜๋„๋ก ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ์˜ ์ค‘์š”์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸฆ ๋„์‹œ๋งŒ ๋ฐ”๊ฟจ๋Š”๋ฐ ํ™”๋ฉด์ด ์•ˆ ๋ฐ”๋€๋‹ค๊ณ ? โ€” ์ค‘์ฒฉ ๊ฐ์ฒด state๋ฅผ โ€˜๋ณต์‚ฌโ€™๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ
React์˜ ์ƒํƒœ๋Š” ์–•์€ ๋น„๊ต(์ฐธ์กฐ๊ฐ’ ๋น„๊ต)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์„ ์‹ค๋ฌด ์‚ฌ๋ก€๋กœ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด ๋‚ด๋ถ€ ์ผ๋ถ€๋งŒ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ๋ณต์‚ฌ๋ฅผ ํ†ตํ•ด ์ƒˆ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•จ์„ ์ฝ”๋“œ๋กœ ์ฒดํ—˜ํ•ฉ๋‹ˆ๋‹ค.
๋ถˆ๋ณ€์„ฑ(immutability)์˜ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€๋Š” ํ•ต์‹ฌ ์‹ค์Šต์ž…๋‹ˆ๋‹ค.

๐ŸŸฉ ํ•  ์ผ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ ํ™”๋ฉด์ด ์•ˆ ๋ฐ”๋€Œ์–ด์š”! โ€” ๋ฐฐ์—ด ์—…๋ฐ์ดํŠธ์—์„œ ๋ถˆ๋ณ€์„ฑ์„ ์ง€ํ‚ค๋Š” ์„ธ ๊ฐ€์ง€ ๊ธฐ์ˆ 
๋ฐฐ์—ด ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ push ๋Œ€์‹  concat, filter, map ๊ฐ™์€ ์ƒˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜ ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
React๊ฐ€ ๋ณ€๊ฒฝ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ์›์ธ๊ณผ,
๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด ํ™”๋ฉด์ด ์ฆ‰์‹œ ๊ฐฑ์‹ ๋˜๋Š” ์ด์œ ๋ฅผ ๋ช…ํ™•ํžˆ ๋ฐฐ์›๋‹ˆ๋‹ค.

๐ŸŸช ์™œ ์ด๋ฆ„์ด ๋ฐ”๋€Œ์—ˆ๋Š”๋ฐ ํ™”๋ฉด์€ ๊ทธ๋Œ€๋กœ์ฃ ? โ€” ๋ฐฐ์—ด ์† ์ค‘์ฒฉ ๊ฐ์ฒด๊นŒ์ง€ ์•ˆ์ „ํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ
๋ฐฐ์—ด ์•ˆ์— ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด ์žˆ์„ ๋•Œ์˜ ๋‚œ์ด๋„ ๋†’์€ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
map์œผ๋กœ ํŠน์ • ๊ฐ์ฒด๋งŒ ์ฐพ์•„ ๋ณต์‚ฌ ํ›„ ๋ณ€๊ฒฝํ•˜๋Š” ํŒจํ„ด์„ ์ตํžˆ๊ณ ,
์ฐธ์กฐ๊ฐ€ ๋‹ฌ๋ผ์ ธ์•ผ React๊ฐ€ ๋‹ค์‹œ ๋ Œ๋”๋ง๋œ๋‹ค๋Š” ๊ตฌ์กฐ๋ฅผ ๊นŠ์ด ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸง ์ฟ ํฐ ํ•œ ๋ฒˆ์— ์ ์šฉ! โ€” ์กฐ๊ฑด์— ๋งž๋Š” ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์„ ๋ถˆ๋ณ€์„ฑ์œผ๋กœ ์ผ๊ด„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ
์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” โ€œ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ ๋™์‹œ์— ์—…๋ฐ์ดํŠธโ€ ํŒจํ„ด์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
map๊ณผ ์กฐ๊ฑด๋ฌธ์„ ๊ฒฐํ•ฉํ•ด ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ•ญ๋ชฉ๋งŒ ๋ณ€๊ฒฝํ•˜๊ณ ,
React ๋ Œ๋”๋ง์ด ๋ฐฐ์—ด ์ „์ฒด์— ์–ด๋–ป๊ฒŒ ๋ฐ˜์˜๋˜๋Š”์ง€ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸซ ํ˜•์ œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์„œ๋กœ ํ†ตํ•˜๋Š” ๋น„๊ฒฐ โ€” ์ƒํƒœ๋ฅผ ๋ถ€๋ชจ๋กœ ๋Œ์–ด์˜ฌ๋ ค ๋™๊ธฐํ™”์‹œํ‚ค๊ธฐ
๋‘ ํ˜•์ œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋™์ผํ•œ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
โ€œ์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ(Lifting State Up)โ€ ๊ฐœ๋…์„ ๋ฐฐ์šฐ๋ฉฐ,
๋ฐ์ดํ„ฐ ํ๋ฆ„์ด ๋‹จ๋ฐฉํ–ฅ์ž„์„ ์ดํ•ดํ•˜๊ณ  props ์ „๋‹ฌ์˜ ์ค‘์š”์„ฑ์„ ์‹ค๊ฐํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸฅ React๊ฐ€ ์ง์ ‘ ๊ฐ’์„ ๊ด€๋ฆฌํ•œ๋‹ค! โ€” ์ œ์–ด ์ปดํฌ๋„ŒํŠธ๋กœ ๋‹จ์ผ ์ž…๋ ฅ ์ œ์–ดํ•˜๊ธฐ
์ž…๋ ฅ ํผ์—์„œ ๊ฐ’์ด DOM์— ์ง์ ‘ ์ €์žฅ๋˜์ง€ ์•Š๊ณ , React state๊ฐ€ ์ด๋ฅผ โ€œ๋Œ€์‹  ๊ด€๋ฆฌโ€ํ•˜๋Š” ์›๋ฆฌ๋ฅผ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.
value์™€ onChange์˜ ์—ฐ๊ฒฐ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ ,
์ œ์–ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด ํผ ์ž…๋ ฅ์ด ์™„์ „ํžˆ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸง ํšŒ์›๊ฐ€์ž… Form ๋งŒ๋“ค๊ธฐ โ€” ์—ฌ๋Ÿฌ Input์„ ๊ฐ์ฒด State๋กœ ์ œ์–ดํ•˜๊ธฐ
ํผ์ด ์ปค์ง€๋ฉด ๊ฐ ์ž…๋ ฅ๊ฐ’์„ ๊ฐœ๋ณ„๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.
{ name, email, password } ํ˜•ํƒœ์˜ ๊ฐ์ฒด state๋กœ ๋ฌถ์–ด
์ž…๋ ฅ ๋ณ€ํ™”๋งˆ๋‹ค setState({ ...prev, [key]: value })๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ํŒจํ„ด์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

๐ŸŸช ๋‚ด ์ทจํ–ฅ ์„ค์ • ํผ โ€” SelectยทCheckboxยทRadio๋ฅผ ๋ชจ๋‘ ์ œ์–ด ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ค๊ธฐ
ํผ์˜ ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ํƒ€์ž…์„ ๋ชจ๋‘ React state์™€ ์—ฐ๊ฒฐํ•ด โ€œ๋‹จ์ผ ๋ฐ์ดํ„ฐ ์†Œ์Šคโ€๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ๋™์ž‘ ๋Œ€์‹  React๊ฐ€ ์ง์ ‘ ๊ฐ’์„ ํ†ต์ œํ•œ๋‹ค๋Š” ๊ฐœ๋…์„ ๋ช…ํ™•ํžˆ ์ฒด๋“ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸฆ ํšŒ์›๊ฐ€์ž… ํผ ์™„์„ฑํ•˜๊ธฐ โ€” ์ œ์ถœ ํ๋ฆ„๊ณผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ตฌํ˜„
ํผ ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜๊ณ , ์ œ์ถœ ์‹œ ์กฐ๊ฑด์— ๋งž์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ๋ฆ„์„ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.
onSubmit ์ด๋ฒคํŠธ, preventDefault(), ๊ฐ„๋‹จํ•œ ์œ ํšจ์„ฑ ๋กœ์ง์„ ์ข…ํ•ฉ์ ์œผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
React๋กœ โ€œ์ƒํƒœ ๊ธฐ๋ฐ˜ ํผ ๋กœ์งโ€์„ ์ง์ ‘ ์„ค๊ณ„ํ•ด ๋ณด๋Š” ์‹ค๋ฌดํ˜• ๊ณผ์ œ์ž…๋‹ˆ๋‹ค.

๐ŸŸฉ ๋‹คํฌ ๋ชจ๋“œ ํ† ๊ธ€ โ€” useEffect(โ€ฆ, [dark])๋กœ body ํด๋ž˜์Šค ๋™๊ธฐํ™”
useEffect์˜ ์˜์กด์„ฑ ๋ฐฐ์—ด์„ ํ™œ์šฉํ•ด ์™ธ๋ถ€ ํ™˜๊ฒฝ(DOM)๊ณผ React ์ƒํƒœ๋ฅผ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
state ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค body.classList๋ฅผ ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ํ•˜์—ฌ
React๊ฐ€ ์‹ค์ œ HTML ์ƒํƒœ๊นŒ์ง€ ์ œ์–ดํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ตํž™๋‹ˆ๋‹ค.

๐ŸŸฆ useEffect๋กœ HTTP ์š”์ฒญ ๋ณด๋‚ด๊ธฐ (JSONPlaceholder ์‹ค์Šต)
์‹ค์ œ API ํ˜ธ์ถœ ํ๋ฆ„์„ ๊ฒฝํ—˜ํ•˜๋ฉฐ useEffect๊ฐ€ โ€œ๋ Œ๋”๋ง ์ดํ›„ ์‹คํ–‰๋˜๋Š” ์‚ฌ์ด๋“œ์ดํŽ™ํŠธโ€์ž„์„ ๋ฐฐ์›๋‹ˆ๋‹ค.
fetch/axios๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ๋กœ๋”ฉยท์„ฑ๊ณตยท์—๋Ÿฌ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋ณธ ํŒจํ„ด์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸฉ ๋‹คํฌ ๋ชจ๋“œ ํ† ๊ธ€ โ€” useEffect(โ€ฆ, [dark])๋กœ body ํด๋ž˜์Šค ๋™๊ธฐํ™”
useEffect์˜ ์˜์กด์„ฑ ๋ฐฐ์—ด์„ ํ™œ์šฉํ•ด ์™ธ๋ถ€ ํ™˜๊ฒฝ(DOM)๊ณผ React ์ƒํƒœ๋ฅผ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
state ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค body.classList๋ฅผ ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ํ•˜์—ฌ
React๊ฐ€ ์‹ค์ œ HTML ์ƒํƒœ๊นŒ์ง€ ์ œ์–ดํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ตํž™๋‹ˆ๋‹ค.

๐ŸŸฆ useEffect๋กœ HTTP ์š”์ฒญ ๋ณด๋‚ด๊ธฐ (JSONPlaceholder ์‹ค์Šต)
์‹ค์ œ API ํ˜ธ์ถœ ํ๋ฆ„์„ ๊ฒฝํ—˜ํ•˜๋ฉฐ useEffect๊ฐ€ โ€œ๋ Œ๋”๋ง ์ดํ›„ ์‹คํ–‰๋˜๋Š” ์‚ฌ์ด๋“œ์ดํŽ™ํŠธโ€์ž„์„ ๋ฐฐ์›๋‹ˆ๋‹ค.
fetch/axios๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ๋กœ๋”ฉยท์„ฑ๊ณตยท์—๋Ÿฌ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋ณธ ํŒจํ„ด์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸฉ Mission X โ€” ์š”์ฒญ ์ทจ์†Œ & ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๊ณ ๋„ํ™” + axios ์ธ์Šคํ„ด์Šค ์‹ค๋ฌด ํŒจํ„ด
API ํ˜ธ์ถœ ์ค‘ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜, ๋น ๋ฅด๊ฒŒ ์—ฐ์† ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ
AbortController์™€ axios ์ทจ์†Œ ํ† ํฐ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์š”์ฒญ์„ ์ทจ์†Œํ•˜๋Š” ์‹ค๋ฌด ํŒจํ„ด์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ๊ณตํ†ต ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋กœ์ง์„ axios ์ธ์Šคํ„ด์Šค์— ์ ์šฉํ•˜์—ฌ ์ค‘๋ณต์„ ์ค„์ด๋Š” ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.

๐ŸŸฉ Mission Y โ€” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ํŒจ์นญ ํ›… ๋งŒ๋“ค๊ธฐ: useFetchProducts
์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ํŒจํ„ด์„ ์ปค์Šคํ…€ ํ›…(useFetch)์œผ๋กœ ์ถ”์ƒํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ๋กœ๋”ฉยท์—๋Ÿฌยท๊ฒฐ๊ณผ๊ฐ’์„ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜๊ณ , ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์†์‰ฝ๊ฒŒ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
์‹ค๋ฌด ์ˆ˜์ค€์˜ React ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์ฒดํ—˜ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

๐Ÿ’ป Node.js (v18 ์ด์ƒ) ์ด ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ๋ฐ”๋กœ ์‹ค์Šต ๊ฐ€๋Šฅ
๐ŸŒ ๋ธŒ๋ผ์šฐ์ €๋งŒ์œผ๋กœ๋„ CodeSandbox ๋“ฑ์—์„œ ์‹ค์Šต ๊ฐ€๋Šฅ
๐Ÿชถ HTMLยทCSSยทJS ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๋งŒ ์•Œ๋ฉด ์ถฉ๋ถ„ (์™„์ „ ์ดˆ์‹ฌ์ž๋„ OK)
๐Ÿงฉ ๋ชจ๋“  ์„น์…˜์€ โ€œ๊ฐœ๋… โ†’ ์‹œ๊ฐํ™” โ†’ ์‹ค์Šต โ†’ ๋ฏธ์…˜โ€ ์ˆœ์„œ๋กœ ๊ตฌ์„ฑ
๐Ÿ“˜ ๋ชจ๋“  ๊ฐ•์˜ PDF ํ•™์Šต์ž๋ฃŒ ์ œ๊ณต (๊ฐœ๋… ์š”์•ฝ + ๋ฏธ์…˜ ํ•ด์„ค ํฌํ•จ)
๐Ÿง  ์ด๋ก ๋ณด๋‹ค โ€œ์ง์ ‘ ์‹คํ–‰ํ•ด๋ณด๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๊ด€์ฐฐํ•˜๋Š” ๊ณผ์ •โ€์— ์ง‘์ค‘
๐Ÿงฐ Visual Studio Code / Vite ๊ธฐ์ค€ ์˜ˆ์ œ ํฌํ•จ
โšก๏ธ React์˜ โ€œ๊ฒ‰๋ชจ์Šตโ€์ด ์•„๋‹Œ โ€œ๋™์ž‘ ์›๋ฆฌโ€ ์ค‘์‹ฌ์œผ๋กœ ์„ค๋ช…

๐Ÿ“˜ ํ•™์Šต ์ž๋ฃŒ

  • ๐Ÿงพ ๊ฐ•์˜ PDF ๊ต์žฌ

    • ๋ชจ๋“  ์„น์…˜๋ณ„ ํ•ต์‹ฌ ๊ฐœ๋… ์š”์•ฝ

    • JSX, state, useEffect, ๋ Œ๋”๋ง ํ๋ฆ„ ๋“ฑ ๋‹จ๊ณ„๋ณ„ ์‹œ๊ฐ ์ž๋ฃŒ

    • ์ฝ”๋“œ ์Šค๋‹ˆํŽซ + ์ฃผ์„ ํ•ด์„ค + DevTools ์Šคํฌ๋ฆฐ์ƒท ํฌํ•จ

    • ๋ณต์Šต์šฉ ๋ฏธ๋‹ˆ ํ€ด์ฆˆ์™€ โ€œํ•ต์‹ฌ ์š”์•ฝ ์ฒดํฌ๋ฆฌ์ŠคํŠธโ€ ์ˆ˜๋ก

  • ๐Ÿ’ป ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ (ZIP)

    • Section 1~10 ์ „์ฒด ์˜ˆ์ œ + ๊ฐ ๋ฏธ์…˜ ์ •๋‹ต ์ฝ”๋“œ

    • ์ฃผ์„๊ณผ ํ•จ๊ป˜ ๊ตฌ์กฐ๋ณ„๋กœ ์ •๋ฆฌ๋˜์–ด ์žˆ์–ด ์‹ค์Šต ๋ณต์Šต์— ์ตœ์ ํ™”

  • ๐Ÿงฉ ์ถ”๊ฐ€ ์‹ค์Šต ๋ฏธ์…˜ PDF

    • ๊ฐ ์„น์…˜์˜ ๊ฐœ๋…์„ ๋ฐ”๋กœ ์‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด๋„ˆ์Šค ๊ณผ์ œ

    • DOM ๊ตฌ์กฐยท๋ Œ๋”๋ง ํŠธ๋ฆฌยท์ด๋ฒคํŠธ ํ๋ฆ„ ๊ด€์ฐฐ์šฉ ์—ฐ์Šต ๋ฌธ์ œ ํฌํ•จ

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • React๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์ดˆ๊ธ‰ ๊ฐœ๋ฐœ์ž

  • HTML/CSS/JS๋งŒ ํ•ด์™”๋˜ ํ”„๋ก ํŠธ์—”๋“œ ์ž…๋ฌธ์ž

  • ๊ธฐ์กด React ๊ฒฝํ—˜์€ ์žˆ์œผ๋‚˜ ๊ฐœ๋…์ด ๋ชจํ˜ธํ•œ ์‚ฌ๋žŒ

  • ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ๊ฐ๊ฐ์„ ํ‚ค์šฐ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • React์˜ ๋‚ด๋ถ€ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • ํ”„๋ก ํŠธ์—”๋“œ๋กœ ์ง„๋กœ๋ฅผ ์ „ํ™˜ํ•˜๋ ค๋Š” ๋ฐฑ์—”๋“œ/ํ’€์Šคํƒ ๊ฐœ๋ฐœ์ž

  • JSX ๋ฌธ๋ฒ•์ด ๋‹จ์ˆœํ•œ HTML ํ™•์žฅ์œผ๋กœ ๋ณด์˜€๋˜ ์‚ฌ๋žŒ

  • React ํ›…์Šค(useState/useEffect) ํ•™์Šต์„ ์•ž๋‘” ์˜ˆ๋น„ ํ•™์Šต์ž

  • React ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉฐ โ€˜๋ Œ๋”๋ง ๋ฃจํ”„โ€™๋‚˜ โ€˜์ƒํƒœ ๊ผฌ์ž„โ€™์„ ๊ฒช์€ ์‚ฌ๋žŒ

  • React๋ฅผ ๋‹จ์ˆœํžˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ โ€˜์„ค๊ณ„โ€™ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์‚ฌ๋žŒ

  • React๋ฅผ โ€œ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌโ€๊ฐ€ ์•„๋‹Œ โ€œ๋ Œ๋”๋ง ์—”์ง„โ€์œผ๋กœ ๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • React ์ฝ”๋“œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋ฉฐ ๊ตฌ์กฐ์  ์ดํ•ด๋ฅผ ์Œ“๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • useState, props, ๋ Œ๋”๋ง ํƒ€์ด๋ฐ์˜ ๊ด€๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ UI ํ”„๋ ˆ์ž„์›Œํฌ ์ „๋ฐ˜(Vue, Svelte ๋“ฑ)์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋„“ํžˆ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • React๋ฅผ ํ•™์Šต ์ค‘์ธ ๋Œ€ํ•™์ƒยท๋น„์ „๊ณต์ž

  • ๊ธฐ์กด ํ”„๋ก ํŠธ์—”๋“œ ๊ฒฝํ—˜์ž ์ค‘ โ€œReact ์ฒ ํ•™โ€์„ ๋ช…ํ™•ํžˆ ์–ธ์–ดํ™”ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • ๋ฉด์ ‘ ๋Œ€๋น„๋‚˜ ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ์ค€๋น„ํ•˜๋Š” ์ทจ์ค€์ƒ ๊ฐœ๋ฐœ์ž

  • ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • HTML๊ณผ DOM ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ดํ•ด

  • ๊ธฐ๋ณธ์ ์ธ CSS ์ž‘์„ฑ ๋Šฅ๋ ฅ

  • JavaScript์˜ ๊ธฐ์ดˆ ๋ฌธ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”
nhcodingstudio์ž…๋‹ˆ๋‹ค.

1,352

๋ช…

์ˆ˜๊ฐ•์ƒ

68

๊ฐœ

์ˆ˜๊ฐ•ํ‰

30

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

16

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”, ์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค๋Š” ์นด๋„ค๊ธฐ ๋ฉœ๋ก , ์›Œ์‹ฑํ„ด, ํ† ๋ก ํ† , ์›Œํ„ฐ๋ฃจ ๋“ฑ ๋ถ๋ฏธ์˜ ์ฃผ์š” ๋Œ€ํ•™์—์„œ ์ปดํ“จํ„ฐ๊ณตํ•™์„ ์ „๊ณตํ•˜๊ณ , Google, Microsoft, Meta ๋“ฑ ๊ธ€๋กœ๋ฒŒ IT ๊ธฐ์—…์—์„œ ์‹ค๋ฌด ๊ฒฝํ—˜์„ ์Œ“์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•จ๊ป˜ ๋งŒ๋“  ๊ต์œก ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ๋ฏธ๊ตญ๊ณผ ์บ๋‚˜๋‹ค์˜ ์ปดํ“จํ„ฐ๊ณตํ•™ ์ „๊ณต์ž๋“ค๋ผ๋ฆฌ ํ•จ๊ป˜ ๊ณต๋ถ€ํ•˜๋ฉฐ ์„ฑ์žฅํ•˜๊ณ ์ž ๋งŒ๋“  ์Šคํ„ฐ๋”” ๋ชจ์ž„์—์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋Œ€ํ•™, ๋‹ค๋ฅธ ์‹œ๊ฐ„๋Œ€์— ์žˆ์—ˆ์ง€๋งŒ ํ•จ๊ป˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์„œ๋กœ์—๊ฒŒ ๋ฐฐ์šด ๊ทธ ์‹œ๊ฐ„์€ ๋งค์šฐ ํŠน๋ณ„ํ–ˆ๊ณ , ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

โ€œ์šฐ๋ฆฌ๊ฐ€ ๊ณต๋ถ€ํ•˜๋˜ ์ด ๋ฐฉ์‹, ๊ทธ๋Œ€๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋„ ์ „ํ•˜๋ฉด ์–ด๋–จ๊นŒ?โ€

๊ทธ ๋ฌผ์Œ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค์˜ ์ถœ๋ฐœ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ๋Š” ์•ฝ 30๋ช…์˜ ํ˜„์ง ๊ฐœ๋ฐœ์ž์™€ ์ปดํ“จํ„ฐ๊ณตํ•™ ์ „๊ณต ๋Œ€ํ•™์ƒ๋“ค์ด ๊ฐ์ž์˜ ์ „๋ฌธ ๋ถ„์•ผ๋ฅผ ๋งก์•„, ์ž…๋ฌธ๋ถ€ํ„ฐ ์‹ค์ „๊นŒ์ง€ ์•„์šฐ๋ฅด๋Š” ์ปค๋ฆฌํ˜๋Ÿผ์„ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ  ๊ฐ•์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ์ง€์‹ ์ „๋‹ฌ์„ ๋„˜์–ด, ์ง„์งœ ๊ฐœ๋ฐœ์ž์˜ ์‹œ์„ ์œผ๋กœ ๋ฐฐ์šฐ๊ณ  ํ•จ๊ป˜ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

โ€œ์ง„์งœ ๊ฐœ๋ฐœ์ž๋Š”, ์ง„์งœ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.โ€

์ €ํฌ๋Š” ์›น ๊ฐœ๋ฐœ์˜ ์ „ ๊ณผ์ •์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ฒด๊ณ„์ ์œผ๋กœ ๋‹ค๋ฃจ๋˜, ์ด๋ก ์— ๋จธ๋ฌด๋ฅด์ง€ ์•Š๊ณ  ์‹ค์Šต๊ณผ ์‹ค์ „ ์ค‘์‹ฌ์˜ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ์‹ค๋ ฅ์„ ํ‚ค์›Œ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
์ˆ˜๊ฐ•์ƒ ํ•œ ์‚ฌ๋žŒ, ํ•œ ์‚ฌ๋žŒ์˜ ์„ฑ์žฅ์„ ํ•จ๊ป˜ ๊ณ ๋ฏผํ•˜๊ณ  ์ด๋Œ์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ์ฒ ํ•™์ž…๋‹ˆ๋‹ค.

๐ŸŽฏ ์šฐ๋ฆฌ์˜ ์ฒ ํ•™์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.
"์ง„์ •ํ•œ ๋ฐฐ์›€์€ ์‹ค์ฒœ์—์„œ ์˜ค๊ณ , ์„ฑ์žฅ์€ ํ•จ๊ป˜ํ•  ๋•Œ ์™„์„ฑ๋œ๋‹ค."

๊ฐœ๋ฐœ์„ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ์ž…๋ฌธ์ž๋ถ€ํ„ฐ, ์‹ค๋ฌด ๋Šฅ๋ ฅ์„ ํ‚ค์šฐ๊ณ  ์‹ถ์€ ์ทจ์—… ์ค€๋น„์ƒ, ์ง„๋กœ๋ฅผ ํƒ์ƒ‰ ์ค‘์ธ ์ฒญ์†Œ๋…„๊นŒ์ง€.
์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค๋Š” ๋ชจ๋‘์˜ ์ถœ๋ฐœ์ ์ด์ž, ํ•จ๊ป˜ ๊ฑท๋Š” ๋“ ๋“ ํ•œ ๋™๋ฐ˜์ž๊ฐ€ ๋˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ, ํ˜ผ์ž ๊ณ ๋ฏผํ•˜์ง€ ๋งˆ์„ธ์š”.
์šฐ๋ฆฌ๋™๋„ค์ฝ”๋”ฉ ์ŠคํŠœ๋””์˜ค๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์„ฑ์žฅ์„ ํ•จ๊ป˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


Welcome to Neighborhood Coding Studio!

Neighborhood Coding Studio was founded by a team of developers who studied computer science at top North American universities such as Carnegie Mellon, the University of Washington, the University of Toronto, and the University of Waterloo, and went on to gain hands-on experience at global tech companies like Google, Microsoft, and Meta.

It all began as a study group formed by computer science students across the U.S. and Canada, created to grow together by sharing knowledge, solving problems, and learning from one another.
Though we were attending different schools in different time zones, the experience was so meaningful that it led us to one simple thought:

โ€œWhat if we shared this way of learning with others?โ€

That thought became the foundation of Neighborhood Coding Studio.

Today, we are a team of around 30 active developers and computer science students, each taking responsibility for their area of expertiseโ€”designing and delivering a curriculum that spans from foundational knowledge to real-world development.
Weโ€™re not just here to teachโ€”weโ€™re here to help you see through the lens of real developers and grow together.

โ€œTo become a real developer, you must learn from real developers.โ€

Our courses take you through the entire web development journeyโ€”from start to finishโ€”focused on hands-on practice, real-world projects, and practical feedback.
We care deeply about each learnerโ€™s growth and are committed to supporting your path every step of the way.

๐ŸŽฏ Our philosophy is simple but powerful:
"True learning comes from doing, and true growth happens together."

Whether you're just getting started, preparing for your first job, or exploring your future in tech,
Neighborhood Coding Studio is here to be your launchpadโ€”and your trusted companion on the journey.

You donโ€™t have to do it alone.
Let Neighborhood Coding Studio walk with you toward your future in development.

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

102๊ฐœ โˆ™ (4์‹œ๊ฐ„ 16๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

13๊ฐœ

4.8

13๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ์˜ค์„ธ์ง„๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์˜ค์„ธ์ง„

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๊น”๋”ํ•œ ์„ค๋ช…๊ณผ ์‰ฌ์šด ์˜ˆ์ œ ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค.

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค์„ธ์ง„๋‹˜! ์ง€์‹๊ณต์œ ์ž์ž…๋‹ˆ๋‹ค. ์šฐ์„  <React ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค: Part 1 - ๋ฏธ์…˜์œผ๋กœ ๊นจ์šฐ์น˜๋Š” ๋ Œ๋”๋ง ๋ณธ์งˆ๊ณผ ์„ค๊ณ„> ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•ด ์ฃผ์‹œ๊ณ , ์†Œ์ค‘ํ•œ ์ˆ˜๊ฐ•ํ‰์„ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. "๊น”๋”ํ•œ ์„ค๋ช…๊ณผ ์‰ฌ์šด ์˜ˆ์ œ๊ฐ€ ์ •๋ง ์ข‹๋‹ค"๋Š” ์„ธ์ง„๋‹˜์˜ ์นญ์ฐฌ ํ•œ๋งˆ๋””๊ฐ€ ์ €์—๊ฒŒ๋Š” ์ •๋ง ํฐ ํž˜๊ณผ ๋ณด๋žŒ์ด ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ์ธ ๋ Œ๋”๋ง ์›๋ฆฌ๋ฅผ ์ตœ๋Œ€ํ•œ ์ง๊ด€์ ์œผ๋กœ ์ „๋‹ฌํ•ด ๋“œ๋ฆฌ๋ ค ๋…ธ๋ ฅํ–ˆ๋Š”๋ฐ, ๊ทธ ์ง„์‹ฌ์ด ๋‹ฟ์€ ๊ฒƒ ๊ฐ™์•„ ๊ธฐ์œ ๋งˆ์Œ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ Part 1์—์„œ ๋‹ค๋ฃฌ ๋ณธ์งˆ์ ์ธ ๊ธฐ์ดˆ๊ฐ€ ์•ž์œผ๋กœ ์„ธ์ง„๋‹˜์ด ๋งˆ์ฃผํ•  ๋” ๋ณต์žกํ•œ ์„ค๊ณ„์™€ ์‹ค๋ฌด ํ™˜๊ฒฝ์—์„œ ๋“ ๋“ ํ•œ ๋ฐ‘๊ฑฐ๋ฆ„์ด ๋˜๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ € ๋˜ํ•œ ์„ธ์ง„๋‹˜๊ณผ ๊ฐ™์€ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค์˜ ์„ฑ์žฅ์„ ์œ„ํ•ด ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋”์šฑ ์ •์ง„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ธ์ง„๋‹˜์˜ ์—ด์ •์ ์ธ ํ•™์Šต์„ ์‘์›ํ•˜๋Š” ๋งˆ์Œ์„ ๋‹ด์•„ ์ž‘์€ ํ˜œํƒ์„ ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ ์ €ํฌ ๊ต์œก ๊ณผ์ • ์ค‘ ์ถ”๊ฐ€์ ์œผ๋กœ ์ˆ˜๊ฐ•์„ ํฌ๋งํ•˜์‹œ๋Š” ๊ฐ•์˜(Part 2๋‚˜ Part 3 ๋“ฑ)๊ฐ€ ์žˆ์œผ์‹œ๋‹ค๋ฉด, ์•„๋ž˜ ์ด๋ฉ”์ผ๋กœ ํŽธํ•˜๊ฒŒ ์—ฐ๋ฝํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ํ™•์ธ ํ›„ ์ฆ‰์‹œ ํ• ์ธ ์ฟ ํฐ์„ ์ „๋‹ฌํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌธ์˜ ์ด๋ฉ”์ผ: jeony0535@naver.com ๋‹ค์‹œ ํ•œ๋ฒˆ ๋”ฐ๋œปํ•œ ๋ง์”€ ๋‚จ๊ฒจ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์„ธ์ง„๋‹˜์˜ ์„ฑ์žฅ์„ ์ง„์‹ฌ์œผ๋กœ ์‘์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! :D

  • Su Yeoun Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    Su Yeoun Lee

    ์ˆ˜๊ฐ•ํ‰ 21

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    71% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ •์˜๋ฅผ ๋ช…ํ™•ํžˆ ์„ค๋ช…์„ ํ•ด์ฃผ์–ด์„œ ๊ฐœ๋…์„ ์ดํ•ด์‹œ์ผœ์ค๋‹ˆ๋‹ค. ํŠนํžˆ ์„ค๋ช…์— ๊ตฐ๋”๋”๊ธฐ๊ฐ€ ์—†์–ด ์‹œ๊ฐ„ ๋‚ญ๋น„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์„ธ์…˜์˜ ๋์— [ํ•„๋…]์„ ๋‘์–ด ํ•œ๋ฒˆ ๋” ๋ฆฌ๋งˆ์ธ๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ •๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ๋„ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋“ฃ๋‹ค ๋ณด๋ฉด ๋А๊ปด์ง€๋Š”๊ฒŒ ๊ฐ•์‚ฌ๋‹˜์ด ๊ฐ€๋ฅด์น˜๋Š”๋ฐ ์ง„์‹ฌ์ด๋‹ค๋Š” ๊ฒƒ์ด ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ๋ฆฌ์—‘ํŠธ๋ฅผ ๋ฐฐ์šฐ๋ ค๋Š” ๋ถ„๋“ค๊ป˜ ๊ฐ•์ถ”ํ•ฉ๋‹ˆ๋‹ค. ํ›„ํšŒ๋Š” ์—†์„ ๊ฒ๋‹ˆ๋‹ค.

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” Su Yeoun Lee ๋‹˜ ๐Ÿ˜Š ์ด๋ ‡๊ฒŒ ์ •์„ฑ์Šค๋Ÿฝ๊ณ  ๋”ฐ๋œปํ•œ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐Ÿ™ ๋ฌด์—‡๋ณด๋‹ค ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ๊ฐœ๋…์„ ๋ช…ํ™•ํžˆ ์žก์œผ์…จ๋‹ค๋‹ˆ ์ •๋ง ๊ธฐ์ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ „๋‹ฌํ•˜๊ณ ์ž ํ–ˆ๋˜ '๊ตฐ๋”๋”๊ธฐ ์—†๋Š” ํ•ต์‹ฌ ์„ค๋ช…'๊ณผ '๋ฆฌ๋งˆ์ธ๋“œ ์„ธ์…˜'์˜ ์˜๋„๋ฅผ ์ •ํ™•ํžˆ ์•Œ์•„๋ด ์ฃผ์…”์„œ ์ œ์ž‘์ž๋กœ์„œ ํฐ ๋ณด๋žŒ์„ ๋А๋‚๋‹ˆ๋‹ค. "๊ฐ€๋ฅด์น˜๋Š” ๋ฐ ์ง„์‹ฌ์ด ๋А๊ปด์ง„๋‹ค"๋Š” ๋ง์”€์€ ์ €์—๊ฒŒ ๊ทธ ์–ด๋–ค ์นญ์ฐฌ๋ณด๋‹ค ํฐ ํž˜์ด ๋˜๋„ค์š”. Part 1 ๊ธฐ์ดˆํŽธ์„ ํ†ตํ•ด ๋ฆฌ์•กํŠธ์˜ ๋ณธ์งˆ๊ณผ ์„ ์–ธํ˜• UI์— ๋Œ€ํ•œ ๊ฐ์„ ์žก์œผ์…จ๋‹ค๋ฉด, ์ด์ œ ๊ณง ์ด์–ด์งˆ ๋‹ค์Œ ๋‹จ๊ณ„๋„ ๊ธฐ๋Œ€ํ•ด ์ฃผ์„ธ์š”! ํ˜„์žฌ ๋งŽ์€ ๋ถ„์ด ๊ธฐ๋‹ค๋ ค ์ฃผ์‹œ๋Š” [React Part 2] ๊ฐ•์˜๋ฅผ ์ค€๋น„ ์ค‘์ด๋ฉฐ, ๋น ๋ฅด๋ฉด 3~4์ฃผ ์ด๋‚ด์— ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์„ ์„ ๋‹คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Part 1์—์„œ ๋‹ค์ง„ ํƒ„ํƒ„ํ•œ ๊ธฐ์ดˆ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, Part 2์—์„œ๋Š” ๋”์šฑ ๊นŠ์ด ์žˆ๊ณ  ์‹ค์ „์ ์ธ ๋‚ด์šฉ์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ˆ ์ง€์†์ ์ธ ๊ด€์‹ฌ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•™์Šตํ•˜์‹œ๋‹ค ๊ถ๊ธˆํ•œ ์ ์ด ์ƒ๊ธฐ๋ฉด ์–ธ์ œ๋“  ํŽธํ•˜๊ฒŒ ์งˆ๋ฌธ ์ฃผ์‹œ๊ณ , ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์—์„œ๋„ ํ•จ๊ป˜ ์†Œํ†ตํ•˜๋ฉฐ ์„ฑ์žฅํ•ด ๋‚˜๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๐ŸŒฟ ๋‹ค์‹œ ํ•œ๋ฒˆ ์†Œ์ค‘ํ•œ ์‘์›๊ณผ ์ถ”์ฒœ ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ, ์˜ค๋Š˜๋„ ํ–‰๋ณตํ•œ ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”! ๐ŸŒŸ ๐Ÿ‘‰ https://open.kakao.com/o/gC10Fnoh

  • ์•„์นจํ˜•๋‹ญ๊ณ ๊ธฐ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์•„์นจํ˜•๋‹ญ๊ณ ๊ธฐ

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    35% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    react api docs ๋กœ ์ฝ์—ˆ์„๋•Œ ๋ญ๋ถ€ํ„ฐ ์ฝ์–ด์•ผ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชฐ๋ผ์„œ ์–ด๋ ค์› ๋Š”๋ฐ ์›๋ฆฌ๋ถ€ํ„ฐ ์•Œ๊ฒŒ ๋˜๋‹ˆ๊นŒ ํŽธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ•์˜๋ฅผ ๋นจ๋ฆฌ ๋งŒ๋“ค์–ด์ฃผ์…จ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” ์•„์นจํ˜•๋‹ญ๊ณ ๊ธฐ ๋‹˜ ๐Ÿ˜Š ์†Œ์ค‘ํ•œ ์ˆ˜๊ฐ•ํ‰ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐Ÿ™ ๋ฆฌ์•กํŠธ ๊ณต์‹ ๋ฌธ์„œ๊ฐ€ ์›Œ๋‚™ ๋ฐฉ๋Œ€ํ•˜๋‹ค ๋ณด๋‹ˆ ์ฒ˜์Œ ์ ‘ํ•  ๋•Œ ๋ง‰๋ง‰ํ•˜์…จ์„ ํ…๋ฐ, ์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด 'ํŽธ์•ˆํ•จ'์„ ๋А๋ผ์…จ๋‹ค๋‹ˆ ์ง€์‹๊ณต์œ ์ž๋กœ์„œ ์ •๋ง ๋ฟŒ๋“ฏํ•˜๊ณ  ๋ณด๋žŒ์ฐจ๋„ค์š”. ๋ฆฌ์•กํŠธ์˜ ๊ทผ๋ณธ์ ์ธ ์›๋ฆฌ์™€ ๋ Œ๋”๋ง์˜ ๋ณธ์งˆ์„ ๋จผ์ € ์ดํ•ดํ•˜๊ณ  ๋‚˜๋ฉด, ์•ž์œผ๋กœ ์–ด๋–ค ๋ณต์žกํ•œ ๊ฐœ๋…์„ ๋งŒ๋‚˜๋”๋ผ๋„ ํ›จ์”ฌ ์ˆ˜์›”ํ•˜๊ฒŒ ํก์ˆ˜ํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”. ๋‹ค์Œ ๊ฐ•์˜๋ฅผ ๊ธฐ๋‹ค๋ ค ์ฃผ์‹œ๋Š” ๊ทธ ๋งˆ์Œ ์ถฉ๋ถ„ํžˆ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ๋ณด๋‚ด์ฃผ์‹  ์„ฑ์›์— ๋ณด๋‹ตํ•˜๊ธฐ ์œ„ํ•ด [React Part 2] ๊ฐ•์˜๋ฅผ ๋น ๋ฅด๋ฉด 3~4์ฃผ ์ด๋‚ด์— ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ˜„์žฌ ์ œ์ž‘์— ๋ฐ•์ฐจ๋ฅผ ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿš€ Part 2์—์„œ๋Š” ์‹ค์ „ ๋ Œ๋”๋ง ์ตœ์ ํ™”์™€ ๋” ๊นŠ์ด ์žˆ๋Š” ์ƒํƒœ ์„ค๊ณ„ ๋“ฑ, Part 1์—์„œ ๋‹ค์ง„ ๊ธฐ์ดˆ๋ฅผ ์‹ค๋ฌด ๋ ˆ๋ฒจ๋กœ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ์•Œ์ฐฌ ๋‚ด์šฉ๋“ค์„ ๋‹ด์„ ์˜ˆ์ •์ด๋‹ˆ ์กฐ๊ธˆ๋งŒ ๋” ๊ธฐ๋‹ค๋ ค ์ฃผ์„ธ์š”! ํ•™์Šตํ•˜์‹œ๋‹ค๊ฐ€ ๊ถ๊ธˆํ•œ ์ ์ด ์ƒ๊ธฐ๋ฉด ์–ธ์ œ๋“  ์งˆ๋ฌธ ๋‚จ๊ฒจ์ฃผ์‹œ๊ณ , ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์—์„œ๋„ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค๊ณผ ํ™œ๋ฐœํžˆ ์†Œํ†ต ์ค‘์ด๋‹ˆ ์‹œ๊ฐ„ ๋˜์‹ค ๋•Œ ๋“ค๋Ÿฌ์ฃผ์„ธ์š”. ๐ŸŒฟ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ, ์˜ค๋Š˜๋„ ์—ด๊ณตํ•˜๋Š” ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ ์‘์›ํ•ฉ๋‹ˆ๋‹ค! ๐ŸŒŸ ๐Ÿ‘‰ https://open.kakao.com/o/gC10Fnoh

  • ๋˜‘๋˜‘๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๋˜‘๋˜‘

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    • nhcodingstudio
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š”, ๋˜‘๋˜‘๋‹˜! ์ง€์‹๊ณต์œ ์ž์ž…๋‹ˆ๋‹ค:D ์šฐ์„  <React ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค: Part 1 - ๋ฏธ์…˜์œผ๋กœ ๊นจ์šฐ์น˜๋Š” ๋ Œ๋”๋ง ๋ณธ์งˆ๊ณผ ์„ค๊ณ„> ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•ด ์ฃผ์‹œ๊ณ , ์ด๋ ‡๊ฒŒ ์†Œ์ค‘ํ•œ ์ˆ˜๊ฐ•ํ‰์„ ๋‚จ๊ฒจ์ฃผ์…”์„œ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋˜‘๋˜‘๋‹˜๊ป˜์„œ ๋‚จ๊ฒจ์ฃผ์‹  ์†Œ์ค‘ํ•œ ํ”ผ๋“œ๋ฐฑ์€ ์ €์—๊ฒŒ ์ •๋ง ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค. ๋ณธ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•˜์‹  ๋ Œ๋”๋ง์˜ ์›๋ฆฌ์™€ ์„ค๊ณ„ ๋ฐฉ์‹์ด ๋˜‘๋˜‘๋‹˜์˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์—ญ๋Ÿ‰์„ ํ•œ ๋‹จ๊ณ„ ๋†’์ด๋Š” ๋ฐ ์‹ค์งˆ์ ์ธ ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋˜‘๋˜‘๋‹˜์˜ ์—ด์ •์ ์ธ ํ•™์Šต์„ ์‘์›ํ•˜๋Š” ๋งˆ์Œ์„ ๋‹ด์•„ ์ž‘์€ ํ˜œํƒ์„ ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ ์ €ํฌ ๊ต์œก ๊ณผ์ • ์ค‘ ์ถ”๊ฐ€์ ์œผ๋กœ ์ˆ˜๊ฐ•์„ ํฌ๋งํ•˜์‹œ๋Š” ๊ฐ•์˜๊ฐ€ ์žˆ์œผ์‹œ๋‹ค๋ฉด, ์•„๋ž˜ ์ด๋ฉ”์ผ๋กœ ํŽธํ•˜๊ฒŒ ์—ฐ๋ฝํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ํ™•์ธ ํ›„ ์ฆ‰์‹œ ํ• ์ธ ์ฟ ํฐ์„ ์ „๋‹ฌํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. * ๋ฌธ์˜ ์ด๋ฉ”์ผ: jeony0535@naver.com ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ท€ํ•œ ์‹œ๊ฐ„ ๋‚ด์–ด ๋”ฐ๋œปํ•œ ๋ง์”€ ๋‚จ๊ฒจ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜‘๋˜‘๋‹˜์˜ ์„ฑ์žฅ์„ ์ง„์‹ฌ์œผ๋กœ ์‘์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :D

  • nhcodingstudio๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    nhcodingstudio

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    85% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    nhcodingstudio๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

    ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

    ๋น„์Šทํ•œ ๊ฐ•์˜

    ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

    โ‚ฉ34,100