Project Catalyst๋ Apple์ด ๋์ ํ ํ์ ์ ์ธ ๊ธฐ์ ๋ก, ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋จ์ผ ์ฝ๋๋ฒ ์ด์ค๋ก macOS, iOS ๋ฐ iPadOS์ฉ ํฌ๋ก์ค ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค. 2019๋ WWDC(Apple Worldwide Developers Conference)์์ ์๊ฐ๋ ์ด ํ๊ธฐ์ ์ธ ๊ธฐ๋ฅ์ ์ฝ๋ ์ค๋ณต ๋ฐ ์ ์ง ๊ด๋ฆฌ ์ค๋ฒํค๋๋ฅผ ์ค์ด๋ฉด์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๊ฐ์ํํ๊ณ ๊ฐ์ํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. Catalyst๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ AppMaster ํ๋ซํผ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ค์ํ ํ๋ซํผ์ ๊ฑธ์ณ ์ฑ ์ฌ์ฉ์์ ๋ค์ํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๋ค์ฉ๋์ ํ์ฅ ๊ฐ๋ฅํ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
Catalyst์ ์ฃผ์ ๊ฐ๋ ์ UIKit(iOS ๋ฐ iPadOS ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ๋๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ํ๋ ์์ํฌ)๊ณผ AppKit(macOS ์ ํ๋ฆฌ์ผ์ด์ ์ฉ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ํ๋ ์์ํฌ) ์ฌ์ด์ ๋ธ๋ฆฌ์ง๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ด ๋ธ๋ฆฌ์ง๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๊ธฐ์กด UIKit ๊ธฐ๋ฐ iOS ๋ฐ iPadOS ์ฑ์ macOS๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ UIKit์ ์ฌ์ฉํ์ฌ ์๋ก์ด macOS ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค. Catalyst๋ ์ฑ์ ๊ธฐ๋ณธ macOS ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ณํํ๋ ๋์์ ๊ฐ๋ฐ์๊ฐ ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค์ ์๋น ๋ถ๋ถ์ ์ ์งํ ์ ์๋๋ก ํ์ฌ ์ ์ฒด ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถํฉ๋๋ค.
macOS, iOS ๋ฐ iPadOS์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ๋จ์ํํ๊ณ ํตํฉํจ์ผ๋ก์จ Project Catalyst๋ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ฃผ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ๊ฐ๋ฐ ์๊ฐ ๋จ์ถ: ๊ฐ๋ฐ์๋ ๋จ์ผ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ํ๋ซํผ์์ ์ํํ๊ฒ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก ๊ฐ ํ๋ซํผ์ ๋ํด ๋ณ๋์ ํ๊ณผ ์ฝ๋๋ฒ ์ด์ค๊ฐ ํ์ํ์ง ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ์ํ๋ ํ๋ก์ธ์ค๋ก ์ธํด ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ์๊ฐ์ด ๋จ์ถ๋ฉ๋๋ค.
- ํฅ์๋ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ: ๊ฐ๋ฐ์๋ ๊ฐ ํ๋ซํผ์ ๋ํด ๋ณ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋์ UIKit์ ํตํด ๊ธฐ์กด ์ง์๊ณผ ๊ฒฝํ์ ํ์ฉํ์ฌ macOS ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ ํ์ต ๊ณก์ ์ ์ต์ํํ๊ณ ์ค๋ณต์ ์ค์ด๋ฉฐ ์ ๋ฐ์ ์ธ ์ฝ๋ ํ์ง์ ํฅ์์ํต๋๋ค.
- ํฅ์๋ ์ฌ์ฉ์ ๊ฒฝํ: ๊ฐ๋ฐ์๋ Project Catalyst์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ง์๋๋ ๋ชจ๋ ํ๋ซํผ์์ ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ์ฑ์ ๋ง๋ค์ด ์ฑ ์ ์ฉ์ฑ์ ๋ณด์ฅํ๊ณ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
- ํฅ์๋ ์ฝ๋ ์ ์ง ๊ด๋ฆฌ์ฑ: ๊ฐ๋ฐ์๋ ๊ณตํต ์ฝ๋ ๋ฒ ์ด์ค๋ฅผ ํตํด ๋ฒ๊ทธ ์์ , ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ, ์ฑ ์ ๋ฐ์ดํธ ์ ์ง ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ ๋น์ฉ์ ์ค์ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ no-code ํ๋ซํผ์ธ AppMaster ๋ Project Catalyst๋ฅผ ํ์ฉํ์ฌ ๊ณ ๊ฐ์๊ฒ ๊ฐ๋ ฅํ๊ณ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. AppMaster ์ฌ์ฉ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋ฐ์ดํฐ ๋ชจ๋ธ, REST API, WebSocket endpoints ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ ์๊ฐ์ ์ผ๋ก ๋์์ธํ์ฌ ๊ธฐ์กด ์ฑ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ ๋ณต์ก์ฑ๊ณผ ์๊ฐ ์๋ชจ์ ํน์ฑ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
AppMaster ์ ํจ๊ป Project Catalyst๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค์ฐ ํจ์จ์ ์ธ ์ฑ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. AppMaster ํ๋ซํผ์ ์๋์ผ๋ก ์์ค ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํ์ผํ๊ณ , ํ ์คํธ๋ฅผ ์คํํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ปจํ ์ด๋์ ์์ถํ๊ณ , ํด๋ผ์ฐ๋์ ๋ฐฐํฌํฉ๋๋ค. ์ด ํ๋ก์ธ์ค๋ฅผ ํตํด ์ ์ํ ๋ฐ๋ณต๊ณผ ๋น ๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํด ํ๋ ๊ธฐ์ ๊ณผ ๊ฐ๋ฐ์๊ฐ ์๊ตฌํ๋ ํ์ฅ ๊ฐ๋ฅํ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
AppMaster ํ๋ซํผ์ผ๋ก ๊ตฌ์ถ๋ ๋ชจ๋ ํ๋ก์ ํธ์๋ ์๋ฒ endpoints ์ฉ Swagger(OpenAPI) ๋ฌธ์ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ์๋ํ ๋๊ตฌ๊ฐ ์ ๊ณต๋ฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฒญ์ฌ์ง์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ํตํฉ๋์ด ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ์์ง ์๊ณ ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ ์ ์์ต๋๋ค. ์ด ํ๋ก์ธ์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉ์์ ๋ณํํ๋ ์๊ตฌ์ ๋์์์ด ์งํํ๋ ๊ธฐ์ ํ๊ฒฝ์ ๋ฐ๋ผ ์ ์ํ๊ณ ์ฑ์ฅํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
Project Catalyst๋ฅผ ์ฑํํ ๊ฒฐ๊ณผ AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ง์ํ ์ ์์ต๋๋ค. Go๋ก ์์ฑ๋ ์ปดํ์ผ๋ ์ํ ๋น์ ์ฅ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ด๋ ํ์ฅ์ฑ์ ๋ํ๋ด๋ฉฐ ๊ธฐ์ ์ค์ ๊ณผ ๊ณ ๋ถํ ์ธํ๋ผ ์๋๋ฆฌ์ค ๋ชจ๋์ ์ ํฉํฉ๋๋ค.
์์ฝํ์๋ฉด, Project Catalyst๋ macOS, iOS ๋ฐ iPadOS ํ๋ซํผ์ฉ ํฌ๋ก์ค ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํฌ๊ฒ ๋ฐ์ ์ํค๋ ๋๋ผ์ด ๊ธฐ์ ์ ๋๋ค. Project Catalyst์ ๊ฐ๋ ฅํ AppMaster ํ๋ซํผ์ ๊ฒฐํฉ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ํ ํจ์จ์ ์ด๊ณ ํ์ ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ์ฌ ๊ธฐ์ ๊ณผ ๊ฐ๋ฐ์๊ฐ ๋ค์ํ ์ฌ์ฉ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ํ์ฅ ๊ฐ๋ฅํ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ํด์ค๋๋ค. Project Catalyst ๊ธฐ์ ์ ํ์ฉํ๋ AppMaster ์ ๊ธฐ๋ฅ์ ๊ธฐ์กด ๋ฐฉ๋ฒ๋ณด๋ค ๋ ๋น ๋ฅด๊ณ , ๋ ํจ์จ์ ์ด๋ฉฐ, ๋น์ฉ ํจ์จ์ ์ธ ๋น๊ตํ ์ ์๋ ์ฑ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.