๐ฌ์์๋ณด๊ธฐ: ์์ ๋ณด๊ธฐ
๐Trello: Trello ๋ณด๊ธฐ
์ง์ ๊ตฌํํ ๊ธฐ๋ฅ์ โ
, ํ์์ด ๊ตฌํํ ๊ธฐ๋ฅ์ โ ํ์
1) ๐ ํ์๊ฐ์
/ ๋ก๊ทธ์ธ ํ์ด์ง
2) ๐ ๋ฉ์ธํ์ด์ง
3) ๐ ํ์ํ์ด์ง
3) ๐ ์ง๊ตฐ๋ณ ์ฐ๋ด ํ์ด์ง
4) ๐ ์ง์ํํฉ ํ์ด์ง
- โญ๏ธ ์กฐ๊ฑด๋ถ ๋ ๋๋ง
: React์์๋, ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด์ ์ํ๋ ๋์์ ์บก์ํ ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋์, ์ดํ๋ฆฌ์ผ์ด์
์ ์ํ์ ๋ฐ๋ผ ์ปดํฌ๋ํธ์ ์ผ๋ถ๋ง ๋ ๋๋ง ํ ์ ์๋ค!
๊ณ์ ์จ๋จน๊ฒ ๋๋ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ด๋ค!
pagination ๊ธฐ๋ฅ์ด ์๋ component๋ฅผ ๊ฐ์ ธ์๋ค.
ํ์ง๋ง ๋๋ pagination๋.. ๋ง์ ๋ฐ์ดํฐ๋ ํ์๊ฐ ์์๋ค.
๐จํ์ง๋ง ๊ณตํต์ผ๋ก ์ฐ๋ component๋ฅผ ์์ ํ ๋๋ ๊ผญ!๊ผญ!๊ผญ! ํ์๊ฐ์ ์์๋ฅผ ํตํด ์ฝ๋๋ฅผ ์ถ๊ฐํ์!
- โญ๏ธ Filter function(feat. Hooks)
:Hooks ๊ท์น
1) ์ต์์(at the top level)์์๋ง Hook์ ํธ์ถํด์ผ ํฉ๋๋ค.๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ์ค์ฒฉ๋ ํจ์ ๋ด์์ Hook์ ์คํํ์ง ๋ง์ธ์.
2) React ํจ์ ์ปดํฌ๋ํธย ๋ด์์๋ง Hook์ ํธ์ถํด์ผ ํฉ๋๋ค.
- โญ๏ธ Chart function(feat.D3)
๐จ chart๋ฅผ ์์ฑํ๊ธฐ ์ํด D3.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
filter๋ฅผ ํตํด ์ ์ ๋ ๋ฐ์ดํฐ๋ฅผ props๋ก ๋ด๋ ค์ค๋๋ค.
์์ ๊ฐ์ด ์ธ์๋ก ๋ฐ๋ ๋ถ๋ถ์์ ๋ฐ๋ก ๊ตฌ์กฐ ๋ถํด ํ ๋น์ด ๊ฐ๋ฅํฉ๋๋ค(๋๋ฌด ์ข์..)๐
๋ค์ํ๋ฒ ๊ตฌ์กฐ ๋ถํด ํ ๋น!
data๋ฅผ ๋ฐ๊ธฐ ์ํด state์ ์ค์ ์ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ chart๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์ํ ๋ฐ์์
์ธ useRef๋ฅผ ์ ์ธํฉ๋๋ค.
ref๋ฅผ ๋ฃ์ด ์ค๋๋ค.
ref๋ฅผ ํตํด ํน์ DOM์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค!
- scale์ด๋ผ๋ ๋ช ์นญ์ด ๋ถ์ d3 ๋ฉ์๋๋ .domain(), .range()์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
- .domain() ๋ฒ์์ ์ ๋ ฅ๊ฐ์ด ๋ค์ด์ค๋ฉด .range() ๋ฒ์์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ค๋๋ค!
๐จsvg๋ก ๊ทธ๋ ค์ง๋ d3๋ ์๋ก ๋ ๋๋ ๊ฒฝ์ฐ ์ด์ ๊ฐ์ด ์ฌ๋ผ์ง๋ ๊ฒ์ด ์๋๊ธฐ์ .remove()๋ฅผ ํตํด ์ด์ ๊ฐ์ ๋จผ์ ์ญ์ ํ ๋ค์ ์๋ก ๊ทธ๋ํ๊ฐ ๊ทธ๋ ค์ง๋๋ก ์ค์ ๋์์ต๋๋ค.
๐จd3 ๋ฉ์๋๋ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก ์ ํ๋ฌผ์ ์ฐธ์กฐ๋ฅผ ๋ฐํํฉ๋๋ค.
๋ฉ์๋๋ฅผ ์ฒด์ธ์ผ๋ก ์ฐ๊ฒฐํ ๋๋ ์์๊ฐ ์ค์ํฉ๋๋ค.
d3์ ํน์ง ์ค ํ๋! ๊ฐ์์ ์์๋ฅผ ๋ฏธ๋ฆฌ ์ ํํ ์ ์๋ค!
์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด tooltipSal์ด๋ผ๋ class๋ฅผ ๋จผ์ ์ ํ์ ํ๊ณ , ๊ทธ ์๋์์ ์์ฑํ ๊ฒ์ ์ ์ ์๋ค!
โญ๏ธํน๋ณํ ๊ฒฝํ, ์๊ธฐ๋ ๊ธฐํ๋ก
์ฝ๋ก๋ ๊ฒฝ๊ณ์์๊ฐ 2.5๋จ๊ณ๊ฐ ๋๋ฉด์ ์ฌ์์ด์ ํ๋ก์ ํธ๊ฐ ์จ๋ผ์ธ์ผ๋ก ์งํ๋์๋ค.
์จ๋ผ์ธ์ผ๋ก ์งํ๋๋ ํ๋ก์ ํธ๊ฐ ๋ถ๋ด์ด ๋ง์ด ๋๊ธด ํ์ง๋ง, ์ด์ฉ๋ด ์ด๋ฏธ ๋ฒ์ด์ง ์ผ
๋ฏธ๋ฆฌ ๊ฒฝํํ๋ ๋์งํธ๋
ธ๋ง๋(?)๋ผ๋ ๋ง์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค.
์คํ๋ผ์ธ์ผ๋ก ์งํํ ๊ฒฝ์ฐ์๋ ๋๊ธฐ๋ค์ด๋ ๋ฉํ ๋ถ๋ค์๊ฒ ๋ง์ ์์ฒญ์ ํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ๋๊ฐ๋ค๋ฉด, ์ด๋ฒ์๋ ์กฐ๊ธ ๋ ํผ์์ ๊ตฌ๊ธ๋ง์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋น๋๊ฐ ๋ง์์ก๋ค.
์ฆ, ์ฑ์ฅ์ ํ ๊ฒ์ด๋ค!๐
ํ์์, zoom์ ํตํด ๋ฏธ๋ฆฌ ๊ฒฝํํ๋ ์ฌํ๊ทผ๋ฌด๋ ์ด๋ค ๊ฒ์ธ์ง ์์๊ฐ๋ ์๊ฐ๋ ๋์๊ณ , vs code์ liveshare๋ฅผ ํตํด ๋ชจ๋ ๋ค๊ฐ์ด ํ๋ ์์
๋ ํ๋์ ์ฌ๋ฏธ๋ก ๋ค๊ฐ์๋ค.
๐ํฌ๊ธฐํ์ง ๋ง์!
ํ๋ก์ ํธ ์ข
๋ฃ๊ฐ ํ๋ฃจ ๋จ์ ์ํฉ์์ ์ง์ํํฉ ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ผ ํ๋๋ฐ, ์๊ฐ์ด ์๋ค๋ณด๋ ๊ณ ๋ฏผ์ ๋ง์ด ํ๋ค. ํ์ง๋ง '๋๋ฉด ๋ญํ๋ด' ์ผ๋จ ํด๋ณด์๋ ๋ง์์ผ๋ก ๋น ๋ฅด๊ฒ ๋ ์ด์์์ ๊ตฌ์ฑ, ์์ด๋น์ค๋น๋ฅผ ๋น๋ ค ๋ชจ๋๊ฐ ๋ชจ์ฌ์ ๋ฐค์ ๐ฅ๋ถ์ฝ๋ฉ์ ํตํด ํ์ด์ง๋ฅผ ์์ฑ..!(๋จผ๊ฐ MT๋ฅผ ๊ฐ๋๋ฐ ์ฅ๊ธฐ์๋ ํ
๋ง๊ฐ ์ฝ๋ฉ์ธ ๊ธฐ๋ถ)
๋๋ถ์ ๐์ฌ๋ฏธ์๊ณ ์์คํ ๊ฒฝํ + โ
ํ ์ ์์๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ ํ์ด์ง๋ ์์ฑ!
์ฒ์์ ํฌ๊ธฐํ๋๋ผ๋ฉด ์์ฌ์ฐ๋ฆฌ๋งํผ ๋ฉ์ง๊ฒ ํ์ด์ง๊ฐ ๋์์ ๋๋ฌด ๊ฐ๊ฒฉ์ด์๋ค ๋๊น...?๐ญ
ํญ์ ํฌ๊ธฐํ์ง๋ง๊ณ ํ ๋ซ๋๋ฐ๊น์ง ํด๋ณด์
๐ผ๊ตฌ์กฐ์ ์ค์์ฑ
์ด๋ฒ์๋ ๊ธฐ๋ฅ ์ปดํฌ๋ํธ ๋จ์๋ก ํ์ด์ง ๋ ์ด์์์ ๋ง๋ค๊ณ mock data๋ฅผ ํตํด ๊ธฐ๋ฅ์ ๋จผ์ ๊ตฌํํ๋ ํํ๋ก ์์
์ ์์ํ๋ค. ์ต์ข
์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๊ณ , ํ์ด์ง๋ฅผ ์ปดํฌ๋ํธ๋ฅผ ํฉ์น๋ ๋จ๊ณ์ ๋ค์ด๊ฐ๋ ๋ช๋ช child component์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ก ๊ตฌ์ฑํด๋ฒ๋ฆฐ ๋
์๋ค์ ๊ธฐ๋ฅ์ ์๋ก ๋ง๋ค์ด์ผ ๋๋ ์ํฉ์ด ์๋ฒ๋ ธ๋ค(Hooks์ ๊ธฐ๋ณธ๋ฃฐ์ ๋ฌด์ํ ์์ ์ตํ..๐ฆ)
์ด๊ธฐ์ ํ์ด์ง๋ฅผ, ํน์ ๊ธฐ๋ฅ์ ๊ตฌํํจ์ ์์ด ํฐ ์์น ๋๋ ๊ตฌ์กฐ๋ฅผ ์๊ฐํ๋ฉด์ component๋ฅผ ๋ง๋ค์ด์ผ ๋์ค์ ๊ณ ์์ ์ํ๋ค๋ ๊ฒ์ ๋ผ์ ๋ฆฌ๊ฒ ๋๊ผ๋ค...(๊ฐ์ ์ค์๋ ๋ ํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ..!)