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 ์˜ ๊ธฐ๋Šฅ์€ ๊ธฐ์กด ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋” ๋น ๋ฅด๊ณ , ๋” ํšจ์œจ์ ์ด๋ฉฐ, ๋น„์šฉ ํšจ์œจ์ ์ธ ๋น„๊ตํ•  ์ˆ˜ ์—†๋Š” ์•ฑ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.