[DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 14์ผ์ฐจ
์ค๋์ ๋๋์ด React๋ก ์ธ๋ถ API๋ฅผ ๋ถ๋ฌ์ค๊ณ , ์ค์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํด ๋ณด๋ ์ค์ต์ ์งํํ๋ค.
๋ด์ค API๋ฅผ ์ฐ๋ํด์ ์นดํ ๊ณ ๋ฆฌ๋ณ ๋ด์ค๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ด์ค ๋ทฐ์ด ํ์ด์ง๋ฅผ ์ง์ ๋ง๋ค๋ฉด์,
๊ทธ๋์ ๋ฐฐ์์๋ ๊ฐ๋ ๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง๋ฅผ ์ค๊ฐํ ์ ์์๋ค.
๐ ์ค๋ ๋ฐฐ์ด ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ
1. ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๊ฐ๋ ๊ณผ ํ๋ฆ
- setTimeout์ผ๋ก ๊ตฌํ๋ ์ฝ๋ฐฑ ํจํด → Promise → async/await ์์ผ๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ํ๋ฆ์ ์ ๋ฆฌํ๋ค.
- async/await๋ฅผ ํ์ฉํ๋ฉด ๋ณต์กํ ๋น๋๊ธฐ ๋ก์ง๋ ๋๊ธฐ ์ฝ๋์ฒ๋ผ ์ฝํ๊ธฐ ์ฝ๊ฒ ์์ฑํ ์ ์์ด, ์ค์ ๋ก ์จ๋ณด๋ ์ ๋ง ๊น๋ํ๋ค๋ ์ธ์์ ๋ฐ์๋ค.
2. ๋ด์ค API ์ฐ๋ ์ค์ต
- axios๋ฅผ ์ด์ฉํด ๋ด์ค ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ถ๋ฌ์ค๊ณ ,
- ์นดํ ๊ณ ๋ฆฌ ์ ํ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฑด๋ถ๋ก ์ถ๋ ฅํ๋ ๋ด์ค ๋ทฐ์ด ์ฑ์ ๋ง๋ค์๋ค.
- useEffect ํ ์ผ๋ก API ํธ์ถ ํ์ด๋ฐ์ ์ ์ดํ๊ณ ,
- ์ปค์คํ ํ (usePromise)์ผ๋ก ๋น๋๊ธฐ ํธ์ถ ๋ก์ง์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ์ถ์ถํ๋ ๋ฐฉ๋ฒ๋ ํจ๊ป ๋ฐฐ์ ๋ค.
๐งช ์ค์ต ์๊ฐ
์ฒ์์ผ๋ก ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ ์ค์ ๋ก ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ์์ ์ ํด๋ดค๋ค๋ ์ ์์
์ค๋์ ๊ต์ฅํ ์ธ์ ๊น์ ํ๋ฃจ์๋ค.
์ฒ์์ useEffect, axios, async/await ํ๋ฆ์ด ๋จธ๋ฆฟ์์์ ์ฐ๊ฒฐ์ด ์ ์ ๋์ง๋ง,
์ค์ ๋ก ๋ด์ค๋ฅผ ๋ฐ์์ ํ๋ฉด์ ๋ ๋๋ง ๋๋ ๊ฑธ ํ์ธํ๋ฉด์
๋ด๊ฐ ์ด๋ค ํ๋ฆ์ผ๋ก ์ฝ๋๋ฅผ ์ง๊ณ ์๋์ง๋ฅผ ์ ์ ๋ ๋ช ํํ๊ฒ ์ดํดํ๊ฒ ๋์๋ค.
ํนํ usePromise ์ปค์คํ ํ ์ ์์ฑํ๋ฉด์
React์์ ๋ก์ง์ ์ปดํฌ๋ํธ ๋จ์๋ก ์ฌ์ฌ์ฉํ ์ ์๋ ๊ตฌ์กฐ์ ๋ํด์๋ ์ค๊ฐํ ์ ์์๊ณ ,
๊ทธ๋์ ๋จ์ํ๊ฒ ์ปดํฌ๋ํธ๋ฅผ ๋๋๋ ๊ฒ๊ณผ๋ ๋ ๋ค๋ฅธ ๊ฐ๋ ์ ํ์ฅ์ ๊ฒฝํํ ๋๋์ด์๋ค.
์์ง ๋ฌธ๋ฒ์ด ์ต์ํ์ง ์์ ์กฐ๊ธ ํค๋งค๊ธฐ๋ ํ์ง๋ง ์ฌ๋ฏธ์์๋ค.
๐งก ๋๋ ์
์ค๋์ ๋จ์ํ UI ์ปดํฌ๋ํธ๋ฅผ ๋์ด์,
React๋ก ์ค์ ์๋น์ค์ ๊ฐ๊น์ด ๊ธฐ๋ฅ์ ๊ตฌํํด ๋ณธ ์ฒซ๋ ์ด๋ผ๊ณ ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
API๋ฅผ ์ง์ ์ฐ๋ํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์นดํ ๊ณ ๋ฆฌ๋ฅผ ํด๋ฆญํ๋ฉด ์กฐ๊ฑด์ ๋ง๋ ๋ด์ค๊ฐ ๋ฐ๋๋ ๊ณผ์ ์ ๋ณด๋ฉด์
“์, ์ง์ง ์น์ฑ์ ๋ง๋ค๊ณ ์๊ตฌ๋” ํ๋ ์ค๊ฐ์ด ๋ค์๋ค.
์ค๋์ฒ๋ผ ์ง์ ๋ง๋ค์ด๋ณด๋ฉฐ ์ตํ๋ ํ๋ฆ์ด ๋๋ ์ ๋ง๋ ๊ฒ ๊ฐ๋ค :)