React

ยท React
๋ชจ๋…ธ๋ ˆํฌ ๋„์ž…์ง€๊ธˆ ํšŒ์‚ฌ ํ”„๋ŸฐํŠธ ํŒ€์˜ ํ”„๋กœ์ ํŠธ๋Š” ์›๋ž˜๋Š” ๋„๋ฉ”์ธ ๋ฉ”๋‰ด๋ณ„๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ฉ€ํ‹ฐ๋ ˆํฌ Multi repo ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ–ˆ์—ˆ๋‹ค. ์ฆ‰ ๊ฐœ๋ฐœ์ž๋งˆ๋‹ค ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•ด์„œ ๊ฐœ๋ฐœํ–ˆ์—ˆ๊ณ , ํŒ€์›๋ผ๋ฆฌ ๋˜‘๊ฐ™์€ ui๋ฅผ ๊ฐœ๋ฐœํ•œ๋‹ค๊ณ  ํ•˜์—ฌ๋„ ์ €์žฅ์†Œ๊ฐ„์— ์ปจํ…์ŠคํŠธ ๊ณต์œ ๊ฐ€ ์–ด๋ ค์›Œ์„œ ๊ฐœ๊ฐœ์ธ ๊ฐ์ž๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋‚ด๋ถ€์—์„œ ๋˜‘๊ฐ™์€ ui๋ฅผ ์ค‘๋ณตํ•ด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด์ œ ์—ฌ๋Ÿฌ๊ณณ์—์„œ ์ค‘๋ณต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•ด์„œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ  ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ์™€ ์ž์›์„ ๊ด€๋ฆฌํ•˜์—ฌ ์„œ๋กœ์˜ ๊ด€๊ณ„์™€ ์˜์กด์„ฑ์„ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋…ธ๋ ˆํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ–ˆ๋‹ค. ๋ชจ๋…ธ๋ ˆํฌ ํ™˜๊ฒฝ์—์„œ ์ฒ˜์Œ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ ์‹คํ–‰์ด ์•ˆ๋ ๋•Œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ์ด๋•Œ ๋งˆ์ฃผํ•œ ์—๋Ÿฌ๋ฅผ ์ •๋ฆฌํ•œ๋‹ค.  Monorepo ๋นŒ๋“œ ๋„๊ตฌ Turborepo  ..
ยท React
๋ฌธ์ œ ํŠธ๋ฆฌ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ interface Data { id: string; children: Data[]; } export const data: Data = { id: "์ƒ์œ„1", children: [ { id: "ํ•˜์œ„1", children: [ { id: "ํ•˜์œ„1-1", children: [{ id: "ํ•˜์œ„1-1-1", children: [] }] }, { id: "ํ•˜์œ„1-2", children: [] }, ], }, { id: "ํ•˜์œ„2", children: [] }, ], }; ํ˜„์žฌ ํด๋ฆญํ•˜๋Š” ์•„์ดํ…œ์˜ id๋Š” ์ƒํƒœ๊ฐ’์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค. ํ•ด๋‹น ์•„์ดํ…œ์„ ๋ˆ„๋ฅด๋ฉด id ์ƒํƒœ๊ฐ’์ด ๋ฐ”๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. const [currentId, setCurrentId] = useState(data.id); ๊ทธ ๋ณ€๊ฒฝ๋œ id๋ฅผ ๊ฐ€์ง€๊ณ ..
ยท React
์ด์Šˆ์‚ฌํ•ญ postTokenQuery(token) .then((res) => { console.log(res, '์ฟผ๋ฆฌ res'); if (res.data) { setTokenInStorage(token); } }) .catch(() => toast.error('ํ† ํฐ ์—๋Ÿฌ ๋ฐœ์ƒ')); //์„œ๋ฒ„ ์‘๋‹ต ์‹คํŒจ์‹œ ์‹คํ–‰ ์•ˆ๋จ rtk query ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด์„œ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š”๋ฐ ์„œ๋ฒ„์—์„œ ๋ณด๋‚ด์ฃผ๋Š” ์‘๋‹ต์— ๋”ฐ๋ผ ์„ฑ๊ณตํ•˜๋ฉด? .then ์œผ๋กœ ํŠน์ • ๋กœ์ง์„ ์‹คํ–‰ํ•˜๊ณ  ์‹คํŒจํ•˜๋ฉด? .catch ๋กœ ํ† ์ŠคํŠธ๋ฅผ ๋„์šฐ๋Š” ๋กœ์ง์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์„œ๋ฒ„์˜ ์‘๋‹ต์— ์‹คํŒจํ•ด๋„, catch ๋ฌธ์œผ๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๊ณ , then์—์„œ ๊ฑธ๋ ค res ์‘๋‹ต์„ ์ฝ˜์†”์— ๋„์šฐ๋Š” ์ด์ƒํ•œ ์ ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹ค. ์„ฑ๊ณต์‹œ {data: {…}} ๊ฐ€ ์ฝ˜์†”์— ์ฐํžˆ๊ณ , ์‹คํŒจ์‹œ {error: ..
ยท React
ํด๋ผ์ด์–ธํŠธ ๋‹จ์—์„œ http ๋น„๋™๊ธฐ ํ†ต์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ axios๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋Š”๋ฐ ์ž๊พธ ์„œ๋ฒ„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. API ์š”์ฒญ ํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์š”์ฒญ ๋ฉ”์†Œ๋“œ๋Š” POST ์š”์ฒญ ๋ฐ”๋””๋Š” ์•„๋ฌด๋Ÿฐ ๋ฐ์ดํ„ฐ๋„ ๋„ฃ์ง€ ์•Š์•„์•ผํ•จ ์š”์ฒญ ํ—ค๋”์™€ ์š”์ฒญ ํŒŒ๋ผ๋ฉ”ํ„ฐ ๊ฐ’์œผ๋กœ๋งŒ ์„œ๋ฒ„์— ์š”์ฒญ ๋„คํŠธ์›Œํฌ ํƒญ์—์„œ ํ™•์ธํ•ด๋ณด๋‹ˆ, ํ—ค๋”์™€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ž˜ ์š”์ฒญ์ด๊ฐ€์ง€ ์•Š๊ณ , payload ๋ฐ”๋””์— ํ—ค๋”์™€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ ์–ด์ค€ ๊ฐ์ฒด๊ฐ€ ์š”์ฒญ ๋ฐ”๋””๋กœ ๋ณด๋‚ด์ ธ์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ์ด ๋˜์—ˆ๋‹ค. ๊ธฐ์กด ์ฝ”๋“œ axios.post( 'url', { headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, params: { transactionId, email, pageUri: 'http://192..
ยท React
์„œ๋ก  ์ •๋ง ๋ช‡๋‚  ๋ฉฐ์น ์„ ๋””๋ฒ„๊น…ํ–ˆ์ง€๋งŒ ํ•ด๊ฒฐ ์•ˆ๋˜๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋‹ค... Mui ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด์˜ ๋ฌธ์ œ์ธ๊ฑธ๊นŒ? ํ•˜๊ณ  Textfield ์ปดํฌ๋„ŒํŠธ๋ฅผ ์•„์˜ˆ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐˆ์•„์—Ž๊ธฐ ์ „ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•œ๋ฒˆ๋งŒ ๋” ๋””๋ฒ„๊น…ํ•ด๋ณด์ž ํ–ˆ๋Š”๋ฐ ์˜ค๋Š˜ ์ง„์งœ ์–ด์ด์—†๊ฒŒ ์ด์Šˆ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค... ๋‚ด๊ฐ€ ์ด๊ฒƒ๋•Œ๋ฌธ์— ๋ช‡์ผ์„ ๊ณ ์ƒํ–ˆ๋‹ค๊ณ .... ๐Ÿ˜ญ ์‚ฌ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ๋ฆฌ์•กํŠธ ui ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ MUI๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. MUI ๊ณต์‹๋ฌธ์„œ์—์„œ ํ‘œํ˜„๋˜์–ด์žˆ๋Š”๋Œ€๋กœ, ์ธํ’‹๋ฐ•์Šค๋ฅผ Textfield ์ปดํฌ๋„ŒํŠธ๋กœ ํ‘œํ˜„ํ•˜๊ณ , input ๋ฐ•์Šค ์˜ค๋ฅธ์ชฝ ๋์—์žˆ๋Š” x ๋ฒ„ํŠผ์€ InputProps์˜ endAdornment ์†์„ฑ์œผ๋กœ ๊ฐ์‹ธ์ฃผ์–ด ๊ตฌ์กฐ๋ฅผ ์žก์•˜๋‹ค. 0 && isNameFocused && ( )} ) }} /> Expected Behaviour ์ธํ’‹๋ฐ•์Šค๋ฅผ ๋ˆ„๋ฅด๋ฉด focus ์ฒ˜๋ฆฌ๋˜..
ยท React
์ƒํ™ฉ ๋งˆ์ดํŽ˜์ด์ง€๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ์ด์ „ ํŽ˜์ด์ง€๊ฐ€ ์–ด๋”” ํŽ˜์ด์ง€์—์„œ ์ง„์ž…ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ๋ณด์—ฌ์ค˜์•ผํ•  ์ปดํฌ๋„ŒํŠธ ํ•˜๋‚˜๊ฐ€ ์ฐจ์ด๊ฐ€ ๋‚ฌ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ์šฐ์„  ์ฝ”๋“œ๊ฐ€ ๊ฒน์น˜์ง€๋งŒ ๋งˆ์ดํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋‘ ๊ฐœ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ๋กœ์ง์€ ๋˜‘๊ฐ™์ง€๋งŒ ์ด์ „ ํŽ˜์ด์ง€๊ฐ€ ์–ด๋–ค ํŽ˜์ด์ง€์ธ์ง€ ์ •๋ณด๋งŒ ์•ˆ๋‹ค๋ฉด ๋งˆ์ดํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‘๊ฐœ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์ „ํ˜€ ์—†์–ด๋ณด์˜€๋‹ค. ๋‚ด์ •๋ณด ํŽ˜์ด์ง€์˜ ๋กœ์ง์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ด์ „ ํŽ˜์ด์ง€๊ฐ€ ์ˆ˜์ •์™„๋ฃŒ ํŽ˜์ด์ง€๋ผ๋ฉด? ๋‚ด์ •๋ณด ํŽ˜์ด์ง€ + ํ† ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์ด์ „ ํŽ˜์ด์ง€๊ฐ€ ๊ทธ ์™ธ์˜ ํŽ˜์ด์ง€๋ผ๋ฉด? ๊ทธ๋ƒฅ ๋‚ด์ •๋ณด ํŽ˜์ด์ง€ ๋ฌธ์ œ ๊ณ ๋ฏผํ–ˆ๋˜ ๋ถ€๋ถ„์€ ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ์— Props๋กœ ์กฐ๊ฑด์„ ๋‚ด๋ ค์ฃผ์–ด ์›ํ•˜๋Š” ์กฐ๊ฑด๋Œ€๋กœ ๋‹ค๋ฅธ ๋‘ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฅผ ๋„์›Œ์ค„ ์ˆ˜ ์žˆ์„๊นŒ? ๋ผ๊ณ  ์ƒ๊ฐ์„ ํ–ˆ์—ˆ๋Š”๋ฐ, ์• ์ดˆ์— react-router-dom์˜ useNaviga..
ยท React
์š”์ฆ˜ ์‚ฌ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ๋ชจ๋ฐ”์ผ ํŽ˜์ด์ง€ ์ž‘์—…์„ ํ•ด์„œ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋กœ ํ˜„์žฌ ๊ฐœ๋ฐœ์ค‘์ธ ํŽ˜์ด์ง€๋ฅผ ๋„์›Œ์„œ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์›๋ž˜ ๋ฐฉ๋ฒ•๋Œ€๋กœ ๊ฐœ๋ฐœ pc์™€ ๋ชจ๋ฐ”์ผ์„ ๋˜‘๊ฐ™์€ wifi ํ™˜๊ฒฝ์œผ๋กœ ๋‘๊ณ , ๋ชจ๋ฐ”์ผ์—์„œ ip์ฃผ์†Œ:port๋ฒˆํ˜ธ๋กœ ์ ‘์†ํ–ˆ๋Š”๋ฐ, ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋กœ ๋กœ์ปฌ ์„œ๋ฒ„ ์ ‘์†์ด ์•ˆ๋˜๋Š”๊ฒƒ ..? ๊ณ„์† ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋‚˜๊ณ  ๋ชจ๋ฐ”์ผ ์ ‘์†์ด ์•ˆ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. The URL can't be shown. ์ด๋ผ๋Š” ๋ฌธ๊ตฌ๋งŒ ๊ณ„์† ๋‚˜์˜ด.. ์˜ˆ-์ „์— ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฌธ์ œ์—†์ด ์ž˜ ๋œจ๋˜๊ฒŒ... ์™œ ์•ˆ๋œฐ๊นŒ? ์ƒ๊ฐ์„ ํ•˜๋‹ค๊ฐ€ ์ง€๊ธˆ ํ”„๋กœ์ ํŠธ์˜ ๋ฒˆ๋“ค๋Ÿฌ๋Š” Vite์ด๋ฏ€๋กœ Vite์˜ ๋ฌธ์ œ์ธ๊ฑธ๊นŒ? ํ•˜๊ณ  ์ฐพ์•„์„œ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. npm run dev ๋ช…๋ น์–ด๋กœ ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ๋„์šธ๋•Œ vite ์˜ ๊ธฐ๋ณธ ํ˜ธ์ŠคํŠธ๋Š” localhost, ๊ธฐ๋ณธ ํฌํŠธ๋Š” 5173์œผ..
ยท React
flex container ์•ˆ์— ์žˆ๋Š” ์ž์‹์š”์†Œ๋“ค ์ค‘์—์„œ ํ•œ ์•„์ดํ…œ๋งŒ ๋”ฐ๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ css์˜ margin ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•˜์ง€ ์•Š๊ณ  ์†์‰ฝ๊ฒŒ ์•„์ดํ…œ์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์ „์˜ ๋‚˜๋Š” ์ด flex container์•ˆ์— ๋‚˜๋‰˜์–ด์งˆ ๋‘ ๋ถ€๋ถ„์„ ์ƒ๊ฐํ•ด์„œ 2๊ฐœ์˜ container๋ฅผ ๋˜ ๋งŒ๋“ค๊ณ , ๊ทธ 2๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ space-between ์†์„ฑ์„ ์ฃผ์–ด ์‚ฌ์ด ๊ณต๊ฐ„์„ ๋„์–ด์ฃผ๋Š” ์‹์œผ๋กœ ๊ฐœ๋ฐœํ–ˆ์—ˆ๋‹ค. ๐Ÿฅฒ ๊ทธ๋Ÿฐ๋ฐ ์•„๋ฌด๋ž˜๋„ ์ด ๋ฐฉ๋ฒ•์ด ๋„ˆ๋ฌด๋‚˜๋„ ๋น„ํšจ์œจ์ ์ธ๊ฑฐ ๊ฐ™์•„ ์ฐพ์•„๋ณด๋‹ˆ ์ด๋Ÿฐ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋‹ค. flex container์•ˆ์˜ ์š”์†Œ์ค‘์—์„œ ์ •๋ ฌ๋˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์˜ ๋ฐ˜๋Œ€ ์†์„ฑ์— margin ๊ฐ’์„ auto๋กœ ์ค€๋‹ค. ์ด ์˜ˆ์ œ์—์„  ๋ฐ‘์— ๋”ฑ๋ถ™์—ฌ์„œ ์ •๋ ฌ์‹œํ‚ค๊ณ  ์‹ถ์œผ๋ฏ€๋กœ margin-top ์†์„ฑ auto ๋ฅผ ์ฃผ๋ฉด ๋งˆ๋ฒ•๊ฐ™์ด ์ปจํ…Œ์ด๋„ˆ์˜ ์•„๋ž˜๋ถ€..
ยท React
๋ฐ”์ด๋„ˆ๋ฆฌ ํƒ€์ž…์˜ ํŒŒ์ผ ์‘๋‹ต ๋ชจํ‚นํ•˜๊ธฐ ์ง€๊ธˆ ์‚ฌ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ๋ฐฑ์—”๋“œ api์™€ ํ”„๋ŸฐํŠธ ๊ฐœ๋ฐœ์„ ๋™์‹œ์— ๋ณ‘ํ–‰์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋ฒ„๋‹จ API๊ฐ€ ์™„์„ฑ๋˜๊ณ  ๋ฐฐํฌ๋˜๊ธฐ ์ด์ „์—๋Š” msw๋ผ๋Š” ์„œ๋ฒ„ API ๋ชจํ‚น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์‹ค์ œ ๋ฐฑ์—”๋“œ api ์—†์ด๋„ ํ”„๋ŸฐํŠธ๋‹จ์—์„œ mock ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•ด์„œ ๊ฐ€์งœ๋กœ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. json ํ˜•์‹์œผ๋กœ ํ†ต์‹ ์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฑด ๊ณต์‹๋ฌธ์„œ์—๋„ ์ž˜ ๋‚˜์™€์žˆ์–ด์„œ Mocking์„ ํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์— ๋ฐ”์ด๋„ˆ๋ฆฌ ํƒ€์ž…์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ get ํ•ด์˜ค๋Š” ๋ถ€๋ถ„์—์„œ ๋ชฉ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํฐ ๋‚œ๊ด€์ด ์žˆ์—ˆ๋‹ค. ์‘๋‹ต ์˜ˆ์‹œ ํ”„๋ŸฐํŠธ์—์„œ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ get ํ•ด์˜ฌ๋•Œ ์„œ๋ฒ„์—์„œ ์ฃผ๋Š” ์‘๋‹ต์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ์ฆ‰, ์„œ๋ฒ„์—์„œ๋Š” ์ด ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ๋ฅผ 0๊ณผ 1 ๊ฐ’๋งŒ ์กด์žฌํ•˜๋Š” ์ด์ง„ ๋ฐ์ดํ„ฐ๋กœ ์‘๋‹ตํ•ด์ฃผ๋Š” ..
ยท React
MVVM ์•„ํ‚คํ…์ณ ๋””์ž์ธ ํŒจํ„ด MVVM์€ Model - View - View Model์˜ ์•ฝ์ž๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” presentation UI๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ํŒจํ„ด์ด๋‹ค. View ์•ฑ์˜ ๋ณด์—ฌ์ง€๋Š” UI View Model ์•ฑ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๊ณ ์žˆ์Œ ๋ทฐ์™€ ๋ชจ๋ธ ์‚ฌ์ด์—์„œ ๋ทฐ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋กœ์ง์„ ์‹คํ–‰ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ ๋ทฐ๋ฅผ ๊ฐฑ์‹  ๋ชจ๋ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ, ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณต Model ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ ๋ทฐ๋ชจ๋ธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ต ๋ทฐ ui ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ props๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ƒํƒœ์— ๋”ฐ๋ผ์„œ ํ™”๋ฉด์ด ๋™์ž‘ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด ์ด๋ฒคํŠธ์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ๋ทฐ์—์„œ ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•˜์ง€์•Š๊ณ , ์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ์ธ View Model ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค. interface..
hana1203
'React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)