๋ชจ๋
ธ๋ ํฌ ๋์
์ง๊ธ ํ์ฌ ํ๋ฐํธ ํ์ ํ๋ก์ ํธ๋ ์๋๋ ๋๋ฉ์ธ ๋ฉ๋ด๋ณ๋ก ๋๋์ด์ ๋ฉํฐ๋ ํฌ Multi repo ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์ ํ์๋ค. ์ฆ ๊ฐ๋ฐ์๋ง๋ค ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํ๋ํ๋ ๋ฐ๋ก ๊ด๋ฆฌํด์ ๊ฐ๋ฐํ์๊ณ , ํ์๋ผ๋ฆฌ ๋๊ฐ์ ui๋ฅผ ๊ฐ๋ฐํ๋ค๊ณ ํ์ฌ๋ ์ ์ฅ์๊ฐ์ ์ปจํ
์คํธ ๊ณต์ ๊ฐ ์ด๋ ค์์ ๊ฐ๊ฐ์ธ ๊ฐ์๊ฐ ๊ด๋ฆฌํ๋ ๋ ํฌ์งํ ๋ฆฌ ๋ด๋ถ์์ ๋๊ฐ์ ui๋ฅผ ์ค๋ณตํด์ ๊ฐ๋ฐํ๊ธฐ๋ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด์ ์ฌ๋ฌ๊ณณ์์ ์ค๋ณต์ผ๋ก ์ฌ์ฉํ๋ ์ฝ๋๋ฅผ ๊ณต์ ํด์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ํ๋์ ์ฝ๋๋ฒ ์ด์ค์์ ๋ชจ๋ ํ๋ก์ ํธ์ ์ฝ๋์ ์์์ ๊ด๋ฆฌํ์ฌ ์๋ก์ ๊ด๊ณ์ ์์กด์ฑ์ ์ฝ๊ฒ ํ์
ํ ์ ์๋๋ก ๋ชจ๋
ธ๋ ํฌ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค. ๋ชจ๋
ธ๋ ํฌ ํ๊ฒฝ์์ ์ฒ์ ๊ฐ๋ฐํ๋ฉด์ ํ๋ก์ ํธ ์คํ์ด ์๋ ๋๊ฐ ์์๋๋ฐ ์ด๋ ๋ง์ฃผํ ์๋ฌ๋ฅผ ์ ๋ฆฌํ๋ค. Monorepo ๋น๋ ๋๊ตฌ Turborepo ..
๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
๋ฌธ์ ํธ๋ฆฌ๊ตฌ์กฐ ๋ฐ์ดํฐ 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๊ฐ๋ก ..
์ด์์ฌํญ 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: ..
ํด๋ผ์ด์ธํธ ๋จ์์ http ๋น๋๊ธฐ ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก axios๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์๋ฒ์ ์์ฒญํ๋๋ฐ ์๊พธ ์๋ฒ์์ ์๋ฌ๊ฐ ๋ฌ๋ค. API ์์ฒญ ํ์์ ์๋์ ๊ฐ๋ค. ์์ฒญ ๋ฉ์๋๋ POST ์์ฒญ ๋ฐ๋๋ ์๋ฌด๋ฐ ๋ฐ์ดํฐ๋ ๋ฃ์ง ์์์ผํจ ์์ฒญ ํค๋์ ์์ฒญ ํ๋ผ๋ฉํฐ ๊ฐ์ผ๋ก๋ง ์๋ฒ์ ์์ฒญ ๋คํธ์ํฌ ํญ์์ ํ์ธํด๋ณด๋, ํค๋์ ํ๋ผ๋ฏธํฐ๋ก ์ ์์ฒญ์ด๊ฐ์ง ์๊ณ , payload ๋ฐ๋์ ํค๋์ ํ๋ผ๋ฏธํฐ๋ก ์ ์ด์ค ๊ฐ์ฒด๊ฐ ์์ฒญ ๋ฐ๋๋ก ๋ณด๋ด์ ธ์ ์ค๋ฅ๊ฐ ๋๋ ๊ฒ์ผ๋ก ํ์ธ์ด ๋์๋ค. ๊ธฐ์กด ์ฝ๋ axios.post( 'url', { headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, params: { transactionId, email, pageUri: 'http://192..
์๋ก ์ ๋ง ๋ช๋ ๋ฉฐ์น ์ ๋๋ฒ๊น
ํ์ง๋ง ํด๊ฒฐ ์๋๋ ์ด์๊ฐ ์์๋ค... Mui ํ๋ ์์ํฌ ์์ฒด์ ๋ฌธ์ ์ธ๊ฑธ๊น? ํ๊ณ Textfield ์ปดํฌ๋ํธ๋ฅผ ์์ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ก ๊ฐ์์๊ธฐ ์ ๋ง์ง๋ง์ผ๋ก ํ๋ฒ๋ง ๋ ๋๋ฒ๊น
ํด๋ณด์ ํ๋๋ฐ ์ค๋ ์ง์ง ์ด์ด์๊ฒ ์ด์๊ฐ ํด๊ฒฐ๋์๋ค... ๋ด๊ฐ ์ด๊ฒ๋๋ฌธ์ ๋ช์ผ์ ๊ณ ์ํ๋ค๊ณ .... ๐ญ ์ฌ๋ด ํ๋ก์ ํธ๋ ๋ฆฌ์กํธ ui ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก MUI๋ฅผ ์ฌ์ฉํ๋ค. MUI ๊ณต์๋ฌธ์์์ ํํ๋์ด์๋๋๋ก, ์ธํ๋ฐ์ค๋ฅผ Textfield ์ปดํฌ๋ํธ๋ก ํํํ๊ณ , input ๋ฐ์ค ์ค๋ฅธ์ชฝ ๋์์๋ x ๋ฒํผ์ InputProps์ endAdornment ์์ฑ์ผ๋ก ๊ฐ์ธ์ฃผ์ด ๊ตฌ์กฐ๋ฅผ ์ก์๋ค. 0 && isNameFocused && ( )} ) }} /> Expected Behaviour ์ธํ๋ฐ์ค๋ฅผ ๋๋ฅด๋ฉด focus ์ฒ๋ฆฌ๋..
์ํฉ ๋ง์ดํ์ด์ง๋ฅผ ๊ฐ๋ฐํ๋๋ฐ ์ด์ ํ์ด์ง๊ฐ ์ด๋ ํ์ด์ง์์ ์ง์
ํ๋๋์ ๋ฐ๋ผ ๋ณด์ฌ์ค์ผํ ์ปดํฌ๋ํธ ํ๋๊ฐ ์ฐจ์ด๊ฐ ๋ฌ๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ์ ๋ชจ๋ฅด๊ฒ ์ด์ ์ฐ์ ์ฝ๋๊ฐ ๊ฒน์น์ง๋ง ๋ง์ดํ์ด์ง์ ํด๋นํ๋ ํ์ด์ง๋ฅผ ๋ ๊ฐ๋ฅผ ๋ง๋ค์๋ค. ๋ก์ง์ ๋๊ฐ์ง๋ง ์ด์ ํ์ด์ง๊ฐ ์ด๋ค ํ์ด์ง์ธ์ง ์ ๋ณด๋ง ์๋ค๋ฉด ๋ง์ดํ์ด์ง ์ปดํฌ๋ํธ๋ฅผ ๋๊ฐ ๋ง๋ค ํ์๊ฐ ์ ํ ์์ด๋ณด์๋ค. ๋ด์ ๋ณด ํ์ด์ง์ ๋ก์ง์ ์๋์ ๊ฐ๋ค. ์ด์ ํ์ด์ง๊ฐ ์์ ์๋ฃ ํ์ด์ง๋ผ๋ฉด? ๋ด์ ๋ณด ํ์ด์ง + ํ ์คํธ ์ปดํฌ๋ํธ ์ด์ ํ์ด์ง๊ฐ ๊ทธ ์ธ์ ํ์ด์ง๋ผ๋ฉด? ๊ทธ๋ฅ ๋ด์ ๋ณด ํ์ด์ง ๋ฌธ์ ๊ณ ๋ฏผํ๋ ๋ถ๋ถ์ ํ์ด์ง ์ปดํฌ๋ํธ์ Props๋ก ์กฐ๊ฑด์ ๋ด๋ ค์ฃผ์ด ์ํ๋ ์กฐ๊ฑด๋๋ก ๋ค๋ฅธ ๋ ๋ฐฉํฅ์ผ๋ก ๋ฅผ ๋์์ค ์ ์์๊น? ๋ผ๊ณ ์๊ฐ์ ํ์๋๋ฐ, ์ ์ด์ react-router-dom์ useNaviga..
์ํฉ ๊ฐ์ธ ๋ธ๋์น์์ ๊ฐ๋ฐ์ ํ๊ณ ์๋ ๋์ค, ๋งค๋์ ๊ฐ develop์ ์๋ก ๋ณ๊ฒฝ์ฌํญ์ ํธ์ฌํ์ผ๋ ์๋ก ๋ณ๊ฒฝ๋ ์ฝ๋๋ฅผ Pullํด์ ๊ฐ์ธ ํ๋ก์ ํธ์ ์ ์ฉํด์ ์ฌ์ฉํ๋ผ๊ณ ํจ ๋ธ๋์น develop ๋ธ๋์น - ํ์๋ค์ ์์
์ ๋ชจ๋ ํฉ์น๋ ๋ธ๋์น RND-2457 ๋ธ๋์น - ๋ด ๊ฐ์ธ ์์
ํผ์ณ ๋ธ๋์น ์ง๊ธ ๋๋ ํผ์ณ๋ธ๋์น์ธ RND-2457 ๋ธ๋์น์ ์๋ค. ์ฌ๊ธฐ์ git pull์ ํด์ ์๊ฒฉ์ ์ฅ์์ ํธ์ฌ๋ ์๋ก์ด ์ปค๋ฐ๋ด์ฉ ๋ณผ ์ ์๋ค. ๋์ ํผ์ณ๋ธ๋์น (์ ์ฌ์ง์ ๋นจ๊ฐ ํ์ดํ)๋ฅผ ๋ณด๋ฉด, ๊ฐ์ง ๋ชจ์์ด ์ต์ ์ํ๊ฐ ๋ฐ์๋๊ธฐ ์ด์ ์ํ์ develop ๋ธ๋์น (์ฌ์ง์๋ ์งค๋ ค์ ์๋ณด์ ๋ ๋งจ ๋ฐ์ ๊ฐ์ง์ ๋ฒ ์ด์ค๊ฐ ์์)์์ ๋ฐ์ ์๋ก ๋ง๋ค์ด์ง ๋ธ๋์น์ด๋ฏ๋ก ๋ถํ์์ผ๋ก ๋ณด์ธ๋ค. ์ต์ ๋ณ๊ฒฝ๋ ์ฝ๋๊ฐ ๋ฐ์๋ develop ๋ธ๋์น๋ ..
์์ฆ ์ฌ๋ด ํ๋ก์ ํธ์์ ๋ชจ๋ฐ์ผ ํ์ด์ง ์์
์ ํด์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ก ํ์ฌ ๊ฐ๋ฐ์ค์ธ ํ์ด์ง๋ฅผ ๋์์ ํ์ธํ๊ณ ์ถ์๋ค. ์๋ ๋ฐฉ๋ฒ๋๋ก ๊ฐ๋ฐ pc์ ๋ชจ๋ฐ์ผ์ ๋๊ฐ์ wifi ํ๊ฒฝ์ผ๋ก ๋๊ณ , ๋ชจ๋ฐ์ผ์์ ip์ฃผ์:port๋ฒํธ๋ก ์ ์ํ๋๋ฐ, ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ก ๋ก์ปฌ ์๋ฒ ์ ์์ด ์๋๋๊ฒ ..? ๊ณ์ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋๊ณ ๋ชจ๋ฐ์ผ ์ ์์ด ์๋๋ ๋ฌธ์ ๊ฐ ์์๋ค. The URL can't be shown. ์ด๋ผ๋ ๋ฌธ๊ตฌ๋ง ๊ณ์ ๋์ด.. ์-์ ์ ๋ฆฌ์กํธ ํ๋ก์ ํธ์์๋ ๋ฌธ์ ์์ด ์ ๋จ๋๊ฒ... ์ ์๋ฐ๊น? ์๊ฐ์ ํ๋ค๊ฐ ์ง๊ธ ํ๋ก์ ํธ์ ๋ฒ๋ค๋ฌ๋ Vite์ด๋ฏ๋ก Vite์ ๋ฌธ์ ์ธ๊ฑธ๊น? ํ๊ณ ์ฐพ์์ ํด๊ฒฐ ํ ์ ์์๋ค. npm run dev ๋ช
๋ น์ด๋ก ๊ฐ๋ฐ ์๋ฒ๋ฅผ ๋์ธ๋ vite ์ ๊ธฐ๋ณธ ํธ์คํธ๋ localhost, ๊ธฐ๋ณธ ํฌํธ๋ 5173์ผ..
flex container ์์ ์๋ ์์์์๋ค ์ค์์ ํ ์์ดํ
๋ง ๋ฐ๋ก ์ ๋ ฌํ๊ณ ์ถ์ ๋ css์ margin ์์ฑ์ ์ฌ์ฉํ๋ฉด ๋ณต์กํ์ง ์๊ณ ์์ฝ๊ฒ ์์ดํ
์ ์ ๋ ฌํ ์ ์๋ค. ์์ ์ ๋๋ ์ด flex container์์ ๋๋์ด์ง ๋ ๋ถ๋ถ์ ์๊ฐํด์ 2๊ฐ์ container๋ฅผ ๋ ๋ง๋ค๊ณ , ๊ทธ 2๊ฐ์ ์ปจํ
์ด๋๋ฅผ space-between ์์ฑ์ ์ฃผ์ด ์ฌ์ด ๊ณต๊ฐ์ ๋์ด์ฃผ๋ ์์ผ๋ก ๊ฐ๋ฐํ์๋ค. ๐ฅฒ ๊ทธ๋ฐ๋ฐ ์๋ฌด๋๋ ์ด ๋ฐฉ๋ฒ์ด ๋๋ฌด๋๋ ๋นํจ์จ์ ์ธ๊ฑฐ ๊ฐ์ ์ฐพ์๋ณด๋ ์ด๋ฐ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด ์์๋ค. flex container์์ ์์์ค์์ ์ ๋ ฌ๋๊ณ ์ถ์ ๋ถ๋ถ์ ๋ฐ๋ ์์ฑ์ margin ๊ฐ์ auto๋ก ์ค๋ค. ์ด ์์ ์์ ๋ฐ์ ๋ฑ๋ถ์ฌ์ ์ ๋ ฌ์ํค๊ณ ์ถ์ผ๋ฏ๋ก margin-top ์์ฑ auto ๋ฅผ ์ฃผ๋ฉด ๋ง๋ฒ๊ฐ์ด ์ปจํ
์ด๋์ ์๋๋ถ..