[Virtualized List] #1. ๊ธฐ๋ณธ (Virtualized List์ ๊ตฌ์ฑ)
Virtualized List ๋?
Virtualized List(๊ฐ์๋ฆฌ์คํธ)๋ ๋์ด๋ ๋ฆฌ์คํธ์ ์์ดํ ์ค ํ๋ฉด์ ๋ณด์ฌ์ง๋ ์์ดํ ๋ง ๋ ๋๋งํ๋ ๋ฆฌ์คํธ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ ์ ๊ฐ ์คํฌ๋กค์ ๋ด๋ ค ๋ณด์ด๋ ์์ดํ ์ ๋ฒ์๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ค์ ๋ณ๊ฒฝ๋ ์์ดํ ๋ง์ ๋ ๋๋ง ํ๋๋ก ๊ตฌํ๋ฉ๋๋ค. ์ฌ์ค ํ๋ฉด์ ๋ฒ์ด๋ ๊ณณ์ ์์ดํ ๋ค์ ํ๋ฉด ์์ ๋ ๋๋ง ๋์ด์์ง ์๊ธฐ ๋๋ฌธ์ ํ์ฌ ์์ ์๋ ์๋ ์์ดํ ์ผ๋ก ์๊ฐํ ์ ์์ง๋ง, ์ ์ ์ ์คํฌ๋กค ์์น์ ๋ฐ๋ผ ํ๋ฉด ์์ ๋ ธ์ถ๋ ์ ์์ผ๋ฏ๋ก ์์ ๊ทธ๋ฆผ์ฒ๋ผ ๊ฐ์์ผ๋ก ๋ฆฌ์คํธ๊ฐ ์ฐจ๋ก๋ก ๊ตฌ์ฑ๋์ด ์๋ค๊ณ ์๊ฐํ๊ฒ ๋ฉ๋๋ค.
์์ดํ ์ ๋ชจ๋ ๋ ๋๋งํ๋ ๊ธฐ๋ณธ List์ ๋น๊ตํ์ ๋, ํ์ํ ์์ดํ ๋ง์ ๋ ๋๋งํ๋ฉด ๋๋ฏ๋ก ๋ ๋๋ง ๋น์ฉ์ด ๊ฐ์ํฉ๋๋ค. ์ด๋ ๊ฒ ๋ ๋๋ง ๋น์ฉ์ ๊ฐ์์ํค๋ ๊ธฐ์ ๋ก๋ ํ์ด์ง ๋ณ๋ก n๊ฐ์ ์์ดํ ๋ง์ ๋ ๋๋งํ๋ Pagination์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
๋ณดํต ์ด๋ ๊ฒ ๊ตฌ์ฑ๋์ด ์์ด์.
๋ณดํต Virtualized List๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํ๋ ์์๋ค๊ณผ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
- Virtualized List : ํ๋ฉด์ ๋ณด์ด๋ ์์ดํ ์ ๋ ๋๋ง
- Infinite Data fetching : ํ์ํ ๋๋ง๋ค ์ถ๊ฐ๋ก ๋ฐ์ดํฐ ๋ฐ์์ค๊ธฐ
- Unique id generator : ๊ฐ ํ์ด์ง๋ณ๋ก ์คํฌ๋กค ์์น๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ํ์ด์ง๋ฅผ ๊ตฌ๋ถํ๋ id ์์ฑ๊ธฐ
๊ฐ๋จํ ๊ธฐ๋ฅ์ผ๋ก ํ๋ฆ์ ์ตํ๋ด ์๋ค. ์ฒ์ ์ ์ ๊ฐ ํ์ด์ง์ ์ ๊ทผํ์ ๋, ์๋์ ๋ฐ์ดํฐ ๋ง์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์ค๊ณ , ํ์ฌ ํ๋ฉด์ ๋ณด์ด๋ ์์ดํ ๋ง์ ๋ ๋๋ง ํฉ๋๋ค(Virtualized List). ๋ฐ์์จ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ๋ ๋๋ง ๋์๋ค๋ฉด ์ถ๊ฐ์ ์ผ๋ก ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ต๋๋ค(Infinite Data fetching). ์คํฌ๋กค์ด ์ค๊ฐ ์ฏค ์์ ๋ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๋ค๊ฐ ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ์ ๋ ์ด์ ์ ๋ณด๋ ๋ฆฌ์คํธ์ ์์น๋ก ๋์์ฌ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์คํฌ๋กค ์์น๋ ํ์ด์ง๋ง๋ค ๊ตฌ๋ถ๋์ด ์ ์ฅํ ์ ์์ด์ผ ํฉ๋๋ค(Unique id generator).
์์์ ์ธ๊ธํ ์ฃผ์๊ธฐ๋ฅ ์ด์ธ์๋ (์คํฌ๋กค์ ๋ฆฌ์คํธ๊ฐ ์๋ ์ ์ฒด ํ์ด์ง๋ฅผ ๋์์ผ๋ก ๋์ํด์ผ ํ๋ค), (์ ์ ๊ฐ ์ด์ ์ ๋ณด๋ ๋ฆฌ์คํธ์ ์์น๋ก ๋์์ฌ ๋ ์ฒซ ์์ดํ ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ ์์๋ ์๋๋ค), (์ด์ ์๊ฐ ๋ฐ์ํ์ผ๋ก ๋ณ๊ฒฝ๋์ด์ผ ํ๋ค)๋ ๋ฑ์ ๋ค์ํ ๋์ฆ๊ฐ ์กด์ฌํฉ๋๋ค.
๋ค์ ์ฑํฐ ์์๋ ๊ฐ์๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ์๋น์ค์์ ํ์๋ก ํ๋ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๋ฆฌ์คํ ํด๋ณด๊ณ ๋ช๋ช์ ๊ธฐ๋ฅ ๊ตฌํ์ด ์ ์ด๋ ค์ด ์ง ๋ถ์ํด๋ณด๊ฒ ์ต๋๋ค. ๋ง์ง๋ง ์ฑํฐ ์์๋ ๊ฐ์ ๋ฆฌ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๊ตํด๋ณด๊ณ ๋๋ต์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ฝ๋๋ก ์์ฑํด๋ณด๊ฒ ์ต๋๋ค.
๋ถ์ ํํ ์ ๋ณด๊ฐ ๋ด๊ฒจ์์ ์ ์์ต๋๋ค!
๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ :)