axios

์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๊ฐ€ ๋А๋ ค ์‚ฌ์šฉ์ž์—๊ฒŒ ๋กœ๋”ฉ ์ค‘์ž„์„ ์•Œ๋ ค์ค„ ๋กœ๋”ฉ UI๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๊ณผ์ •์—์„œ ์‹œ๊ฐ„์ด ๊ฑธ๋ ค, ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ์ง€๊ฐ€ ์—…๋กœ๋“œ๋˜๋Š” ๋™์•ˆ ์•„๋ฌด๋Ÿฐ ํ‘œ์‹œ๊ฐ€ ์—†์–ด ์ด๋ฏธ์ง€๊ฐ€ ์—…๋กœ๋“œ๋˜๊ณ  ์žˆ์Œ์„ ์ธ์‹ํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์—…๋กœ๋“œ ์ค‘์ž„์„ ๋ช…ํ™•ํžˆ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ๋กœ๋”ฉ UI๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. ๋‚˜๋Š” ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์‹œ ์ƒ๋‹จ์— progressBar๋ฅผ ํ†ตํ•ด ์—…๋กœ๋“œ ์ง„ํ–‰๋ฅ ์„ ํ‘œ์‹œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. spinner, skeleton ๋“ฑ ๋กœ๋”ฉ UI ์ค‘์— progressBar๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋Š” ๋‹ค๋ฅธ UI๋ฅผ ๊ฐ€๋ฆฌ์ง€ ์•Š๊ณ  ์ „์—ญ์—์„œ ๋กœ๋”ฉ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ํ‘œ์‹œํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. OnUploadProgress๋ฅผ ํ™œ์šฉํ•ด ProgressBar์— ์ง„ํ–‰๋ฅ  ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ProgressBar ์ „์—ญ ์ƒํƒœ๊ด€๋ฆฌ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ €์žฅํ•˜๊ธฐ ๋“ฑ์˜..
์ฒ˜์Œ ํ•ด๋ณด๋Š” ์—‘์…€ ๋‹ค์šด๋กœ๋“œ๋‹ค! ใ…Žใ…Ž ๋ฐฑ์•ค๋“œ์—์„œ ์—‘์…€ ํŒŒ์ผ์ด๋ž‘ ์—‘์…€ ํŒŒ์ผ๋ช…์„ response์— ๋‹ด์•„์„œ ๋ณด๋‚ด์ฃผ์‹ ๋‹ค๊ณ  ํ•ด์„œ ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์•„์„œ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•ด ๋ดค๋‹ค ๊ทธ์ „์—! Blob (Binary Large Object) ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋กœ, ๋ฐฑ์•ค๋“œ์—์„œ ์—‘์…€ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ํ”„๋ก ํŠธ์— ๋ฐ›์„ ๋•Œ Blob๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค 1. api ํ˜ธ์ถœ axiosT.post('/test/excel-download', { ...form }, { responseType: 'blob', headers: { 'Content-Type': 'multipart/form-data', }, }, ) 2. ์—‘์…€ ๋‹ค์šด๋กœ๋“œ api๋กœ ํ˜ธ์ถœ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ Blob ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด ์ค€๋‹ค a ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•ด์„œ href์— Blob ..
ํ˜„์žฌ ์ƒํ™ฉ๋‚˜๋Š” jwt๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐaccessToken๊ณผ refreshToken์„ ๋ชจ๋‘ ์ฟ ํ‚ค์— ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋‹ค.๋ชจ๋‘ httpOnly, Secure ์˜ต์…˜์„ ์ฃผ์–ด ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ–ˆ๋‹ค.httpOnly: document.cookie๋ฅผ ํ†ตํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ ‘๊ทผ์„ ๋ง‰๋Š”๋‹ค. Secure: HTTPS๋กœ ํ†ต์‹ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค๊ฐ€ ์ „์†ก๋œ๋‹ค. ์ „์ฒด์ ์ธ ํฐ ๊ทธ๋ฆผ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.accessToken ์žฌ๋ฐœ๊ธ‰ ์‹œ refreshToken์„ ์™œ ๊ฐฑ์‹ ํ•˜๋А๋ƒ... ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์„œ๋น„์Šค ์ƒ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์ตœ๋Œ€ํ•œ ์˜ค๋ž˜ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ–ˆ๋‹ค. token์„ ์–ด๋””์— ์ €์žฅํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ• ์ง€์— ๋Œ€ํ•ด ์ •๋‹ต์€ ์—†๊ณ  ์ฃผ์–ด์ง„ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฑฐ ๊ฐ™๋‹ค.axios ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ”„๋ก ํŠธ์—์„œ ์ฟ ํ‚ค๋ฅผ ์ง์ ‘ ๋‹ค๋ฃฐ ์ˆ˜ ์—†์–ด(httpOnly์˜ต์…˜..
์†”B
'axios' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก