๐Ÿ–ฅFrontEnd/React

TIL) ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ, React์˜ 3๊ฐ€์ง€ ํŠน์ง•, React ์“ฐ๋Š” ์ด์œ , ์ž˜ ์ง  ์ฝ”๋“œ์˜ ๊ธฐ์ค€์€?

hellohailie 2022. 6. 2. 00:33

๋ฆฌ์•กํŠธ๋ž€?

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋‹ˆ๋‹ค. 

 

 

๋ฆฌ์•กํŠธ๋ฅผ ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ?

 

๋ฆฌ์—‘ํŠธ์˜ ์•„๋ž˜ 3๊ฐ€์ง€ ํŠน์ง• ๋•๋ถ„์— ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋” ํšจ๊ณผ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

1. ์„ ์–ธํ˜•

2. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜

3. ๋ฒ”์šฉ์„ฑ (๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅ)

 

 

1. ์„ ์–ธํ˜•

๋ฆฌ์•กํŠธ๋Š” ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด HTML/CSS/JS๋กœ ๋‚˜๋ˆ ์„œ ์ ๊ธฐ ๋ณด๋‹ค๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ JSX๋ฅผ ํ™œ์šฉํ•œ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€ํ–ฅํ•œ๋‹ค. 

*๊ฐœ๋ฐœ์—์„œ ์„ ์–ธ(๋ช…์‹œ์ )์ด๋ผ๋Š” ๋œป์€ ์ฝ”๋“œ๋ฅผ ์ž์„ธํžˆ ๋ถ„์„ํ•˜์ง€ ์•Š๊ณ ๋„ ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ๋ถ„๋ช…ํžˆ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. 

 

queryselector๋กœ HTML ๋‚ด์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์™€์„œ JS ํŒŒ์ผ์—์„œ ๊ฐœ๋ฐœํ•˜๋Š” ํ™˜๊ฒฝ์€ ์ง๊ด€์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์—†๋‹ค. 

๋ฐ˜๋ฉด, ๋ฆฌ์•กํŠธ๋Š” JSX๋ผ๋Š” HTML๊ณผ JS๊ฐ€ ๊ฒฐํ•ฉํ•œ ๋ฌธ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์„œ ์ง๊ด€์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ๋‹ค. 

 

๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ํ•œ ๊ณณ์— ๋ชจ์•„์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์œผ๋กœ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ์Šต๊ณผ ๊ธฐ๋Šฅ์„ ์ƒ์ƒํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 


 

2. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜

๋ฆฌ์•กํŠธ๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ฝ”๋“œ๋ฅผ ๋ฌถ์–ด๋‘” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค. 

์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ์„œ๋กœ ๋…๋ฆฝ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ๋Šฅ ์ž์ฒด์— ์ง‘์ค‘ํ•˜์—ฌ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

const Cart = ({items}) => (
	<section className = 'cartContainer'>
    	<h1>์žฅ๋ฐ”๊ตฌ๋‹ˆ</h1>
        <SelectAllCheckBox />
        <div className="itemContainer">
        	{items.map((item) => <Item item = {item}/>)}
        </div>
    </section>
)

โžฅ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฆฌ์ŠคํŠธ์™€ ์ œํ’ˆ์— ๊ด€๋ จ๋œ ์ฝ”๋“œ

(์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฅ˜๋˜์–ด ์žˆ๋‹ค. )

**๋Œ€์†Œ๋ฌธ์ž์™€ ๋ฐ˜๋ณต์ˆ˜๋ฅผ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณด์ž!**

 

 

์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ์‹œ ์žฅ์ 

1. ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์˜์กด์„ฑ์ด ์—†์–ด์ ธ์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. 

2. ์ด์ „์— ์ž‘์„ฑ๋œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ, ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ด๋‹ค. 

 

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ปดํฌ๋„ŒํŠธ์—  (๊ฐ ๊ธฐ๋Šฅ ์ž‘๋™ ์ž์ฒด์— ) ์ง‘์ค‘ํ•ด์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋˜ํ•œ ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์„๋•Œ, ๊ทธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์—๋Ÿฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์„œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธํ•˜๊ณ , ์œ ๋‹› ํ…Œ์ŠคํŠธ*ํ•˜๊ธฐ์—๋„ ํŽธํ•˜๋‹ค. 

 

 

*์œ ๋‹›ํ…Œ์ŠคํŠธ๋ž€????

๋ฉ”์„œ๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. 

์œ ๋‹›ํ…Œ์ŠคํŠธ๋Š” ๋ฒ„๊ทธ๋ฅผ ์ค„์ด๊ณ , ์ฝ”๋“œ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋งŒ๋“ ๋‹ค. 

 

 

๊ถ๊ธˆ๊ถ๊ธˆ?! ์ถ”๊ฐ€ํ•™์Šต ํ•„์š”

์ปดํฌ๋„ŒํŠธ์™€ ํด๋ž˜์Šค๊ฐ€ ๋น„์Šทํ•œ ๊ฐœ๋…์ธ๊ฐ€?

๋‘˜ ๋‹ค ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ๋ฌถ์–ด๋†“์€ ๊ฒƒ์ด ๋น„์Šทํ•˜๋‹ˆ๊นŒ!

๋” ์•Œ์•„๋ณด๊ธฐ!


 

3. ๋ฒ”์šฉ์„ฑ (๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅ)

 

๋ฆฌ์•กํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. 

๊ธฐ์กด์— ๋‹ค๋ฅธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์ œ์ž‘๋œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ฆฌ์•กํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. 

 

๋ฆฌ์•กํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ ์–ด๋””์—๋“  ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ๊ณ , facebook์—์„œ ๊ด€๋ฆฌ๋˜์–ด ์•ˆ์ •์ ์ด๊ณ , ๊ฐ€์žฅ ์œ ๋ช…ํ•˜๊ณ , ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ(๋ฆฌ์•กํŠธ์˜ ํ˜•์ œ ๊ฒฉ)๋กœ ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 

์ž˜ ์ง  ์ฝ”๋“œ์˜ ๊ธฐ์ค€์€! ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ , Application์„ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€์ด๋‹ค.