[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).

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ฃผ์š”๊ธฐ๋Šฅ ์ด์™ธ์—๋„ (์Šคํฌ๋กค์€ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค), (์œ ์ €๊ฐ€ ์ด์ „์— ๋ณด๋˜ ๋ฆฌ์ŠคํŠธ์˜ ์œ„์น˜๋กœ ๋Œ์•„์˜ฌ ๋•Œ ์ฒซ ์•„์ดํ…œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ ์™€์„œ๋Š” ์•ˆ๋œ๋‹ค), (์—ด์˜ ์ˆ˜๊ฐ€ ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค)๋Š” ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๋‹ˆ์ฆˆ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๋‹ค์Œ ์ฑ•ํ„ฐ ์—์„œ๋Š” ๊ฐ€์ƒ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๋ชจ๋‘ ๋ฆฌ์ŠคํŒ… ํ•ด๋ณด๊ณ  ๋ช‡๋ช‡์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์™œ ์–ด๋ ค์šด ์ง€ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์ฑ•ํ„ฐ ์—์„œ๋Š” ๊ฐ€์ƒ ๋ฆฌ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋น„๊ตํ•ด๋ณด๊ณ  ๋Œ€๋žต์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 ๋ถ€์ •ํ™•ํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! 

 ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š” :) 

๋ฐ˜์‘ํ˜•