๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
WINNEREST Project

Winnerest ๋ฉ”์ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„ (๋ฌดํ•œ ์Šคํฌ๋กค, Intersection Observer)

by ์€์ง€:) 2022. 9. 3.
728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

 

๐Ÿ‘† ๋ฉ”์ธํŽ˜์ด์ง€ ๊ตฌํ˜„ ์›€์งค

 

 

 

 

 

Pinterest clone Project

Winnerest 

 

 

 

 

์ด 5๋ช…์ด์„œ ๊ตฌ์„ฑ๋œ Winnerest ( FE : 3, BE : 2 )์—์„œ

2์ฃผ๊ฐ„ ํ•™์Šต์šฉ์œผ๋กœ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ / ๋ฉ”์ธ ํŽ˜์ด์ง€ / ๋งˆ์ด ํŽ˜์ด์ง€ ๊ตฌํ˜„์„ ๋งก์•˜์Šต๋‹ˆ๋‹ค.

 

๋ฉ”์ธ ํŽ˜์ด์ง€ 

 

 


 

 

๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ

 

 

 

  • Intersection Observer ๋ฅผ ์‚ฌ์šฉํ•œ ๋ฌดํ•œ ์Šคํฌ๋กค

 

 


 

 

 

 

๋ฌดํ•œ ์Šคํฌ๋กค์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๊ณ  ๋„๋ฆฌ ์•Œ๋ ค์ ธ ์žˆ๋Š” ๊ฑด

window.addEventListener ๋ฅผ ์ด์šฉํ•œ ์Šคํฌ๋กค ์ด๋ฒคํŠธ ๊ตฌํ˜„ ๋ฐฉ์‹์ด๋‹ค

 

ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ฃ๊ณ 

Intersection Observer์™€ axios ๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค

 

 

 

 

 

 

ํŽ˜์ด์ง€ ์„ค์ •์ด ๋กœ๊ทธ์ธ ์ฐฝ์ด ๋จผ์ € ๋œจ๊ณ , ํ† ํฐ์ด ์žˆ์–ด์•ผ ๋ฉ”์ธ ํŽ˜์ด์ง€๋ฅผ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์–ด ๊ฑฐ์˜ ๋ชจ๋“  ํŽ˜์ด์ง€์—

ํ† ํฐ์„ ํ™•์ธํ•˜๋Š” ํ—ค๋”๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค ๐Ÿ˜‚

 

 

ํ† ํฐ์ด ์—†์„ ์‹œ ๋กœ๊ทธ์ธ์ฐฝ์œผ๋กœ ๋ณด๋‚ด๊ณ  ์•„๋‹ ์‹œ getItems ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ํ–ˆ๋‹ค

ref ๋ฅผ ๊ฑธ์–ด์ค€ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ๋ณด์ด๋ฉด inview๊ฐ€ true, ์•ˆ ๋ณด์ด๋ฉด false ๊ฐ€ ๋˜๋Š”๋ฐ, inview๊ฐ€ true ์ผ์‹œ page๊ฐ€ ํ•˜๋‚˜์”ฉ ๋Š˜์–ด๋‚˜๊ฒŒ๋” ํ•˜์—ฌ ์„œ๋ฒ„์—์„œ ์‚ฌ์ง„์„ 10๊ฐœ์”ฉ ๋” ๋ฐ›์•„ ์˜ค๊ฒŒ๋” ํ–ˆ๋‹ค.

 

 

์ฝ”๋“œ๋ฅผ ์งœ๋ฉฐ ๋ฌดํ•œ์œผ๋กœ ์‚ฌ์ง„์„ ๋ฐ›์•„์˜ค๊ฒŒ ํ•˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ์ƒ๊ฒจ

์„œ๋ฒ„ ์—ด์–ด์ฃผ์‹œ๋Š” ๋ฐฑ์—”๋“œ ํŒ€์›๊ป˜ ๋งค์šฐ ๋ฏธ์•ˆํ–ˆ๋Š”๋ฐ ๐Ÿ˜‚

 

๊ฒฐ๊ตญ ์ด ๋ฌธ์ œ๋ฅผ ๋ฉ˜ํ† ๋‹˜๊ป˜ ์ฐพ์•„๊ฐ€ ์›์ธ์„ ์•Œ์•„๋ƒˆ๋‹ค

useEffect์˜ ๋ฐ˜๋ณต๊ณผ getItems ํ•จ์ˆ˜์— useCallback์„ ์จ์„œ ๋ Œ๋”๋ง์ด ๋„ˆ๋ฌด ๋งŽ์ด ์ด๋ฃจ์–ด์ง„๋‹ค๋Š”๊ฒŒ ์›์ธ์ด์—ˆ๋‹ค

 

 

ํ”„๋กœ์ ํŠธ ๋‚ด๋‚ด ์‹œ๊ฐ„์ด ์—†์–ด ์ผ๋‹จ ๊ธฐ๋Šฅ๋งŒ ๋Œ์•„๊ฐ€๋„๋ก ์ฝ”๋“œ๋ฅผ ๊ณ ์ณค๋Š”๋ฐ

์ˆ˜์ •์„ ๋งˆ์นœ ์ง€๊ธˆ๋„ ๊ณผ์—ฐ ๊ดœ์ฐฎ์€ ์ฝ”๋“œ์ธ๊ฐ€ ํ•˜๋Š” ์˜๋ฌธ์ด ๋งŽ๋‹ค

 

๊ตฌํ˜„ํ•˜๋ฉด์„œ ์˜ต์ €๋ฒ„๋ฅผ ๋”์šฑ ๊ณต๋ถ€ํ•ด๋ด์•ผ๊ฒ ๋‹จ ์ƒ๊ฐ์ด ๋งŽ์ด ๋“ค์—ˆ๋˜ ํŽ˜์ด์ง€์˜€๋‹ค

 

 

 

 

 

๐Ÿ‘‡ ์œ„๋„ˆ๋ ˆ์ŠคํŠธ ๋กœ๊ณ  โ˜บ๏ธ

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€