
์จ์คํ์ผ ์ฑ ๊ฐํธ ํ ๋๋ ค์ง โ์คํฌ๋กค ์๋โ ๊ฐ์ ํ ์ฌ์ฐ
์จ์คํ์ผ ์ฑ ๊ฐํธ ํ ๋๋ ค์ง โ์คํฌ๋กค ์๋โ ๊ฐ์ ํ ์ฌ์ฐ ๊ด๋ จ
2025๋ ์ค ์ฐํด, ์ฌ๋ฌ๋ถ์ ์ด๋ป๊ฒ ๋ณด๋ด๊ณ ์๋์? ์๋ก์ด ์์์ ์ํด ์ค๋นํ๋ ๋ถ๋, ๋ค์ ๋ฌ๋ฆฌ๊ธฐ ์ํด ํน ์ฌ๋ ๋ถ๋ ์์ ํ ๋ฐ์. ์์ฆIT์์ ์ค ์ฐํด๋ฅผ ๋ง์ ๊ตญ๋ด ์ฃผ์ ๊ธฐ์ ์ ํน์ ์๊ณ ์ ์ตํ ๋ธ๋ก๊ทธ ์ฝํ ์ธ ๋ฅผ ์๊ฐํ๋ ์๋ฆฌ์ฆ๋ฅผ ์ค๋นํ์ต๋๋ค. ์ด๋ค์ ์ด๋ป๊ฒ ์ฌ๊ณ ํ๊ณ , ์ด๋ค ๋ฐฉ์์ผ๋ก ์ผํ๋ ๊ฑธ๊น์?
์ด๋ฒ ๊ธ์์๋ CJ์จ์คํ์ผ ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์๊ฐ ํ ํญ ๊ฐํธ ์ดํ, ์คํฌ๋กค ์ ๋ฒ๋ฒ ์์ด ์๊ธฐ๋ ์ด์๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ๊ทธ ๊ณผ์ ์ ๊ณต์ ํฉ๋๋ค.

์๋ ํ์ธ์. CJ ENM ์ปค๋จธ์ค ๋ถ๋ฌธ์์ Android ์ฑ์ ๊ฐ๋ฐํ๋ ์ ๊ท์ฐฌ์ ๋๋ค. ์จ์คํ์ผ ์ฑ์ ์ง๋ 2024๋ 4์ ํ ํญ ๊ฐํธ ๊ธฐ์ ์ผ๋ก ๋ง์ ๋ณํ๊ฐ ์์์ต๋๋ค. ์ฒซ ํ ํญ ๊ฐํธ ๊ธฐํ ๋ฆฌ๋ทฐ์ ๋ค์ด๊ฐ์ ๋, ํ ํญ ๊ฐํธ์ ๋ง์ ์์๊ณผ ๋ค์ํ UI๋ก ๊ตฌ์ฑ๋ ์์ ์ด๋ผ๊ณ ํ์ต๋๋ค.
๊ฐ๋ฐ ๋ฆฌ๋ทฐ ํ ๋จผ์ ๋ค์๋ ์๊ฐ์ ํ ํญ ๊ฐ์ ๊ฐ๋ฐ ์๋ฃ ํ, ์ด์ ์์ ์ ํ ํญ์ ๋ฉ๋ชจ๋ฆฌ ๋ถํ๋ก ๊ณ ์ํ ์๋ ์์ ๊ฒ ๊ฐ๋ค๋ ๊ฑฑ์ ์ด์์ต๋๋ค. ์ ๊ฐ ์ด๋ฌํ ๊ฑฑ์ ์ ํ ๋๋ง๋ค ํญ์ ์ค์ ์ด์๋ก ๋ค๊ฐ์์๋๋ฐ, ์ด๋ฒ ํ๋ก์ ํธ์์๋ ํ ํญ ์คํฌ๋กค ์ ์ฝ๊ฐ์ฉ ๋ฒ๋ฒ ์ธ๋ค๋ ์ด์๊ฐ ๋ํ๋ฌ์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํ ํญ ์คํฌ๋กค ์ ๋ฒ๋ฒ ์์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง์ ๋ํ ๋ด์ฉ์ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.
์ด๋์ ๋๋ ค์ง ๊ฒ์ผ๊น?
ํ ํญ ์คํฌ๋กค์ ํ๋ค ๋ณด๋ฉด ์ผ๋ถ ๊ตฌ๊ฐ์์ ๋ฏธ์ธํ๊ฒ ๋์ปน(?)ํ๋ ๋ถ๋ถ์ ๋ฐ๊ฒฌํ ์ ์์๋๋ฐ์. ์ด ์์ญ ์์ฃผ๋ก ์ฒดํฌํ๋ ํฌ๊ฒ ์ธ ๋ถ๋ถ์ ๋ฐ๊ฒฌํ ์ ์์์ต๋๋ค. ํ๋๋ ์์ Prepare, Release ์์ , ๋ ๋ฒ์งธ๋ Cookie์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ฑ์ธ ์ํ ๊ตฌ์ข ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ฆฌ๋ ์์ , ์ธ ๋ฒ์งธ๋ ๋น๋๊ธฐ ๋ชจ๋ ํธ์ถ ํ ์ค๊ฐ์ ๋ค๋์ ์์ญ์ ๋ชจ๋๊ตฌ์ข๊ฐ ๋ค์ด๊ฐ๋ ์์ ์ด์์ต๋๋ค.
๋์์ ์์ญ์์์ ๋๋ฆผ
์ ํฌ๋ ์์์ โExoPlayerโ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด ExoPlayer๋ ์ค๋น(prepare
)ํ ๋, ํ๋ ์ด์ด๋ ๋ฒํผ๋ ๋์ฝ๋์ ๊ฐ์ ์์์ ํ ๋นํ๊ธฐ ์์ํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ๊ฒ ๋ฉ๋๋ค. ์ค๋น์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉํ๋ฏ์ด ์ข
๋ฃ(release
)ํ ๋๋ ๋์ฝ๋, ๋ ๋๋ฌ, ๋ฒํผ ๋ฑ ๋ค์ํ ๋ฆฌ์์ค๋ฅผ ์ ๊ฑฐํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
ํ ํญ์ ๋ค์ํ ๋์์์ ์ฌ์ฉํ๊ณ ์๋ ๊ตฌ์กฐ๋ก ๋ฆฌ์คํธ๊ฐ ๋น ๋ฅด๊ฒ ์คํฌ๋กค ํ๋ค ๋ณด๋ฉด, ๋ง์ ๋์์์ Prepare์ Release ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊น๋๋ค. ํ๋ ๊ฐ์ ๋์์์ ์ํฅ์ ์ค ์ ์๊ฒ ์ง๋ง, ํ ํญ์ ์๋จ ํค๋ ์์, ๊ฐ๋ก ์คํฌ๋กค ์์, ๋ฐฐ๋์์ ํผ์ณ์ง๋ ์์ ๋ฑ ๋ค์ํ ๋์์ ์์๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ค๊ณ๊ฐ ํ์ํฉ๋๋ค.

์ด๋ฏธ์ง ๋ก๋์ ๋๋ฆผ
์ปค๋จธ์ค ์ฑ์์ ์ ์๋๋ ์ํ ์ค ์ฑ์ธ ์ํ์ด ๋ฑ๋ก๋๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ฑ์์๋ ์ฑ์ธ ์ํ์ ํ์ํ๊ธฐ์ ์์ ํด๋น ์ฌ์ฉ์๊ฐ ์ฑ์ธ์ธ์ง ํ์ธ์ ํ๋๋ฐ, ์ฑ์ธ ์ฌ๋ถ๋ Cookie ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ํ๋จํฉ๋๋ค. ์ ์ ์์ Cookie ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํฌ๊ฒ ๋ฌด๋ฆฌ๋ฅผ ์ค ์ ์์ง๋ง ๋๋ฐ์ด์ค ๋ด Cookie๊ฐ ๋ง์ ๊ฒฝ์ฐ, Cookie ๊ฐ์ ธ์ค๋ ๊ฒ์ผ๋ก๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ ์ ๋ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
ํ ํญ์ ๋ค์์ ์ํ์ด ๊ฝํ์๋ ์ํ ๊ตฌ์ข๊ฐ ์กด์ฌํ๋๋ฐ์. ์ด ํญ์์ ๋น ๋ฅด๊ฒ ์คํฌ๋กค์ ๋ด๋ฆฌ๊ฒ ๋๋ฉด ๋ง์ ์ํ์ Cookie๋ฅผ ํ ๋ฒ์ ๊ฐ์ ธ์ค๋ฉด์ ๋ฉ๋ชจ๋ฆฌ์ ์ํฅ์ ์ค ์ ์๊ฒ ๋ฉ๋๋ค.

๋น๋๊ธฐ ํ๋ฉด ์ฆ๊ฐ ๋ก์ง
ํญ์ ๋ชจ๋ ์ํ๊ตฌ์ข์ ๋ฐ์ดํฐ๋ฅผ ๋ค ๊ฐ์ ธ์ค๋ฉด ์ข์ง๋ง, ๊ฐ์ธํ ๋ฐ์ดํฐ, ๋ญํน ๋ฐ์ดํฐ, ๋ผ์ด๋ธ ๋ฐฉ์ก ๋ฐ์ดํฐ์ ๊ฐ์ ์ค์ค์๊ฐ ๋ฐ์ดํฐ์ ๋ํด์๋ ๋น๋๊ธฐ๋ก ์ ๊ณตํ๋ ๊ฒ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋น์ฆ๋์ค ๋ก์ง์ ๋๋ค. ์จ์คํ์ผ๋ ๋น๋๊ธฐ ํต์ ์ ๋ก๋ฉ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ๋น๋๊ธฐ API ์๋ฃ ํ ๋ก๋ฉ ๋ทฐ๋ฅผ ์ ๊ฑฐํ๋ฉฐ ํด๋น ๊ตฌ์ข๋ฅผ ํ์ํ๊ฒ ๋ฉ๋๋ค. ํญ ๋ด ์คํฌ๋กค๋ก ํ๋จ์ ์๋ ์ํ ๊ตฌ์ข๋ก ์ด๋ ์ค ๋น๋๊ธฐ ํต์ ํ๋ ์ํ ๊ตฌ์ข๋ฅผ ๋ง๋ ๊ฒฝ์ฐ, ๋ก๋ฉ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ๋ ๊ฒ์ด๊ณ ๋น๋๊ธฐ ํต์ ์๋ฃ ํ์ ์ํ ๊ตฌ์ข๋ฅผ ๋ณด์ฌ์ค ๊ฒ์ ๋๋ค.
๋ง์ฝ ํ์ํ ์ํ ๊ตฌ์ข๊ฐ ๋ก๋ฉ ๋ทฐ๋ณด๋ค ๊ธด ๊ฒฝ์ฐ, ์ํ ๊ตฌ์ข๊ฐ ์คํฌ๋กค์ ์์น๋ฅผ ์กฐ์ ํ๋ฉด์ ์คํฌ๋กค์ ์ํฅ์ ์ฃผ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ก๋ฉ ๋ทฐ์ ์ํ ๊ตฌ์ข์ ๋ฐฐ๊ฒฝ์์ด ๋ฐ์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉด, ๊น๋ฐ์ ๋๋ ๋ฒ๋ฒ ์์ฒ๋ผ ๋๊ปด์ง ์ ์์ต๋๋ค.

์ด๋ป๊ฒ ํด๊ฒฐํ ๊ฒ์ธ๊ฐ?
Thomas J. Watson (IBM ์ฐฝ๋ฆฝ์)
โ๋ฌธ์ ๋ฅผ ์ ํํ๊ฒ ์ ์ํ๋ฉด ํด๊ฒฐ์ 50%๋ ์ด๋ฏธ ๋ฌ์ฑ๋ ๊ฒโ
โThe ability to ask the right question is more than half the battle of finding the answer.โ
IBM์ ์ฐฝ๋ฆฝ์ Thomas J.Watso์ ๋ง์ ์ธ์ฉํ๋ฉด, ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ ์์ด ๋ฌธ์ ์ ๋ํด ์ ํํ๊ฒ ์ ์ํ๋ฉด 50% ์ด์์ ํด๊ฒฐํ ์ ์๋ค๊ณ ํฉ๋๋ค. ์ ๋ํ 50% ์ด์์ ์ฑ๊ณต ํ๋ฅ ์ด๋ผ๋ ๋ฏฟ์์ ๊ฐ๊ณ ์คํฌ๋กค ๋ฒ๋ฒ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ถ์ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ฌ๋ฌ ๊ฐ์ง ํด๊ฒฐ ์๋๋ฆฌ์ค๋ฅผ ๋์ถํ์ต๋๋ค. ์ด์ ๊ฐ ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ์ ํ๋์ฉ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋น๋์ค ์์ญ ํด๊ฒฐ ๋ฐฉ์
Lazy Prepare Video
๋์์ ์์ญ์์์ ๋๋ฆผ์ ExoPlayer์ Prepareํ๋ ๊ณผ์ ์ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ์ํฅ์ด ์์์ ํ์ธํ์ต๋๋ค. ๋น ๋ฅธ ์คํฌ๋กค ํ๋ ์ฌ์ฉ์๋ ํญ์ ์กด์ฌํ๋ ์์์ ๋ณด๋ ๊ฒ๋ณด๋ค, ์ํ๋ ์ํ์ด ์๋ ๊ตฌ์ข๋ก ์ด๋ํ๋ ๋ชฉ์ ์ ๊ฐ๊ณ ํ๋ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋น ๋ฅธ ์คํฌ๋กค ์ค ์ง๋์น๋ ๋์์์ prepare๋ โSKIPโ ํด๋ ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๊ฐ๋จํ ๋น์ฆ๋์ค ๋ก์ง์ ์ค๋ช ํ๋ฉด, ์คํฌ๋กค์ด ์ด๋ค์ง ๊ฒฝ์ฐ Recycler View์ Scroll Listener๊ฐ ํธ์ถ๋๋๋ฐ์. ์ด๋ ํธ์ถ๋๋ Scroll Lister๋ก ์ ๋ฌ๋๋ ์ด๋ ํฝ์ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก Scroll Speed๋ฅผ ์ ์ฅํ์ฌ ํ๊ท ์ ๊ตฌํฉ๋๋ค. ์คํฌ๋กค ๋์ค Video Prepare๋ฅผ ์๋ ์ ์ ์ฅ๋ Scroll Speed์ ํ๊ท ๊ฐ์ด ์๊ณ์น๋ฅผ ์ด๊ณผํ ์ํ์ธ์ง ํ์ธํ๊ณ , ์๊ณ์น๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ Video Prepare๋ โSKIPโํ๋ ๋ก์ง์ ๊ตฌ์ฑํ์ต๋๋ค.

Lazy Video Release
Lazy Prepare Video์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋น์ทํ ๋ฐฉ์์ผ๋ก Video Release์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌ์ฑํ์ต๋๋ค. ์ด์ ์๋ ExoPlayer Release๋ฅผ View๊ฐ onDetachedFromWindow()๋ฅผ ํธ์ถ ์์ ์ ์ฒ๋ฆฌํ์ต๋๋ค. ์ด๋ ๊ฒ ๊ตฌ์ฑ๋ ํญ์์๋ ๋์์ ์์ญ์ ๋น ๋ฅด๊ฒ ์ง๋๊ฐ ๋๋ง๋ค ๋์์ Release๋ฅผ ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ๋น์ฆ๋์ค ๋ก์ง์ ๋์์ ํด์ ๋ฅผ ํตํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ผ๋ก, ๋น ๋ฅด๊ฒ ์ํ ๊ตฌ์ข๋ก ์ด๋ํ๋ ค๋ ์ฌ์ฉ์์ ํ๋์ ๋ฐฉํดํฉ๋๋ค. ๊ทธ๋์ ๊ณ ์ํ ๋ฐฉ์์ด ์ง์ฐ ๋น๋์ค ํด์ (Lazy Video Release
)์
๋๋ค.
์ง์ฐ ๋น๋์ค ํด์ (Lazy Video Release) ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ๋จํ ๊ณต์ ํ๋ฉด, ๋์์ ํด์ ์๋ ์ Video Release Pool Manager์ ๋ณด๊ดํ๊ณ ์๋ค๊ฐ, ์คํฌ๋กค์ด ์ ์ง๋์์ ๊ฒฝ์ฐ ํ ๋ฒ์ Video Release๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ๋ง์ฝ ์ฌ์ฉ์์ ์คํฌ๋กค์ด ์ฐ์์ผ๋ก ์ด์ด์ ธ ๋ง์ ๋์์์ด Video Release Pool์ ์ ์ฅ๋ ๊ฒฝ์ฐ, Video Release Pool์์ ์ ์ฅํ ์ต๋ ๊ฐ์๋ฅผ ์ง์ ํฉ๋๋ค. ๋ง์ฝ ์ต๋์น๋ฅผ ๋์ด๊ฐ๋ฉด ์ ์ ์ ์ถ(FIFO:First In First Out) ๋ฐฉ์์ผ๋ก ๊ฐ์ฅ ๋จผ์ Video Release Pool์ ์ ์ฅํ Video๋ฅผ Release ์ฒ๋ฆฌํฉ๋๋ค.

์ด๋ฏธ์ง ์์ญ ํด๊ฒฐ ๋ฐฉ์
์ด๋ฏธ์ง ๋ก๋ ์ ์ฟ ํค ์ฌ์ฉ ๋ฐฉ์ง
์ด๋ฏธ์ง๋ฅผ ํ์ํ๋ ๋ฐฉ์ ์ค ์ฑ์ธ ์ํ์ ๋ํ ์ฒดํฌ ๋ก์ง์ ๋ด๋นํ๋ ์ด๋ฏธ์ง ๋ทฐ๊ฐ ๋ณ๋๋ก ์กด์ฌํฉ๋๋ค. ์ฌ๊ธฐ์ ์ฑ์ธ ์ฌ๋ถ์ ๋ํ ๊ฐ์ Cookie ๊ฐ์ผ๋ก ๋ฐ๋ผ๋ณธ ๊ฒ์ SharedPreference
์ ์ ์ฅ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฑ์ธ ์ฌ๋ถ๋ฅผ ์ฒดํฌํ์ต๋๋ค.
Cookie์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค๋ ๊ฒ์ Cookie์ ์์ด ๋น๋ํด์ง ๊ฒฝ์ฐ, ์๋ ์ ํ๊ฐ ๋๋ ๋ถ๋ถ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๊ทธ๋์ Cookie์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ก์ง์์ SharedPreference
๋ฅผ ํตํด์ ์ฑ์ธ ์ฌ๋ถ ๊ฐ์ ๊ฐ์ ธ์ค๋๋ก ์์ ํ์ฌ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ต์ํ ํ ์ ์์ต๋๋ค. ๋ง์ฝ SharedPreference
๋ฅผ ๋ณ๊ฒฝํ์ง๋ง ์ฌ์ ํ ๋๋ฆฌ๋ค๋ฉด, ์ฑ์ธ ์ฌ๋ถ ๊ฐ์ Application์ Global Value๋ก ๊ตฌ์ฑํ์ฌ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๊ณ , ์ฑ์ธ ์ด๋ฏธ์ง ํ์ ์ฌ๋ถ๋ฅผ ํ๋จํ ๋ ์ฌ์ฉํ ์์ ์
๋๋ค.
ํ์ฌ๋ SharedPreference
๋ฅผ ํ์ฉํ๋ ๊ฒ์ผ๋ก๋ ์๋ ํฅ์์ ๊ฒฝํํ์ฌ ์ด ๋ฐฉ์์ ์ ์งํ๊ณ ์์ต๋๋ค.

๋น๋๊ธฐ ํ๋ฉด ํด๊ฒฐ ๋ฐฉ์
Preload Async API
๋น๋๊ธฐ ํต์ ์ ํ ๋ฒ์ ํธ์ถํ๋ ๊ฒ์ API ๋น์ฉ ๋ฌธ์ ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ฐ API ํธ์ถ ๋ฌธ์ ๋ ๋น๋๊ธฐ ํต์ ์ ๋ํ ์บ์ ์ ์ฑ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ฌํ ๋น์ฉ ๋ฌธ์ ๋ฅผ ๋ ๋์ ํ ํ๋ฉด์ ์พ์ ํ ์คํฌ๋กค์ ์ฐ์ ์์๋ฅผ ๋๊ณ ๋์ํ๋ค๋ฉด, ๋น๋๊ธฐ API๋ฅผ ์ํ ๊ตฌ์ข๊ฐ ๋ณด์์ ๋ ํธ์ถํ๋ ๊ฒ์ด ์๋๋ผ ํ ํ๋ฉด์ด ๋ ธ์ถ ์์ ์ ๋น๋๊ธฐ API๋ฅผ ์ฌ์ ์ ํธ์ถํ์ฌ UI๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌ๋ฉด ์คํฌ๋กค ์ค๊ฐ์ UI ํ๋ ํ์์ ์ต์ํํ ์ ์์ต๋๋ค.
๋ํ ํ ํญ์์ ํ ๋ฒ์ ๋ง์ ๋น๋๊ธฐ API ์ ํธ์ถํ๋ค ๋ณด๋ฉด, ๋ชจ๋์ INSERT, DELETE๊ฐ ๋์์ ์ด๋ค์ง ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ๋์์ INSERT, DELETE๊ฐ ๋ฐ์ํ๋ฉด INDEX๊ฐ ๊ผฌ์ด๋ ํ์์ด ๋ฐ์ํ์ฌ ์์๊ณผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ผ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ์์ ๋ฐฉ์ดํ๊ธฐ ์ํด์ ๋ชจ๋ ๋์์ TASK๋ก ๊ตฌ๋ถํ์ฌ Queue์ ๋ด์์ต๋๋ค. ์ด๋ ๊ฒ ๋ด์ TASK๋ Queue์์ ํ๋์ฉ ๊บผ๋ด์ UI ์ฒ๋ฆฌํ๋๋ก ๊ตฌ์ฑํ์ฌ, ๋์์ ์์ฒญํ๋ INSERT, DELETE์ ๋ํ index ํ์ด์ง์ ๋๋นํ ์ ์์์ต๋๋ค.

์๋ ๊ฐ์ ๊ฒฐ๊ณผ๋?
ํ ํญ ์๋ ๊ฐ์ ์ ์ํด ์ฌ๋ฌ ์๋๋ฆฌ์ค๋ฅผ ๊ฐ๊ณ ์งํํ์ต๋๋ค.

์ฌ๋ฌ ์๋๋ฆฌ์ค๋ฅผ ๋ฃ๊ณ ํ ์คํธ ํ ๊ฒฐ๊ณผ, ์์ ์๊ฐํ ํด๊ฒฐ ๋ฐฉ์์ธ Lazy Prepare Video, Lazy Release Video, Preload Dynamic API๋ฅผ ์ ์ฉํ์ ๋, ์ด์ ๋ฒ์ ์ ๋นํด ํ ํญ ์คํฌ๋กค ์ UI ๋ ๋๋ง ์ง์ฐ ํ์(๋ฒ๋ฒ ์)์ด ํ์ฐํ ์ค์ด๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ์ด ํด๊ฒฐ ๋ฐฉ์์ด ๋ง๋์ง ๊ฒ์ฆํ๊ธฐ ์ํด ์จ์คํ์ผ ํญ ์ค ํ ํญ์ด ์๋ ๋ค๋ฅธ ํญ์ธ โํน๊ฐโ ํญ์๋ ์ ์ฉํ๋๋ฐ, ํ ํญ๊ณผ ๊ฐ์ด ํน๊ฐ ํญ๋ ์ด์ ์ ๋นํด ๋นจ๋ ค์ก๋ค๋ ๊ธ์ ์ ์ธ ํ๊ฐ๋ฅผ ๋ฐ์์ต๋๋ค.
ํ ํญ ์คํฌ๋กค ์๋ ๊ฐ์ ์ ๋ํ ๊ฐ๊ด์ ์ธ ์ฆํ๋ ์์น๋ฅผ ๋ฝ์ผ๋ ค๊ณ ํ์ผ๋, ์์ฝ๊ฒ๋ ์คํฌ๋กค์ด ๋นจ๋ผ์ก๋ค๋ ๊ธฐ๋ก์ ๋ํ ์์ด๋์ด ๋ถ์กฑ์ผ๋ก ์คํจํ์ต๋๋ค. ํ ํญ ์คํฌ๋กค ์๋ ๋ณํ์ ๋ํ ์์นํ๋ฅผ ์คํจํ ์์ฌ์ด ๋ง์์ผ๋ก,ย AS-IS์ TO-BE ๋น๊ต ์์์ ์ค๋นํ์ต๋๋ค.

๋ง์น๋ฉฐ
์ด๋ฒ ์๋ ๊ฐ์ ํ๋ก์ ํธ๋ ๋ฉ๋ชจ๋ฆฌ์ ํ์ฉ์ ์ค์ด๋ ๋ฐฉ์์ ์ด์ ์ ๋๊ณ ๋ฌธ์ ํด๊ฒฐ์ ์ ๊ทผํ์ต๋๋ค. ์ด๋ฌํ ์คํฌ๋กค ๋ฒ๋ฒ ์์ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ๋ง์ ์ ์๋ ๋ฌธ์ ๊ณ , RecyclerView ์คํฌ๋กค์ ๋ํ UI ์ฒ๋ฆฌ์ ๋ํด์๋ ๋ง์ ๊ณ ๋ฏผ์ด ํ์ํฉ๋๋ค.
์ํฌ๋ผํ ์ค (Socrates)
โ๋๋ ๋ด๊ฐ ์๋ฌด๊ฒ๋ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ ์๋ค.โ
โI know that I know nothing.โ
์ ์ํฌ๋ผํ ์ค์ ๋ช ์ธ์ฒ๋ผ ์ฌ๋์ ์ฒ์๋ถํฐ ์๋ฒฝํ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด ๋ผ ์ ์๋ฏ์ด, ํ ํญ ์คํฌ๋กค ๊ฐ์ ์ ๋ํด์๋ ํ์ฌ์ ํด๊ฒฐ ๋ฐฉ์์ด ์๋ฒฝํ์ง ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฐฉ์์ ๊ณต์ ํ ์ด์ ๋ ์ด ํด๊ฒฐ ๋ฐฉ์์์ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ด, ๋ ์ข์ ํด๊ฒฐ ๋ฐฉ์์ด ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ ์ฒ๋ผ ์คํฌ๋กค ์ด์๋ฅผ ๋ง์ ๊ฐ๋ฐ์ ๋ถ๋ค์๊ฒ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๋ฌด์๋ณด๋ค ๊ฐ๋ฐ์๋ ๊ฐ๋ฐ์ ์์ฑ์ด ์๋ค๋ ์๊ฐ์ ๊ฐ๊ณ ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฐ ์ ์์ ํ ํญ ์๋ ๊ฐ์ ์ ์์ผ๋ก ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ๊ณ์ ์ด๋ค์ง ๊ฒ์ด๊ณ , ์์ผ๋ก ๊ฐ๋ฐ๋๋ ๋ชจ๋ ํญ์์๋ ์๋ ๊ฐ์ ์ ์ํ ๊ณ ๋๊ฐ ์ด์ด์ง ๊ฒ์ ๋๋ค.
<์๋ณธ>
ย