๐Ÿš€ ์‹œ์ž‘ํ•˜์„ธ์š”! React ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์™„๋ฒฝ ๊ฐ€์ด๋“œ (์ž…๋ฌธ์ž ํ™˜์˜!)








๐Ÿš€ ์‹œ์ž‘ํ•˜์„ธ์š”! React ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์™„๋ฒฝ ๊ฐ€์ด๋“œ (์ž…๋ฌธ์ž ํ™˜์˜!)

๐Ÿš€ ์‹œ์ž‘ํ•˜์„ธ์š”! React ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์™„๋ฒฝ ๊ฐ€์ด๋“œ (์ž…๋ฌธ์ž ํ™˜์˜!)

A. React๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

React๋Š” Facebook์—์„œ ๊ฐœ๋ฐœํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ๋ Œ๋”๋ง ์†๋„์™€ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ ์›น ๊ฐœ๋ฐœ์˜ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ๋†’์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ๊ณผ ๊ฐ€์ƒ DOM์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ , ๋ณต์žกํ•œ UI๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

B. React ์‹œ์ž‘ํ•˜๊ธฐ: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

React ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด Node.js์™€ npm(๋˜๋Š” yarn)์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Create React App์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์„ค์น˜ ๋ฐ ์„ค์ • ๋ฐฉ๋ฒ•์€ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

npx create-react-app my-react-app

C. JSX: React์˜ ๋ฌธ๋ฒ• ์ดํ•ดํ•˜๊ธฐ

JSX๋Š” JavaScript XML์˜ ์•ฝ์ž๋กœ, React์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. HTML๊ณผ ์œ ์‚ฌํ•œ ๋ฌธ๋ฒ•์œผ๋กœ React ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JSX๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด UI๋ฅผ ๋”์šฑ ์ง๊ด€์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


        <div>
            <h1>Hello, world!</h1>
        </div>
    

D. Component: React์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ

React์—์„œ UI๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ๋…๋ฆฝ์ ์ธ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

E. State์™€ Props: ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์˜ ํ•ต์‹ฌ

State๋Š” ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, Props๋Š” ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. State์™€ Props๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ React ๊ฐœ๋ฐœ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

F. Hooks: React์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ํ™œ์šฉํ•˜๊ธฐ

Hooks๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ state, lifecycle ๋ฉ”์„œ๋“œ ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. useState, useEffect ๋“ฑ ๋‹ค์–‘ํ•œ Hooks๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

G. ์‹ค์ „ ์˜ˆ์ œ: ๊ฐ„๋‹จํ•œ Todo List ๋งŒ๋“ค๊ธฐ

๊ฐ„๋‹จํ•œ Todo List๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉฐ React์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์‹ค์Šตํ•ด๋ด…์‹œ๋‹ค. useState Hook์„ ํ™œ์šฉํ•˜์—ฌ Todo ๋ชฉ๋ก์„ ๊ด€๋ฆฌํ•˜๊ณ , JSX๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UI๋ฅผ ๊ตฌ์„ฑํ•ด๋ด…๋‹ˆ๋‹ค.

(์—ฌ๊ธฐ์— Todo List ์˜ˆ์ œ ์ฝ”๋“œ ์‚ฝ์ž…)

H. ๋” ๋ฐฐ์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด?

React ๊ณต์‹ ๋ฌธ์„œ์™€ ๋‹ค์–‘ํ•œ ์˜จ๋ผ์ธ ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. React ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ฐธ์—ฌํ•˜์—ฌ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ๊ต๋ฅ˜ํ•˜๋ฉฐ ์‹ค๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



“`

..

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ