๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Lect & Tip/node, Angular, React17

REACT Axios, fetch API, SWR, React Query ์„œ๋ฒ„ ํ†ต์‹  ๋ฐ ๋ฐ์ดํ„ฐ ํŽ˜์นญ ์ตœ์ ํ™” ์ปดํฌ๋„ŒํŠธ REACT Axios, fetch API, SWR, React Query ์„œ๋ฒ„ ํ†ต์‹  ๋ฐ ๋ฐ์ดํ„ฐ ํŽ˜์นญ ์ตœ์ ํ™” ์ปดํฌ๋„ŒํŠธํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์™€ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ ํŽ˜์นญ์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” REACT axios, fetch API, SWR, React Query ๋“ฑ ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์„ ์ตœ์ ํ™”ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ํŽ˜์นญ์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ ๋””์ž์ธ ์ „๋žต์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.REACT ์„œ๋ฒ„ ํ†ต์‹  ๋ฐ ๋ฐ์ดํ„ฐ ํŽ˜์นญ์˜ ์ค‘์š”์„ฑ๋ฐ์ดํ„ฐ ํŽ˜์นญ ์ตœ์ ํ™”๋Š” ์—ฌ๋Ÿฌ ์ธก๋ฉด์—์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.๋น ๋ฅธ ์‘๋‹ต ์†๋„: ์„œ๋ฒ„์™€์˜ ํ†ต์‹  ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜์—ฌ, ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.๋„คํŠธ.. 2025. 8. 21.
๋ฆฌ์•กํŠธ ์ปค์Šคํ…€ ํผ ์ปดํฌ๋„ŒํŠธ์™€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ธฐ๋ฒ• ๋ฆฌ์•กํŠธ ์ปค์Šคํ…€ ํผ ์ปดํฌ๋„ŒํŠธ์™€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ธฐ๋ฒ•๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํผ์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ์ž…๋ ฅ ์š”์†Œ๋ถ€ํ„ฐ ๋ณต์žกํ•œ ํผ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ํผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX) ํ–ฅ์ƒ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•ˆ์ •์„ฑ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฆฌ์•กํŠธ์—์„œ ์ปค์Šคํ…€ ํผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ•จ๊ป˜, ๋Œ€ํ‘œ์ ์ธ ํผ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Formik๊ณผ React Hook Form์„ ํ™œ์šฉํ•˜์—ฌ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.ํผ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์„ฑ์˜ ์ค‘์š”์„ฑํผ ์ปดํฌ๋„ŒํŠธ๋Š” ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ์—ญํ• ์„ ๋„˜์–ด์„œ, ์‚ฌ์šฉ์ž์™€์˜ ์ธํ„ฐ๋ž™์…˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ๋ช…ํ™•ํ•œ .. 2025. 8. 19.
๋ฆฌ์•กํŠธ) ๋ฐ˜์‘ํ˜• ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๋ฐ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„ ๋ฐ˜์‘ํ˜• ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๋ฐ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„ํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค ํ™˜๊ฒฝ์— ๋งž์ถฐ UI๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ๋ฐ˜์‘ํ˜• ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”์™€ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ ๋‚ด์—์„œ ์‰ฝ๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ํ•ต์‹ฌ ์š”์†Œ์ž…๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ๊ณ ๋ คํ•œ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”์™€ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์˜ UI/UX ๋””์ž์ธ ํŒจํ„ด๊ณผ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ์ƒ์„ธํžˆ ์‚ดํŽด๋ณด๊ณ , ์‹ค์ œ ์ฝ”๋“œ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ๋‹จ๊ณ„๋ณ„ ๊ตฌํ˜„ ์ „๋žต์„ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.๋ฐ˜์‘ํ˜• ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”์˜ ํ•„์š”์„ฑ๊ณผ ๊ธฐ๋ณธ ์›์น™๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์€ ๋ฐ์Šคํฌํƒ‘, ํƒœ๋ธ”๋ฆฟ, ๋ชจ๋ฐ”์ผ ๋“ฑ ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์— ๋”ฐ๋ผ ์œ ๋™์ ์ธ ๋ ˆ์ด์•„์›ƒ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค‘์š”ํ•œ ๋ฉ”๋‰ด๋“ค์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ๋ฐ˜์‘ํ˜•.. 2025. 8. 15.
React JS ๋ฐ์ดํ„ฐํ”ผ์ปค ์ตœ์†Œ/์ตœ๋Œ€ ๋‚ ์งœ ์„ค์ • ๊ฐ€์ด๋“œ React JS ๋ฐ์ดํ„ฐํ”ผ์ปค ์ตœ์†Œ/์ตœ๋Œ€ ๋‚ ์งœ ์„ค์ • ๊ฐ€์ด๋“œ์ตœ๊ทผ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋‚ ์งœ ์„ ํƒ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. React๋ฅผ ๋น„๋กฏํ•œ ์ตœ์‹  ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋‚ ์งœ ์„ ํƒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘์—์„œ๋„ JavaScript ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐํ”ผ์ปค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋‚ ์งœ ๋ฒ”์œ„๋ฅผ ์†์‰ฝ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.์˜ค๋Š˜์€ React์—์„œ JS ๋ฐ์ดํ„ฐํ”ผ์ปค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ตœ์†Œ ๋‚ ์งœ์™€ ์ตœ๋Œ€ ๋‚ ์งœ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.๋ฐ์ดํ„ฐํ”ผ์ปค์˜ ํ•„์š”์„ฑ๊ณผ ๊ธฐ๋ณธ ๊ฐœ๋…์›น ํผ์ด๋‚˜ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ, ์ผ์ • ๊ด€๋ฆฌ ๋“ฑ ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‚ ์งœ ์„ ํƒ ๊ธฐ๋Šฅ์€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ์ž„์˜์˜ ๋‚ ์งœ๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ๋‘๋Š” ๋Œ€์‹ , ๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ๋ฒ”์œ„ ๋‚ด์—์„œ.. 2025. 2. 12.
๋ฆฌ์•กํŠธ api axios ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ ๊ตฌํ˜„ react.JS filesaver.saveAs javascript blob response.headers ๊ฐ’์—์„œ filename์ถ”์ถœํ•˜๊ธฐ ๋ฆฌ์•กํŠธ api axios ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ ๊ตฌํ˜„ react.JS filesaver.saveAs javascript blob response.headers ๊ฐ’์—์„œ filename์ถ”์ถœํ•˜๊ธฐ๋ฆฌ์•กํŠธ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์—‘์…€ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ API ํ˜ธ์ถœ ์‹œ Axios๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ณ , ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ œ์•ฝ๊ณผ ์ด์Šˆ๋ฅผ ๋งˆ์ฃผํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฆฌ์•กํŠธ ํ™˜๊ฒฝ์—์„œ Axios๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์—‘์…€ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ•จ๊ป˜, response.headers์— ํฌํ•จ๋œ ํŒŒ์ผ๋ช…์„ ์ถ”์ถœํ•˜๋Š” ๊ผผ์ˆ˜์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ๋ฐ ๊ตฌํ˜„ ๋ฐฐ๊ฒฝ๋ฆฌ์•กํŠธ๋Š” ๋‹จ์ˆœํ•œ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ.. 2025. 2. 11.
[React] SPA ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์Šคํฌ๋กค ๋งจ ์œ„ ์œ ์ง€ ํ•˜๋Š” ๋ฐฉ๋ฒ• [React] SPA ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์Šคํฌ๋กค ๋งจ ์œ„ ์œ ์ง€ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ตœ๊ทผ ์›น ๊ฐœ๋ฐœ ํŠธ๋ Œ๋“œ์—์„œ ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SPA)์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์ด ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ React์™€ ๊ฐ™์€ ํ”„๋ก ํŠธ์—”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SPA๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ, ํŽ˜์ด์ง€ ๊ฐ„ ์ „ํ™˜์ด ๋น ๋ฅด๊ณ  ๋ถ€๋“œ๋Ÿฌ์šด ์ „ํ™˜ ํšจ๊ณผ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ SPA์˜ ํŠน์„ฑ์ƒ ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์Šคํฌ๋กค ์œ„์น˜๊ฐ€ ์ด์ „ ํŽ˜์ด์ง€์˜ ์œ„์น˜๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” React ํ™˜๊ฒฝ์—์„œ SPA ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์Šคํฌ๋กค์„ ํ•ญ์ƒ ๋งจ ์œ„๋กœ ์œ ์ง€ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๊ณผ ๊ทธ ๊ตฌํ˜„ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์‹ฌ๋„ ์žˆ๊ฒŒ ๋‹ค๋ฃจ์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.SPA์™€ ์Šคํฌ๋กค ๋ฌธ์ œ์˜ ์ดํ•ดSPA๋Š” ํ•œ ๋ฒˆ์˜ ๋กœ๋”ฉ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๋ฅผ ๋ถˆ๋Ÿฌ.. 2025. 2. 10.