๋ฌด๊ฒ๊ณ ๊ธด ๋ชฉ๋ก์ ๊ฐ์ํ๋ก ์ต์ ํํ์ธ์!
์ ํ๋ฆฌ์ผ์ด์
์์ ๊ธด ๋ชฉ๋ก(์๋ฐฑ ๋๋ ์์ฒํ)์ ๋ ๋๋งํ๋ ๊ฒฝ์ฐ โwindowingโ ์ด๋ผ๋ ๊ฐ์ํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ต์ ํ ํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฒ์ ๋ฆฌ์ํธ ๊ณต์ ์ฌ์ดํธ์์ ์ถ์ฒํ๊ณ ์์ผ๋ฉฐ,
ํ๋ฉด์ ์ค์ ๋ก ๋ณด์ฌ์ง๋ ๋ถ๋ถ๋ง DOM์ผ๋ก ๋ ๋๋งํ๋๋ก ์ฐ์ฐํ์ฌ ์์คํ
๋ถํ์ ๊ณผ๋ํ๊ฒ ๋ญ๋น๋๋ ๋ฆฌ์์ค๋ฅผ ๋ฐฉ์ง ํ์ฌ ๋ ๋์ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
http://play.codejs.co.kr/react-virtualized-examples
์ผ๋ฐ์ ์ผ๋ก ๋ชฉ๋ก์ ๋ง์ด ๋ณด์ฌ์ฃผ๋ ํ๋ฉด๊ณผ react-virtualized๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ ํ ํ ์ฐจ์ด๋ฅผ ๋น๊ต ์ ๊ณตํฉ๋๋ค.
๋ชฉ๋ก์ด ๋ง์์ง์๋ก ์์ฐ์ค๋ฝ๊ฒ DOM์ด ๋์ด๋๊ณ ๊ทธ๋ก ์ธํด ๋ถํ๊ฐ ์๊ฒจ ์๋น์ค ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋ฉ๋๋ค.
์์ ์ 500๊ฐ ๋ชฉ๋ก ์ค ํ๋ฉด์ ๋ณด์ด๋ ๋ถ๋ถ๋ง DOM์ผ๋ก ๋๋๋ง ํ์ฌ ๋ถํ๋ฅผ ์ต์ํ ํ ์ ์์ต๋๋ค.
๊ทธ๋ก ์ธํด API๋ก JSON์ ๋ฐ์์ ๋ ๋๋ง ํ๋ ์ต์ด ์๊ฐ๊ณผ ์ถ๊ฐ์ ์ผ๋ก ๋ชฉ๋ก์ ๋ํ ๋๋ ์ต์ 5๋ฐฐ ์ด์ ๋น ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ด๋ฏธ์ง๊ฐ ์๋ ๋ชฉ๋ก๋ ๋ฌธ์ ์์ต๋๋ค. ์ด๋ฏธ์ง๊ฐ ๋ก๋๋ ์ดํ ์์์ ์ฌ์ด์ฆ ์ธก์ ์ ํ ์ ์์ด์!
- List : ์ฐฝ์ ๋ณด์ด๋ ์์๋ง ๋ ๋๋งํ๋ ์ปจํ ์ด๋์ ๋๋ค. (๋ฌธ์)
- AutoSizer : ๋จ์ผ ์์์ ๋๋น์ ๋์ด๋ฅผ ์๋์ผ๋ก ์กฐ์ ํ๋ ๊ณ ์ฐจ ์ปดํฌ๋ํธ์ ๋๋ค. (๋ฌธ์)
- CellMeasurer : ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ผ์์ ์ผ๋ก ๋ ๋๋งํ์ฌ ์ ํฌ๊ธฐ๋ฅผ ์๋์ธก์ ํ๋ ๊ณ ์ฐจ ๊ตฌ์ฑ ์์์ ๋๋ค. (๋ฌธ์)
- CellMeasurerCache : CellMeasurer์ ๊ฒฐ๊ณผ๋ฅผ ๋ถ๋ชจ(์ฌ๊ธฐ์๋ List)์ ๊ณต์ ํฉ๋๋ค. (๋ฌธ์)
- ์คํฌ๋กค๋ก ๋ฌดํ์ ๋์ด๋ ์ ์๋ ๋ชฉ๋ก
- ์ง์์ ์ผ๋ก ์์ด๋ ์ฑํ ๋ชฉ๋ก
- ์ง์์ ์ผ๋ก ์์ด๋ ์๋ฆผ ๋ชฉ๋ก