๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

ยท 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๋ฅผ ๊ฐ€์ง€๊ณ ..
ํšŒ์‚ฌ 1์ฐจ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ๋งˆ๊ฐ์—, ๋ฐฉํ†ต๋Œ€ ๊ธฐ๋ง๊ณ ์‚ฌ์— ~ ๊ฝค๋‚˜ ๋ฐ”์œ 12์›”์„ ๋ณด๋ƒˆ๋‹ค. ์‹œํ—˜์€ 12์›” 10์ผ์— ๋๋‚ฌ๋Š”๋ฐ.. ์‹œ์—ฐ์ด ๊ฑฐ์˜ ์—ฐ๋ง ๊ฐ€๊นŒ์ด์ธ 12์›” 20์ผ์— ์žกํ˜€์žˆ์–ด ๊ทธ๋•Œ๊นŒ์ง€ ์กฐ๊ธˆ ํž˜๋“ค์—ˆ๋˜ ๋Š๋‚Œ์ด ์žˆ์—ˆ๋‹ค. ์‹œํ—˜ ๋ฐ ์‹œ์—ฐ์ด ๋๋‚˜๊ณ ๋Š” ์ข€ ๋„๋„ํ•˜๊ฒŒ ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ, ์—ฐ๋ง๊นŒ์ง€ ๋งจ๋‚  ํšŒ์‚ฌ๋ฅผ ๊ฐ€์„œ์ธ์ง€ ๋ชฉ/์–ด๊นจ ํ†ต์ฆ์ด ์ง€์†๋˜์–ด์„œ ๊ทธ๋žฌ๋Š”์ง€ ์—๋„ˆ์ง€๊ฐ€ ์—†๋˜ ๋‚˜๋Š”... ๋‚ด ๊ฐœ์ธ์‹œ๊ฐ„์—๋Š” ๊ฐœ๋ฐœ๊ณต๋ถ€๋Š” ํ•˜์ง€ ์•Š๊ณ  ๊ฑฐ์˜ ์‰ฌ๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทผ๋ฐ๋„ ํšŒ์‚ฌ๋ฅผ ๋งจ๋‚  ๋‚˜๊ฐ€๋‹ˆ ๋ญ”๊ฐ€ ์ถฉ๋ถ„ํžˆ ์‰ฌ์ง€ ๋ชปํ•œ ๋Š๋‚Œ์ด ๊ณ„์† ๋“ค์—ˆ๋‹ค.ใ…  ์งง๊ฒŒ ํœด๊ฐ€๋ฅผ ๋‚ด๊ณ  12์›” ํšŒ๊ณ ๋ฅผ 1์›” ์ค‘์ˆœ์ด ๋˜์–ด์„œ ์ด์ œ์„œ์•ผ ์ œ๋Œ€๋กœ ๋ฐœํ–‰ํ•œ๋‹ค~ ํšŒ์‚ฌ ์—…๋ฌด - ํšŒ์›๊ฐ€์ž…, ๋งˆ์ดํŽ˜์ด์ง€ ๊ฐœ๋ฐœ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํšŒ์›๊ฐ€์ž…, ๋งˆ์ดํŽ˜์ด์ง€ ์ธ์ฆ ๊ด€๋ จ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ํšŒ์‚ฌ์˜ ์„œ๋น„์Šค๊ฐ€ 3๊ฐœ๋กœ ..
ยท 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..
ยท Git
์ƒํ™ฉ ๊ฐœ์ธ ๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ๋„์ค‘, ๋งค๋‹ˆ์ €๊ฐ€ develop์— ์ƒˆ๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ‘ธ์‰ฌํ–ˆ์œผ๋‹ˆ ์ƒˆ๋กœ ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ๋ฅผ Pullํ•ด์„œ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ํ•จ ๋ธŒ๋žœ์น˜ develop ๋ธŒ๋žœ์น˜ - ํŒ€์›๋“ค์˜ ์ž‘์—…์„ ๋ชจ๋‘ ํ•ฉ์น˜๋Š” ๋ธŒ๋žœ์น˜ RND-2457 ๋ธŒ๋žœ์น˜ - ๋‚ด ๊ฐœ์ธ ์ž‘์—… ํ”ผ์ณ ๋ธŒ๋žœ์น˜ ์ง€๊ธˆ ๋‚˜๋Š” ํ”ผ์ณ๋ธŒ๋žœ์น˜์ธ RND-2457 ๋ธŒ๋žœ์น˜์— ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ git pull์„ ํ•ด์„œ ์›๊ฒฉ์ €์žฅ์†Œ์— ํ‘ธ์‰ฌ๋œ ์ƒˆ๋กœ์šด ์ปค๋ฐ‹๋‚ด์šฉ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋‚˜์˜ ํ”ผ์ณ๋ธŒ๋žœ์น˜ (์œ„ ์‚ฌ์ง„์˜ ๋นจ๊ฐ„ ํ™”์‚ดํ‘œ)๋ฅผ ๋ณด๋ฉด, ๊ฐ€์ง€ ๋ชจ์–‘์ด ์ตœ์‹ ์ƒํƒœ๊ฐ€ ๋ฐ˜์˜๋˜๊ธฐ ์ด์ „ ์ƒํƒœ์˜ develop ๋ธŒ๋žœ์น˜ (์‚ฌ์ง„์—๋Š” ์งค๋ ค์„œ ์•ˆ๋ณด์ž„ ๋” ๋งจ ๋ฐ‘์— ๊ฐ€์ง€์˜ ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์Œ)์—์„œ ๋”ฐ์™€ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ธŒ๋žœ์น˜์ด๋ฏ€๋กœ ๋ถ„ํ™์ƒ‰์œผ๋กœ ๋ณด์ธ๋‹ค. ์ตœ์‹  ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ๊ฐ€ ๋ฐ˜์˜๋œ develop ๋ธŒ๋žœ์น˜๋Š” ..
ยท 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 ๋ฅผ ์ฃผ๋ฉด ๋งˆ๋ฒ•๊ฐ™์ด ์ปจํ…Œ์ด๋„ˆ์˜ ์•„๋ž˜๋ถ€..
hana1203
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (5 Page)