AsyncTask๋ Android ์ด์ ์ฒด์ ์ ํต์ฌ ๊ตฌ์ฑ ์์๋ก, ๊ธฐ๋ณธ UI(์ฌ์ฉ์ ์ธํฐํ์ด์ค) ์ค๋ ๋์ ์๋ต์ฑ์ ๋ฐฉํดํ์ง ์๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์คํ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ ๊ฐ์ํํ๋๋ก ํน๋ณํ ์ค๊ณ๋์์ต๋๋ค. Android ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ฒฉ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฑ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ, ์ด๋ ๊ธฐ๋ณธ UI ์ค๋ ๋์์ ์คํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ๊ฒฝํ์ ์ฌ๊ฐํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. AsyncTask๋ ์ด๋ฌํ ์์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํจ์จ์ ์ธ ์๋ฃจ์ ์ ์ ๊ณตํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ๊ณ์ฐ๋์ด ๋ง์ ์์ ์ ์คํํ ๋์๋ ์ํํ๊ณ ์๋ต์ฑ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
๋ณธ์ง์ ์ผ๋ก AsyncTask๋ ๊ฐ๋ฐ์๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ํจ์จ์ ์ผ๋ก ์์ฑ ๋ฐ ๊ด๋ฆฌํ์ฌ ์ํํ ๋ฉํฐํ์คํน์ ์ด์งํ๊ณ UI ๋๊ธฐ ์๊ฐ ๋ฌธ์ ๋ฅผ ์ต์ํํ ์ ์๊ฒ ํด์ฃผ๋ ์ถ์ ํด๋์ค์ ๋๋ค. AsyncTask์ ์ฃผ์ ์ฅ์ ์ ์๋ ์ค๋ ๋ ๊ด๋ฆฌ ์์ด ์์ ์คํ์ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. AsyncTask๋ฅผ ํ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก CPU ์ง์ฝ์ ์ธ ์์ ์ ์ํํ๋ ๋์ ์ธํฐํ์ด์ค์ ์๋ต์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
AsyncTask์ ์คํ์ onPreExecute, doInBackground, onProgressUpdate ๋ฐ onPostExecute์ ๋ค ๊ฐ์ง ๊ธฐ๋ณธ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. onPreExecute ๋ฉ์๋๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ด ์์๋๊ธฐ ์ ์ UI ์ค๋ ๋์์ ํธ์ถ๋๋ฏ๋ก ๊ฐ๋ฐ์๋ ์งํ๋ฅ ํ์์ค ์ค์ , ๋ก๋ฉ ์ํ๋ก UI ์์ ์ ๋ฐ์ดํธ ๋ฑ ํ์ํ ๊ตฌ์ฑ ์์๋ฅผ ์ด๊ธฐํํ ์ ์์ต๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์์ ์คํ๋๋ doInBackground ๋ฉ์๋๋ ์ค์ ์์ ์ ์ฒ๋ฆฌํ๊ณ ์๋ฃ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. onProgressUpdate ๋ฉ์๋๋ ์์ ์งํ ์ํฉ์ ๋ฐ๋ผ UI ์ค๋ ๋๋ฅผ ์ ๋ฐ์ดํธํ๋ ์ญํ ์ ๋ด๋นํ๋ ๋ฐ๋ฉด onPostExecute๋ doInBackground๊ฐ ์๋ฃ๋ ํ ํธ์ถ๋์ด ๊ฐ๋ฐ์๊ฐ ์ป์ ๊ฒฐ๊ณผ๋ก UI๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์ ๋ฆฌ ์์ ์ ์ํํ ์ ์๋๋ก ํฉ๋๋ค.
AppMaster ํ๋ซํผ์ ๋งฅ๋ฝ์์ AsyncTask๋ REST API์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ, ํ์ผ ์ ๋ก๋ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ํ๊ณผ ๊ฐ์ด ์ฌ๋ฌ ๋ฐฑ์๋ ์์คํ ๊ณผ ์ํธ ์์ฉํด์ผ ํ๋ Android ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ํนํ ์ ์ฉํ ์ ์์ต๋๋ค. AppMaster ์ ์๋ฒ ์ค์ฌ ์ ๊ทผ ๋ฐฉ์์ ํตํด ๊ณ ๊ฐ์ ํ๋ซํผ์์ ์์ฑ๋ ๋น์ฆ๋์ค ํ๋ก์ธ์ค์ ๋น๋๊ธฐ ์์ ์ ์ํํ๊ฒ ํตํฉํ๋ Android ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ ๊ฐ๋ฐ ์๊ฐ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ํ ๋ณ๋์ ์ค๋ ๋๋ฅผ ๊ด๋ฆฌํ๋ ์ ์ฒด์ ์ธ ๋ณต์ก์ฑ์ ์ค์ฌ ์ต์ข ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ํํ๊ณ ์๋ต์ฑ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค.
๋ํ AsyncTask๋ Android ์ ํ๋ฆฌ์ผ์ด์ ์ฉ์ผ๋ก ์์ฑ๋ Kotlin ๋ฐ Jetpack Compose ์ฝ๋์์ ๊ณ ์ ํ ํธํ์ฑ์ผ๋ก ์ธํด AppMaster ์์ฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ์ ํฉํฉ๋๋ค. ์ด ํธํ์ฑ์ ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ณธ ๊ธฐ์ ์ ๋ํ ๊ด๋ฒ์ํ ์ง์์ด ํ์ํ์ง ์๊ฑฐ๋ ํธํ์ฑ ๋ฌธ์ ์ ์ง๋ฉดํ์ง ์๊ณ ๋ AsyncTask ๊ธฐ๋ฅ์ ์ํํ๊ฒ ๊ตฌํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก AppMaster ๋ก ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ฌด๊ฑฐ์ด ์์ ์ ์ฒ๋ฆฌํ๋ ๋์์ ์ต์ ํ๋ ์ฑ๋ฅ๊ณผ ์๋ต์ฑ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
๋ง์ ์ฅ์ ์๋ ๋ถ๊ตฌํ๊ณ AsyncTask์๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด AsyncTask ์ธ์คํด์ค๋ ํด๋น Activity ๋๋ Fragment์ ๋ฐ์ ํ๊ฒ ๋ฐ์ธ๋ฉ๋์ด ์์ผ๋ฏ๋ก ์ฃผ์ ๊น๊ฒ ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๋ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ํ AsyncTask ์ธ์คํด์ค๋ ํ ๋ฒ๋ง ์คํ๋ ์ ์์ผ๋ฏ๋ก ์์ ์ ์ฌ๋ฌ ๋ฒ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ ์ ์ฌ์ ์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ํ Android ๊ฐ๋ฐ์ด ๋ฐ์ ํจ์ ๋ฐ๋ผ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ฒ๋ฆฌํ ๋ ํฅ์๋ ๋จ์์ฑ๊ณผ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ Kotlin ์ฝ๋ฃจํด๊ณผ ๊ฐ์ AsyncTask์ ๋ํ ์๋ก์ด ๋์์ด ๋ฑ์ฅํ์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ AsyncTask๋ ์์ฑ๋ ์ฝ๋์์ ํธํ์ฑ์ผ๋ก ๊ตฌํ์ด ์ฉ์ดํ AppMaster ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํนํ ๋ง์ ์๋๋ฆฌ์ค์์ ์คํ ๊ฐ๋ฅํ ์๋ฃจ์ ์ผ๋ก ๋จ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก AsyncTask๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ ๋ฐ์ ์ธ ์๋ต์ฑ์ ํฅ์์ํค๊ธฐ ์ํ Android ์ฑ ๊ฐ๋ฐ์ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค. AppMaster ์์ฑ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ์ ์ํํ ํตํฉ์ ํตํด ๊ณ ๊ฐ์ ๊ณ์ฐ ์ง์ฝ์ ์ธ ์์ ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋ณต์กํ๊ณ ํ์ฅ ๊ฐ๋ฅํ Android ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ํน์ ์ ํ ์ฌํญ์ ์ธ์ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋์ฒด ์๋ฃจ์ ์ ๊ณ ๋ คํด์ผ ํ์ง๋ง AsyncTask๋ AppMaster ์ํ๊ณ ๋ด์์ ๊ณ ์ฑ๋ฅ Android ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ ์ญํ ์ ํ ์ ์์ต๋๋ค.