๐Ÿ“ฑ React Native: ScrollView vs FlatList ์ฐจ์ด์  ์ •๋ฆฌ

zooyahoยท2025๋…„ 7์›” 17์ผ
0
post-thumbnail

React Native์—์„œ ์Šคํฌ๋กค ๊ฐ€๋Šฅํ•œ UI๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ScrollView ๋˜๋Š” FlatList๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‘ ์ปดํฌ๋„ŒํŠธ๋Š” ์œ ์‚ฌํ•ด ๋ณด์ด์ง€๋งŒ, ๋ Œ๋”๋ง ๋ฐฉ์‹, ์„ฑ๋Šฅ, ์‚ฌ์šฉ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋ถ„๋ช…ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ… ScrollView

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

์˜ˆ์‹œ ์ฝ”๋“œ

<ScrollView>
  <Text>Item 1</Text>
  <Text>Item 2</Text>
  <Text>Item 3</Text>
</ScrollView>

โœ… FlatList

  • ๋ณด์ด๋Š” ์˜์—ญ๋งŒ ๋ Œ๋”๋งํ•˜๋Š” ๊ฐ€์ƒํ™”(Virtualization) ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ˆ˜๋ฐฑ ๊ฐœ ์ด์ƒ์˜ ์•„์ดํ…œ์„ ๋ Œ๋”๋งํ•  ๋•Œ์—๋„ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.
  • renderItem, keyExtractor, ListHeaderComponent ๋“ฑ ๋ฆฌ์ŠคํŠธ UI์— ํŠนํ™”๋œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋™์  ๋ฐ์ดํ„ฐ ๋ Œ๋”๋ง ๋ฐ ๋ฌดํ•œ ์Šคํฌ๋กค์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์ฝ”๋“œ

<FlatList
  data={goals}
  renderItem={({ item }) => <Text>{item}</Text>}
  keyExtractor={(item, index) => index.toString()}
/>

๐Ÿง  ์ •๋ฆฌ

ํ•ญ๋ชฉScrollViewFlatList
๋ Œ๋”๋ง ๋ฐฉ์‹์ „์ฒด ๋ Œ๋”๋ง๊ฐ€์ƒํ™” ๋ Œ๋”๋ง (๋ณด์ด๋Š” ์•„์ดํ…œ๋งŒ)
์„ฑ๋Šฅ์š”์†Œ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๋А๋ ค์ง‘๋‹ˆ๋‹ค๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์—๋„ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค
๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋†’์Šต๋‹ˆ๋‹ค๋‚ฎ์Šต๋‹ˆ๋‹ค
์ ํ•ฉํ•œ ์šฉ๋„์ •์ ์ธ ์ฝ˜ํ…์ธ , ์†Œ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋™์  ์ฝ˜ํ…์ธ , ๋Œ€์šฉ๋Ÿ‰ ๋ฆฌ์ŠคํŠธ
์ œ๊ณต ๊ธฐ๋Šฅ๋‹จ์ˆœ ์Šคํฌ๋กค ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณตrenderItem, keyExtractor, onEndReached ๋“ฑ ๋ฆฌ์ŠคํŠธ ์ „์šฉ ๊ธฐ๋Šฅ ์ œ๊ณต
์ปค์Šคํ„ฐ๋งˆ์ด์ง•View์ฒ˜๋Ÿผ ์ž์œ ๋กญ๊ฒŒ ๋ฐฐ์น˜ ๊ฐ€๋Šฅ๋ฆฌ์ŠคํŠธ ์ค‘์‹ฌ ๊ตฌ์กฐ๋กœ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค

โœ… ๊ฒฐ๋ก 

  • ์†Œ๋Ÿ‰์˜ ์ •์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์Šคํฌ๋กคํ•  ๊ฒฝ์šฐ์—๋Š” ScrollView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
  • ๋Œ€๋Ÿ‰์˜ ๋™์  ๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ Œ๋”๋งํ•  ๊ฒฝ์šฐ์—๋Š” FlatList๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
profile
์ฆ๊ฒ๊ฒŒ ๊ฐœ๋ฐœํ•˜์ž ์ฅฌ์•ผํ˜ธ๐Ÿ‘ป

0๊ฐœ์˜ ๋Œ“๊ธ€