iOS ์ฑ ๊ฐ๋ฐ์ ๋งฅ๋ฝ์์ Metal์ ๊ฐ๋ฐ์๊ฐ GPU๋ฅผ ํฌํจํ ์ต์ Apple ํ๋์จ์ด์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ์ง์ํ๋ ๊ณ ์ฑ๋ฅ, ํ์ ์์ค ๊ทธ๋ํฝ ๋ฐ ๋ณ๋ ฌ ๊ณ์ฐ ํ๋ ์์ํฌ์ ๋๋ค. ๊ฐ๋ฐ์๊ฐ GPU ํ๋์จ์ด์ ๋๋ผ์ธ ์ ๋๋ก ๊ฐ๊น์์ง ์ ์๋๋ก ๊ฐ์ํ๋๊ณ ํจ์จ์ ์ธ API๋ฅผ ์ ๊ณตํฉ๋๋ค. 2014๋ Apple์ด ๋์ ํ Metal ํ๋ ์์ํฌ๋ ์ฒ์์๋ iOS ์ฅ์น๋ฅผ ๋์์ผ๋ก ํ์ง๋ง ๋์ค์ macOS, watchOS ๋ฐ tvOS ์ฅ์น๋ก ์ง์์ ํ์ฅํ์ต๋๋ค. Metal์ ํ๊ธฐ์ ์ธ ํ๋ ์์ํฌ๋ 2D ๋ฐ 3D ๊ฒ์, ์๊ฐํ ์ ํ๋ฆฌ์ผ์ด์ , ๊ธฐํ ์ฑ๋ฅ ์ง์ฝ์ ์ธ ์ํํธ์จ์ด๋ฅผ ์ํ ์ ๋ ฅ ํจ์จ์ ์ธ ๊ณ ํ์ง ๊ทธ๋ํฝ ๋ ๋๋ง์ ์ ๊ณตํจ์ผ๋ก์จ ๊ฐ๋ฐ์์ ์ต์ข ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
Metal์ ์ด๊ธฐ์ข ์ปดํจํ ์ด๋ผ๋ ๊ฐ๋ ์ธ CPU์ GPU์ ๊ณ์ฐ ๋ฅ๋ ฅ์ ๊ฒฐํฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ๋์ฑ ๊ฐ์ํํฉ๋๋ค. Metal์ ์ฃผ์ ๊ฐ์ ์ ์ค๋ฒํค๋๊ฐ ๋ฎ์ ์์ ๋ถํ๋ฅผ GPU๋ก ์ ์กํ๊ธฐ ์ ์ CPU๊ฐ ์ํํด์ผ ํ๋ ์์ ๋์ ์ค์ฌ์ค๋ค๋ ๊ฒ์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก Metal์ ๋ ๋๋ง, ์ฒ๋ฆฌ ๋ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ๋ฐ์ ์ ํตํด ๋ชจ๋ Apple ํ๋ซํผ์์ ๊ณ ๋๋ก ์ต์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ๊ณผ ์๋ต์ฑ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
Metal ์ฑ๋ฅ์ ์ฃผ์ ํ์ ์ ๋๋ผ์ด๋ฒ ์ค๋ฒํค๋์ ํจ๊ณผ์ ์ธ ๊ฐ์์์ ๋น๋กฏ๋ฉ๋๋ค. ๊ธฐ์กด OpenGL ๋ฐ OpenGL ES ๊ธฐ์ ์์๋ ๋์ ๋๋ผ์ด๋ฒ ์ค๋ฒํค๋๋ก ์ธํด ์ ์ฌ์ ์ธ ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ์ฌ ๊ทธ๋ํฝ ์ง์ฝ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค. Metal์ ๊ฐ๋ฐ์์ ์ฝ๋์ GPU ์ฌ์ด์ ์ง์ ์ ์ผ๋ก ๋ก์ฐ ๋ฐ์ด๋๋ฆฌ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ์ ๋ฉด์ผ๋ก ํด๊ฒฐํฉ๋๋ค. ์ด ์ต์ ํ๋ ์ํคํ ์ฒ๋ฅผ ํตํด Metal์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ต์ฑ์ ํฅ์์ํค๊ณ GPU ๋ฆฌ์์ค๋ฅผ ์ค๋งํธํ๊ฒ ํ ๋นํ์ฌ ๊ทธ๋ํฝ ๋ฐ ์ปดํจํ ๊ธฐ๋ฐ ์์ ์ ๊ทน๋ํํฉ๋๋ค.
AppMaster ์์๋ ๊ณ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ ํ์ง์ ํจ์จ์ ์ธ ๊ทธ๋ํฝ ๋ ๋๋ง์ ์ ๊ณตํ๋ Metal์ ์ ์ฌ๋ ฅ์ ์ธ์ํ๊ณ ์์ต๋๋ค. Metal์ด ์ ๊ณตํ๋ ์ด์ ์ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํด Android์ฉ Kotlin ๋ฐ Jetpack Compose ์ iOS์ฉ SwiftUI ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ AppMaster ์ ๊ฐ๋ ฅํ ์๋ฒ ๊ธฐ๋ฐ ํ๋ ์์ํฌ๋ฅผ ํตํด ๊ณ ๊ฐ์ ์ํํ๊ณ ์ฑ๋ฅ ์ค์ฌ์ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค. Metal์ ๊ธฐ๋ฅ์ ํ์ฉํจ์ผ๋ก์จ AppMaster ์ฑ๋ฅ ์ ํ ์์ด ์๊ฐ์ ์ผ๋ก ๋๋ผ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ ์ ์์ต๋๋ค.
iOS ์ฑ ๊ฐ๋ฐ์ ์ ํฉํ Metal์ ์ฃผ๋ชฉํ ๋งํ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ํตํฉ ๊ทธ๋ํฝ ๋ฐ ์ปดํจํ ์ ฐ์ด๋ฉ ์ธ์ด: MSL(Metal Shading Language)์ ๊ทธ๋ํฝ ๋ฐ ์ปดํจํ ์ํฌ๋ก๋ ๋ชจ๋์ ๋ํด ์ ฐ์ด๋๋ฅผ ์์ฑํ๋ ์ดํดํ๊ธฐ ์ฝ๊ณ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ C++11 ๊ธฐ๋ฐ ๋จ์ผ ์์ค ์ธ์ด์ ๋๋ค. ์ด ํตํฉ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ๋ณต์ก์ฑ์ ์ค์ฌ์ค๋๋ค.
2. ํจ์จ์ ์ธ ๋ฉํฐ์ค๋ ๋ฉ: Metal์ API๋ฅผ ์ฌ์ฉํ๋ฉด ์ฑ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ์ด์์ ๋ ๋ฆฝ์ ์ธ ์์ ์ผ๋ก ์คํํ๊ธฐ ์ํด ์ ์ถํ ์ ์๋ ์ฌ๋ฌ ๋ช ๋ น ๋ฒํผ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ด ํจ์จ์ ์ธ ๋ฉํฐ์ค๋ ๋ฉ์ GPU์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
3. GPU ๊ธฐ๋ฐ ๋ ๋๋ง: Metal์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ ๋๋ง ์์ ์ ๋ํ ์ธ๋ฐํ ์ ์ด๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. ICB(๊ฐ์ ๋ช ๋ น ๋ฒํผ)๋ก ์๋ ค์ง ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด GPU๊ฐ ๋ ๋๋ง ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์์ผ๋ฏ๋ก CPU ์ค๋ฒํค๋๊ฐ ์ค์ด๋ค๊ณ ์ ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
4. ์ธ๋ถํ๋ ๋ฆฌ์์ค ๊ด๋ฆฌ: Metal์ ๋ฉ๋ชจ๋ฆฌ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด Resource Heaps ๋ฐ Fences๋ผ๋ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ๋์ ํ์ฌ ๊ฐ๋ฐ์์๊ฒ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ๋ฆฌ์์ค ๊ด๋ฆฌ์ ๋ํ ์ ํํ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋ฉ์ปค๋์ฆ์ ํตํด ๊ฐ๋ฐ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฑ๋ฅ์ ๋ง๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ํจ๊ณผ์ ์ผ๋ก ์ต์ ํํ ์ ์์ต๋๋ค.
5. ASTC(Adaptive Scalable Texture Compression): ASTC๋ ๋ก์ดํฐ๊ฐ ์๊ณ ๊ด๋ฒ์ํ ํ์ง ๋ฐ ๋นํธ ์ ์ก๋ฅ ์ต์ ์ ์ ๊ณตํ๋ ๊ณ ๊ธ ๋ธ๋ก ๊ธฐ๋ฐ ํ ์ค์ฒ ์์ถ ๊ธฐ์ ์ ๋๋ค. Metal์ ASTC๋ฅผ ์๋ฒฝํ๊ฒ ์ง์ํ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ ์๋น ๊ฐ์, ์๋์ง ํจ์จ์ฑ ๋ฐ ๋ ๋์ ํ ์ค์ฒ ํ์ง์ ์ ๊ณตํฉ๋๋ค.
Metal ์ธ์ฑ ๊ฐ๋ฐ์ ํตํด ๊ฐ๋ฐ์๋ Apple ํ๋์จ์ด์ ๋ชจ๋ ๊ธฐ๋ฅ์ ํ์ฉํ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ค์ํ Apple ํ๋ซํผ์์ ์ต์ ์ผ๋ก ์๋ํ๋๋ก ํ ์ ์์ต๋๋ค. Metal์ AppMasterno-code ํ๋ซํผ์ ํตํฉํจ์ผ๋ก์จ ์ฐ๋ฆฌ๋ ๊ณ ๊ฐ์๊ฒ ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ด๊ณ ๋น ๋ฅด๋ฉฐ ์ต๊ณ ํ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋ ๋ฅ๋ ฅ์ ๋ถ์ฌํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ฑ ๋งค๋ ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ ๋ขฐ์ฑ์ด ๋งค์ฐ ๋์ผ๋ฉฐ ๊ธฐ์ ๋๋ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์์ ํํ ๋ณผ ์ ์๋ ๊ณ ์ฑ๋ฅ ์๊ตฌ ์ฌํญ๊ณผ ๊ณผ์คํ ์์ ๋ถํ๋ฅผ ์ฒ๋ฆฌํ ์ค๋น๊ฐ ๋์ด ์์ต๋๋ค.
AppMaster ์ ๊ณ ์ ํ๊ฒ ์ค๊ณ๋ ํ๋ซํผ๊ณผ Metal์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํตํด ๊ฐ๋ฐ์๋ ๋ ํ๋ ์์ํฌ์ ํจ์จ์ฑ์ ๊ฒฐํฉํ๊ณ ๊ถ๊ทน์ ์ผ๋ก ์ ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฒฝํ์ ํฅ์์ํค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ๋ ๋น ๋ฅด๊ณ , ๋ ๋น์ฉ ํจ์จ์ ์ด๋ฉฐ, ํจ์จ์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋ฏธ๋๋ฅผ ํฅํด ์ํํ๊ฒ ๋์๊ฐ ์ ์์ต๋๋ค. .