๐ ํต์ฌ ์๊ตฌ ์ฌํญ 1
๋ฉ์ธ ํ์ด์ง์์ ์นธ๋ฐ์ ํตํด ๊นํ๋ธ ์ด์๋ฅผ ์์ฑ, ํธ์ง ํ ์ ์์ด์ผ ํฉ๋๋ค.
Github API๋ฅผ ํตํด์ issue๋ฅผ fetchํ์ฌ ๊ฐ ์นธ๋ฐ์ ๋ฟ๋ ค์ง๊ณ DB์ ์ค์๊ฐ์ผ๋ก ์ฐ๋๋์ด ๋ด ํ๋ฉด ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์ ์ ๋ค์๊ฒ๋ ์ค์๊ฐ์ผ๋ก ํธ์งํ ๋ด์ฉ์ด ๋ฐ์๋์ด์ผ ํฉ๋๋ค.
ํ๋ณ๋ก, ํ๋ก์ ํธ๋ณ๋ก ์ฐ๋ํด์ผ ํ api์ data๊ฐ ๋ง์ต๋๋ค. ํ์ง๋ง ๊ฐ๊ฐ์ data๊ฐ ์ ์ง๋๊ฑฐ๋, ์ ํ๋๋ ์์ ์ fetch๋์ด ์ฌ์ฉ์ฑ์ ๋ณด์ฅํด์ผ ํฉ๋๋ค.
๊ฐ๋ฅํ๋ฉด ํํฐ์์ ์ ํํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์์ฐ์ค๋ฝ๊ฒ ์์ฝ๋์ธ์ด ์ด๋ฆฌ๋ฉด์ fetch๋๋ ๋ก์ง์ด ์ข์ต๋๋ค.
์นธ๋ฐ์ ์นด๋UI๋ฅผ ํตํด ๊ฐ ์ด์๋ฅผ Drag&Drop์ผ๋ก ์ฎ๊ฒจ, ์์
์ํ๋ฅผ ์
๋ฐ์ดํธ ํ ์ ์์ด์ผ ํฉ๋๋ค.
๐ ์์
์์ธ ๋ด์ฉ
์ฒดํฌ๋ฐ์ค๋ ์ฐ์ ๋๊ฐ ๋์ ๋ณด์ด๋ ์์
์ผ๋ก ๊ฐ๊ธ์ ๋จผ์ ํด๊ฒฐ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๋ถ๋ฆฟ์ผ์ด์ค๋ ๊ทธ ๋ค์ ์์
์ผ๋ก ์์๋๋ ์ง์ ์
๋๋ค.
ํ์ง๋ง ์ ์ฐํ๊ฒ ํ๋จํ์ฌ ๋ถ๋ฆฟ์ผ์ด์ค ๋จผ์ ์์
ํด์ฃผ์
๋ ์๊ด ์์ต๋๋ค.
UI/UX
๋ฐ๋ณต๋๋ UIํจํด์ด ๋ง์ต๋๋ค. ์ฌ์ฌ์ฉ์ฑ์ ์ต๋ํ ์๊ฐํ์ฌ ์์
ํด ๋ด
์๋ค.
์ฐ์ ์ด์ ์ฐ๋์ ๊ณ ๋ คํ์ง ์๊ณ , ๊ฐ ์นธ๋ฐ์ ์์
์ํ๋ฅผ ํํํ๋ ํฐ ์นด๋ํ UI๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
๊ณตํต ์ปดํฌ๋ํธ๋ก ์์
์ํ์ ๋ฐ๋ผ bg์ label์ด ๋ฌ๋ผ์ง ์ ์๋ props ๊ตฌ์กฐ๋ฅผ ๊ณ ์ํฉ๋๋ค.
db์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ Github issue๋ฅผ ์นธ๋ฐ ์นด๋ ๋ด๋ถ์ ๋ฟ๋ ค์ค๋๋ค.
๊ฐ๊ฐ์ ๋ด๋ถ ์นด๋์์๋ issue์ ์ฐ๊ฒฐ๋ ๋
๋ฆฝ๋ data๊ฐ ์ ๋ฌ๋์ผ ํฉ๋๋ค.
์ ์ฒด ์์
์ํ๋ฅผ ํฌํจํ๋ ํ ๋จ์์ Accordion UI(wrapper)๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
๊ฐ ํ ๋ณ๋ก ๋ณ๊ฐ์ ๋ฐ์ดํฐ[ ]๊ฐ ๊ด๋ฆฌ ๋ ์ ์๋ ๊ตฌ๋๋ฅผ ๊ณ ์ํฉ๋๋ค.
UI๋ฅผ ์ด๊ณผํ์ง ์๋๋ก max-height๋ฅผ ํตํด ์ ํ์ ๋๊ณ , ์คํฌ๋กค์ ํตํด ์์ผ๋ฅผ ํ๋ณดํฉ๋๋ค.
์ ์ฒด ํ์ ํฌํจํ๋ ํ๋ก์ ํธ ๋จ์์ ํฐ Collapsible UI(wrapper)๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
Drag&Drop์ผ๋ก ์นธ๋ฐ ๋ด๋ถ์ ์ด์๋ค์ด ๋ณ๊ฒฝ๋์ด๋ ๋ ์ด์์์ด ํํธ๋ฌ์ง์ง ์์์ผ ํฉ๋๋ค.
FEATURE
Drag&Drop์ผ๋ก UI์ ๋ณ๊ฒฝ์ ๋ฐ๋ผ DB์๋ ๋ฐ์๋์ด ์ค์๊ฐ์ผ๋ก ์ฒ๋ฆฌ๋์ด์ผ ํฉ๋๋ค.
- ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก ํ์คํฌ ์ฐ๊ฒฐ
- ์์ ํ์คํฌ: ์ฐ๊ฒฐ๋ ํ์ ํ์คํฌ๊ฐ ์กด์ฌํ๋ ํ์คํฌ
- ํ์ ํ์คํฌ: ์ฐ๊ฒฐ๋ ์์ ํ์คํฌ๊ฐ ์กด์ฌํ๋ ํ์คํฌ
- ๋ฏธ์ฐ๊ฒฐ ํ์คํฌ: ์์ ๋๋ ํ์ ํ์คํฌ์ ์ฐ๊ฒฐ๋์ง ์์ ํ์คํฌ(default)
์์ ํ์คํฌ๋ฅผ ๋ค๋ฅธ ํ์คํฌ(์์, ํ์)์ ๋๋กญ ์
- ์์ ํ์คํฌ๋ ๋ค๋ฅธ ํ์คํฌ์ ํ์ ํ์คํฌ๊ฐ ๋ ์ ์์ต๋๋ค.
- ๋๋กญ ๋์์ด ์ ์ฉ๋์ง ์์ต๋๋ค.
๋ฏธ์ฐ๊ฒฐ ํ์คํฌ๋ฅผ ์์ ํ์คํฌ์ ๋๋กญ ์
- ๋ฏธ์ฐ๊ฒฐ ํ์คํฌ๊ฐ ๋๋กญ๋ ์์น์ ํ์คํฌ์ ํ์ ํ์คํฌ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
๋ฏธ์ฐ๊ฒฐ ํ์คํฌ๋ฅผ ํ์ ํ์คํฌ์ ๋๋กญ ์
- ํ์ ํ์คํฌ๋ ๋ค๋ฅธ ํ์คํฌ์ ์์ ํ์คํฌ๊ฐ ๋ ์ ์์ต๋๋ค.
- ๋๋กญ ๋์์ด ์ ์ฉ๋์ง ์์ต๋๋ค.
ํ์ ํ์คํฌ๋ฅผ ๋ค๋ฅธ ์์ ํ์คํฌ์ ๋๋กญ ์
- ๊ธฐ์กด ์ฐ๊ฒฐ๋ ์์ ํ์คํฌ์์ ์ฐ๊ฒฐ์ ์ ๊ฑฐํ๊ณ ๋๋กญ๋ ์์น์ ์์ ํ์คํฌ์ ํ์ ํ์คํฌ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
ํ์ ํ์คํฌ๋ฅผ ๋ค๋ฅธ ํ์ ํ์คํฌ์ ๋๋กญ ์
- ํ์ ํ์คํฌ๋ ๋ค๋ฅธ ํ์คํฌ์ ์์ ํ์คํฌ๊ฐ ๋ ์ ์์ต๋๋ค.
- ๋๋กญ ๋์์ด ์ ์ฉ๋์ง ์์ต๋๋ค.
๐ ์ฐธ๊ณ ํ ๋งํ ์๋ฃ (์ ํ)
๊ด๋ จ ๋ฌธ์, ๋งํฌ ๋ฑ์ ์ฒจ๋ถํด ์ฃผ์ธ์.
๐ ํต์ฌ ์๊ตฌ ์ฌํญ 1
๐ ์์ ์์ธ ๋ด์ฉ
UI/UX
์ฐ์ ์ด์ ์ฐ๋์ ๊ณ ๋ คํ์ง ์๊ณ , ๊ฐ ์นธ๋ฐ์ ์์ ์ํ๋ฅผ ํํํ๋ ํฐ ์นด๋ํ UI๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
๊ณตํต ์ปดํฌ๋ํธ๋ก ์์ ์ํ์ ๋ฐ๋ผ bg์ label์ด ๋ฌ๋ผ์ง ์ ์๋ props ๊ตฌ์กฐ๋ฅผ ๊ณ ์ํฉ๋๋ค.
db์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ Github issue๋ฅผ ์นธ๋ฐ ์นด๋ ๋ด๋ถ์ ๋ฟ๋ ค์ค๋๋ค.
Drag&Drop์ผ๋ก ์นธ๋ฐ ๋ด๋ถ์ ์ด์๋ค์ด ๋ณ๊ฒฝ๋์ด๋ ๋ ์ด์์์ด ํํธ๋ฌ์ง์ง ์์์ผ ํฉ๋๋ค.
FEATURE
์นธ๋ฐ์ [+]๋ฅผ ๋๋ฅด๋ฉด ํด๋น ์์ ์ํ์ ์๋ก์ด ํ์คํฌ๋ฅผ ์ถ๊ฐํ๋ ๋ชจ๋ฌ์ ํธ์ถํฉ๋๋ค.
๊ฐ ์นธ๋ฐ์ ํ์คํฌ๋ฅผ ํด๋ฆญํ๋ฉด, ํด๋นํ๋ ์ ๋ณด๋ฅผ ๋ด์ ์์ ํ ์ ์๋ ๋ชจ๋ฌ์ ํธ์ถํฉ๋๋ค.
์นธ๋ฐ์ pin์ ํด๋ฆญํ๋ฉด ์นด๋์ ์๋จ์ ๊ณ ์ ๋์ด์ผ ํฉ๋๋ค.
Accordion UI๋ฅผ ํตํด ํ๋ณ, ํ๋ก์ ํธ๋ณ๋ก ์ ์๋ค ํผ ์ ์์ด์ผ ํฉ๋๋ค.
(๊ธ๋ก๋ฒํ๊ฒ ์ ์ฉ ๊ฐ๋ฅํ hooks๋ฉด ๋ฒ ์คํธ์ ๋๋ค.)
๐ ์ฐธ๊ณ ํ ๋งํ ์๋ฃ (์ ํ)