์ํAPI๋ฅผ ์ด์ฉํด ์ํ๋ฅผ ๊ฒ์ํ๊ณ , ์ฆ๊ฒจ์ฐพ๊ธฐ ํ ์ ์๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
๐ ๋ฐฐํฌ๋งํฌ
๊ฐ๋ฐ ๊ธฐ๊ฐ 5/9 - 5/17
- Javascript, TypeScript, React, Styled-Component
- Recoil (global store)
- Axios (Rest API)
- react-beautiful-dnd(drag and drop)
- react-Loading (loading spinner)
- uuid (unique id value)
- react-icon (icons)
-
์คํ ์ํ API๋ฅผ ์ด์ฉํด ์ํ๋ฅผ ๊ฒ์ํ์ ๋ ์ํ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋๋ก ๊ตฌํํ์ต๋๋ค.
-
์น API์ธ Intersection Observer๋ฅผ ์ด์ฉํด ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ์ต๋๋ค. observer๋ฅผ ๋ง๋ ํ, ์ํ ๋ฆฌ์คํธ๋ค ๋ค์ ๊ฐ์งํ ์ ์๋ ํ๊ทธ๋ฅผ ๋ง๋ค์ด์ ํด๋น ํ๊ฒ์ด root๋ก ๋ฑ๋กํ ํ๊ทธ์ ๊ฒน์ณ์ก์ ๋๋ฅผ ๊ฐ์งํด ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์จ ํ, ๊ธฐ์กด ๋ฐ์ดํฐ์ ํฉ์ณ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ์ต๋๋ค.
-
์ ์ญ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด recoil์ ์ฌ์ฉํ์ต๋๋ค. ๋ฐ์์จ ๋ฐ์ดํฐ๋ค์ ์ ์ฅํด ์ ์ญ์ ์ผ๋ก ๊ด๋ฆฌ๋ฅผ ํ๊ณ , ๋ถ๋งํฌํ ๋ฐ์ดํฐ๋ค์ localStorage์๋ ๊ฐ์ด ํญ์ ๊ฐ์ ์ ์๋๋ก ์ฐ๋ํ์ต๋๋ค. ๋ํ ์๋ก๊ณ ์นจ ์ recoil์ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ฒ์ ๋ ๋๋ง ์ localStorage์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ recoil์ store์ ์ ์ฅํ์ฌ ์ฆ๊ฒจ์ฐพ๊ธฐํ ๋ด์ฉ๋ค์ด ์ ์ง๋ ์ ์๋๋ก ๊ตฌํํ์ต๋๋ค.
-
๋ถ๋งํฌํ ์ํ๋ฆฌ์คํธ๋ค์ ์์๋ฅผ ๋๋๊ทธํ์ฌ ๋ณ๊ฒฝํ ์ ์๋๋ก react-beautiful-dnd ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. droppableํ ์์ญ๊ณผ draggableํ ์์ญ์ ์ง์ ํด์ฃผ๊ณ , ๋๋๊ทธ๊ฐ ์๋ฃ๋์์ ๋ ์ฝ๋ฐฑํ๋ onDragEnd ํจ์์ ๋ด์ฅ๋์ด ์๋ ๊ฐ์ ํตํด, ๋๋๊ทธํ ์์ดํ ๊ณผ ๋๋กญํ ์์ดํ ์ ์ธ๋ฑ์ค ๊ฐ์ ๊ตฌํด ๋ฐฐ์ด์ ์์๋ฅผ ๋ฐ๊พผ ํ ๊ทธ ๊ฐ์ผ๋ก ๊ธฐ์กด ๋ฐ์ดํฐ ๊ฐ์ setStateํด์ฃผ์์ต๋๋ค.