์ด์ custom component๋ฅผ ๋ค๋ฃจ๋ฉด์ props์ state ๋ถ๋ถ์ ์ง๊ณ ๋์ด๊ฐ์ผ๊ฒ ๋๋ผ๊ณ ์! ๊ทธ๋์ chat gpt์ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ฉด์ ๋ฆฌ์กํธ props์ state์ ์ฐจ์ด์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค Q. ๋ฆฌ์กํธ์์ props์ state์ ์ฐจ์ด์ React์์ props์ state๋ ๋ชจ๋ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ ๊ฐ์ง ๊ฐ๋
์ ๋ชฉ์ ๊ณผ ์ฌ์ฉ ๋ฐฉ๋ฒ์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. props๋ "properties"์ ์ค์๋ง๋ก, ์ปดํฌ๋ํธ๊ฐ ์ธ๋ถ์์ ๋ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฆ, ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ์์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌ๋๋ ๋ฐ์ดํฐ์
๋๋ค. props๋ ์ฝ๊ธฐ ์ ์ฉ์ด๋ฏ๋ก ์ปดํฌ๋ํธ ๋ด๋ถ์์ ์ง์ ์์ ํ ์ ์์ต๋๋ค. ๋์ , ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ๊ฐ์ ๋ณ๊ฒฝํ์ฌ ์์ ์ปดํฌ๋ํธ๊ฐ ์๋ก์ด ๊ฐ์ ๋ฐ๊ฒ ๋ฉ๋๋ค..
์ ์ฒด ๊ธ
๐ฉ๐ป java, mysql, android, php, javascript๋ฅผ ๋ค๋ฃน๋๋คํ๋ฉด์ด ์๋ฌด๋ฆฌ ๋ณต์กํ๊ณ ๋ค์ํ๋๋ผ๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ์์ ์ฌ์ฉ๋๋ UI๋ค์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค ์ค๋์ ํ๋ก์ ํธ ๊ฐ๋ฐ์ ํจ์จ์ฑ์ ๋์ฌ์ฃผ๋ UI ์ปดํฌ๋ํธ๋ค์ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค ์ปดํฌ๋ํธ ui - ๋ชจ๋ฌ ์ฝ์์ฐฝ์ ๋์ element๋ค์ ๋๋ฌ๋ณด๋ฉด์ ์ด๋ค ์ปดํฌ๋ํธ ์์ ์คํ์ผ์ด ๋ค์ด๊ฐ๋ ์ง๋ฅผ ์ ํ์ธํด์ผ ํฉ๋๋ค ์ผ๋ฐ CSS์ ๋ฌ๋ฆฌ styled component๋ class์ ์ด๋ฆ์ ์์๋ก ์ง์ ํ์ฌ (์์ "sc-dkPtyc ioRIXP" ๋ผ๊ณ ์ด์ํ ํด๋์ค ๋ณด์ด์์ ธ...) ์คํ์ผ์ ์ฃผ๊ธฐ ๋๋ฌธ์, ํด๋์ค์ ์ด๋ฆ์ด ํ! ๋์ ๋์ง ์์ ์ ์์ต๋๋ค. ํ์ง๋ง, ๊ฐ ์ปดํฌ๋ํธ์ ์ด๋ค css ํจ๊ณผ๋ฅผ ์ฃผ์๋์ง ์ดค๋ฅด๋ฅต~ ๋ณผ ์ ์์ด์! ( css ํ์ผ ์ด์ด์ html๋ js ํ์ผ ์๋ค๊ฐ๋ค, class ์ฐพ์ ์๋ฆฌ์กฐ๋ฆฌ ํ๋๊ฒ..
CCD (Componet Driven Development) ๋ง์ฝ ๊ธฐํ์๊ฐ ์ด์ ์ ์ฌ์ฉํ๋ ๋ฒํผ์ ์ด๋ฒ์๋ ์ฌ์ฉํ์๊ณ ํฉ๋๋ค ๊ทธ๋ ๋ค๋ฉด ๋์์ด๋์ ๊ฐ๋ฐ์๋ ์๋กญ๊ฒ ๋ฒํผ์ ๋ง๋ค์ด์ผ ํ ๊น์? ์ฌ์ฌ์ฉ ํ ์ ์๋ UI ์ปดํฌ๋ํธ๊ฐ ํ์ํ๊ฒ ์ฃ ! ์ด ๊ณ ๋ฏผ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก Componet Driven Development(CCD) ์
๋๋ค ๋ ๊ณ ์ฒ๋ผ ๋ถํ ๋จ์๋ก UI ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ์กฐ๋ฆฝํด๋๊ฐ๋ ๊ฐ๋ฐ์
๋๋ค CSS in JS CSS๊ฐ ๋ณต์กํด์ง์ ๋ฐ๋ผ, CSS๋ ์ปดํฌ๋ํธ ์์ญ์ผ๋ก ๋ถ๋ฌ๋ค์ด๊ฒ ๋จ! CSS in JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด CSS๋ ์ฝ๊ฒ Javascript ์์ ๋ฃ์ด์ค ์ ์์ผ๋ฏ๋ก, HTML + JS + CSS๊น์ง ๋ฌถ์ด์ ํ๋์ JSํ์ผ ์์์ ์ปดํฌ๋ํธ ๋จ์๋ก ๊ฐ๋ฐํ ์ ์๊ฒ ๋ฉ๋๋ค. ์ด..
https://www.figma.com/file/NKrCMEUAzrqDARr1rHh08R/Untitled?node-id=1%3A47&t=jHgq8cLluYHrY2he-1 ๋งํฌ์ ๋ค์ด๊ฐ๋ฉด ๋ด๊ฐ ๋ง๋ ํผ๊ทธ๋ง ui ๋ฅผ ๋ณผ ์ ์๋ค ํผ๊ทธ๋ง๋ฅผ 3์ผ์ ๋ ๋ค๋ค๋ณด์๋๋ฐ ์ ๋ง ๋
ธ๋์ด์ง๋ง ๋๋ฆ ์ฌ๋ฐ๋๊ฒ ๊ฐ๋ค ๋์ค์ ๊ธฐํ/๋์์ธ๋ถํฐ ๊ฐ๋ฐ๊น์ง ํ ์ ์๋ ์ ๋๋ด๋ฆฌ์คํธ๊ฐ ๋๊ธธ ๊ฟ๊ฟ๋ณธ๋ค >
์ค๋์ ๋ญ ํด๋ณผ๊ฑฐ๋๋ฉด JSON.stringify์ JSON.parse์ ๋ํด์ ๊ฐ๋จํ ์์๋ณด๊ณ , localStorage ์ ์ต๊ทผ ๋ณธ ์ํ์ id๋ฅผ ๋ฐฐ์ด๋ก ๋ด์๋ณด๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด๋ณด๊ฒ ์ด๋ค JSON.stringify ์ JSON.parse ์ฌ๊ธฐ ํ ๊ฐ์ฒด๊ฐ ์์ต๋๋ค let obj = {name: 'kim'} ๋ง์ฝ ์ด ์ํ๋ก localStorage.setItem('data', obj) ํด๋ฒ๋ฆฐ๋ค๋ฉด ์์ {name: 'kim'} ์ ์ํ๋ก ์ ์ฅ์ด ๋์ง ์๊ณ , localStorage์ value์ [object Object] ๋ผ๋ฉฐ ๊ฐ์ฒด๊ฐ ๊นจ์ ธ์ ๋์ฌ๊ฒ๋๋ค ๊นจ์ ธ์ ์๋์ค๊ณ ์ด์ ์ํ๋ก obj๋ฅผ ๋ณด์กดํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? JSON.stringify๋ก obj๋ฅผ ๊ฐ์ธ๋ฉด ๋ฉ๋๋ค! ๊ทธ๋ ๋ค๋ฉด ๋ฐ๋๋ก JSON ํ์์ ๊ธฐ์กด ๊ฐ์ฒด ํ..
์ฒ์์ผ๋ก ํผ๊ทธ๋ง๋ฅผ ๋ค๋ค๋ณด์๋ค. ๊ธฐํํ ๋ ํผ๊ทธ๋ง๋ฅผ ์ด๋ค๋ ๊ฒ์ ์์์ง๋ง ๋ฐฉ๋ฒ์ ๋ชจ๋ฅผ๋ ์ด๋ ค์ ๋ณด์ฌ์ ์๋๋ฅผ ๋ชปํ๊ณ ์์๋๋ฐ.. ์ฝ๋์คํ
์ด์ธ ์์
์๊ฐ์ ํผ๊ทธ๋ง๋ฅผ ๋ค๋ค๋ณผ ์ ์๊ฒ ๋์๋ค ๋์ค์ ๊ธฐํ์ ํ ์ผ๋ ์๊ธธ ์ ์์ผ๋ ๊ฐ๋จํ๊ฒ ํผ๊ทธ๋ง๋ฅผ ๋ค๋ค๋ณด๋ ๊ฒ๋ ์ข์ ๋ฏ ํ๋ค. ๋์ค์ ๋ดค์๋ ์์ด๋ฒ๋ฆฌ์ง ์๋๋ก ๋จ์ถํค์ ๊ฐ๋จํ๊ฒ ui ๋ง๋๋ ๋ฒ์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค โ๐ป๊ธฐ๋ณธ ๋จ์ถํค ๋ณต์ฌํ๊ธฐ : Command + C ๋ถ์ฌ๋ฃ๊ธฐ : Command + V ์ฌ๋ฌ ์์ ๋์์ ์ ํํ๊ธฐ : Shift ๋๋ฅธ ์ํ๋ก ํด๋ฆญ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ๊ธฐ : Command + G ํ๋ ์์ผ๋ก ๋ฌถ๊ธฐ : Command + Option + G ๊ฐ๊ฒฉ ์ธก์ ํ๊ธฐ : ์์๋ฅผ ์ ํํ ์ํ์์ Option ๋๋ฅด๊ณ ๋ค๋ฅธ ์์์ ๋ง์ฐ์ค ์ฌ๋ ค๋๊ธฐ โ๐ป์ปดํฌ๋ํธ ๋จ์ผ ์ปดํฌ๋ํธ ์์ฑ :..
์ค๋ ฅํฅ์ ์์ฉ๋ฌธ์ ๋ค : ์์ฉ1. ํ์ ํ๋ง๋ค ์ญ์ ๋ฒํผ ๋ง๋ค๊ณ ๊ทธ๊ฑฐ ๋๋ฅด๋ฉด ์ํ์ด ์ญ์ ๋๊ฒ ๋ง๋ค๋ ค๋ฉด? ์์ฉ2. ์ฃผ๋ฌธํ๊ธฐ ๋ฒํผ ๋๋ฅผ ๋ ์ด๋ฏธ ์ํ์ด state์์ ์์ผ๋ฉด ์ถ๊ฐ๊ฐ ์๋๋ผ ๊ธฐ์กด ํญ๋ชฉ ์๋์ฆ๊ฐ๋ง? ์์ฉ1. ํ์ ํ๋ง๋ค ์ญ์ ๋ฒํผ ๋ง๋ค๊ณ ๊ทธ๊ฑฐ ๋๋ฅด๋ฉด ์ํ์ด ์ญ์ ๋๊ฒ ๋ง๋ค๋ ค๋ฉด? (Cart.js) # ์ํ๋ช
์๋ ๋ณ๊ฒฝํ๊ธฐ ์ญ์ ํ๊ธฐ {/*๋ฐ์ดํฐ ๊ฐฏ์์ ๋ง๊ฒ ํ ์์ฑํด๋ฌ๋ผ๊ณ ๋ฐ๋ณต๋ฌธ์ฐ๋ ๊ฒ๋ ์ข์๋ฏ์*/} {/*map์ผ๋ก html ์์ฑํ ๋ ์ผ๋จ {}๋ถํฐ ์ด๋ค */} { carts.map((item,i)=>{ return ( {carts[i].id} {carts[i].name} {carts[i].count} { dispatch((changeCount(carts[i].id))) }}>โ {/*๋ฒํผ์ ๋๋ฅด๋ฉด ์ํ์ด..
์ฒ์์ (my agora states) ํ์ผ์ ๋ดค์๋ ์์ํ ์ฝ๋๊ฐ ๋๋ฌด ๋ง์์ ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์์ํด์ผ ํ ์ง ๊ฐ๋ ์ก๊ธฐ ํ๋ค์๋ค ๊ทธ๋์ ์ฑ ์งํผํฐ์๊ฒ ์ฝ๋ ํ์ค ํ์ค์ฉ ๋ฌผ์ด๋ณด๋ฉฐ ์ฃผ์์ ๋ฌ๊ธฐ ์์ํ๋ค ํนํ ์ด๋ค ๊ฐ๋
์ ์ดํดํ๊ธฐ ์ด๋ ค์ฐ๋ฉด ์์๋ ์ถ๊ฐ์ ์ผ๋ก ๋ฌผ์ด๋ณด๋ฉด์ ์ ๊ทผํ๋ค A์ B์ ์ฐจ์ด์ ์ ๋ฌป๋ ์ง๋ฌธ๋ ํฐ ๋์์ด ๋๋ค ๋ด ์น๊ตฌ ์ฑ gpt ...ใ
์ด๋ฒ์ ๋๋์ ์ ์๋ฌด๋ฆฌ ์์ํ๊ณ ์ด๋ ค์ด ์ฝ๋๋ผ๋ ์์ฌ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ฉด ์ดํดํ์ง ๋ชปํ ๊ฒ ์๋ค๋ ๊ฒ์ด๋ค. ์ ๋ชจ๋ฅผ ์๋ก ๋ฉ๋ฑ๋ฉ๋ฑ ์ฝ๋๋ง ๋ณด์ง ๋ง๊ณ ๋ญ๋ผ๋ ์ณ์ผ ํ๋ค!! (my agora states) const express = require('express');//express ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์, express ๋ณ์์ ํ ๋นํ๊ณ const app = express..