2025๋…„ 4์›” 30์ผยท6๋ถ„ ์ฝ๊ธฐ

์˜คํ”„๋ผ์ธ ์šฐ์„  ๋ชจ๋ฐ”์ผ ์•ฑ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™๊ธฐํ™”: ์ถฉ๋Œ, ์žฌ์‹œ๋„, UX

Kotlin ๋ฐ SwiftUI ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ์œ„ํ•œ ๋ช…ํ™•ํ•œ ์ถฉ๋Œ ๊ทœ์น™, ์žฌ์‹œ๋„ ๋กœ์ง, ๊ฐ„๋‹จํ•œ ๋Œ€๊ธฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ UX๋ฅผ ํฌํ•จํ•œ ์˜คํ”„๋ผ์ธ ์šฐ์„  ๋ชจ๋ฐ”์ผ ์•ฑ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™๊ธฐํ™” ๊ณ„ํš.

์˜คํ”„๋ผ์ธ ์šฐ์„  ๋ชจ๋ฐ”์ผ ์•ฑ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™๊ธฐํ™”: ์ถฉ๋Œ, ์žฌ์‹œ๋„, UX

๋ฌธ์ œ: ์‚ฌ์šฉ์ž๋Š” ์˜คํ”„๋ผ์ธ์—์„œ ํŽธ์ง‘ํ•˜๊ณ , ํ˜„์‹ค์€ ๋ฐ”๋€๋‹ค

๋ˆ„๊ตฐ๊ฐ€๋Š” ์—ฐ๊ฒฐ์ด ์ข‹์€ ์ƒํƒœ์—์„œ ์ž‘์—…์„ ์‹œ์ž‘ํ•œ ๋’ค ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ, ์ฐฝ๊ณ  ๊ตฌ์„, ์ง€ํ•˜์ฒ  ํ„ฐ๋„๋กœ ๊ฑธ์–ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ์•ฑ์€ ๊ณ„์† ์ž‘๋™ํ•˜๋‹ˆ ์ž‘์—…์„ ์ด์–ด๊ฐ‘๋‹ˆ๋‹ค. ์ €์žฅ์„ ํƒญํ•˜๊ณ , ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์ƒˆ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์€ ์ฆ‰์‹œ ์—…๋ฐ์ดํŠธ๋˜๋‹ˆ ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค.

๋‚˜์ค‘์— ์—ฐ๊ฒฐ์ด ๋ณต๊ตฌ๋˜๋ฉด ์•ฑ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋”ฐ๋ผ์žก์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ด ์ˆœ๊ฐ„์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™๊ธฐํ™”๊ฐ€ ์‚ฌ๋žŒ๋“ค์„ ๋†€๋ผ๊ฒŒ ํ•˜๋Š” ์ง€์ ์ž…๋‹ˆ๋‹ค.

์•ฑ์ด ์ฃผ์˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ™์€ ๋™์ž‘์ด ๋‘ ๋ฒˆ ์ „์†ก๋˜์–ด(์ค‘๋ณต)๋ฒ„๋ฆฌ๊ฑฐ๋‚˜, ์„œ๋ฒ„์˜ ์ตœ์‹  ๋ณ€๊ฒฝ์ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ง‰ ํ•œ ์ž‘์—…์„ ๋ฎ์–ด์จ์„œ(ํŽธ์ง‘ ๋ถ„์‹ค) ์ผ์ด ์ƒ๊น๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์•ฑ์ด "์ €์žฅ๋จ"๊ณผ "์ €์žฅ๋˜์ง€ ์•Š์Œ" ๊ฐ™์€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์ƒํƒœ๋ฅผ ๋™์‹œ์— ๋ณด์ด๊ฑฐ๋‚˜, ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋™๊ธฐํ™” ๊ณผ์ •์—์„œ ๋‚˜ํƒ€๋‚ฌ๋‹ค ์‚ฌ๋ผ์กŒ๋‹ค ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์ถฉ๋Œ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค: ์•ฑ์ด ์กฐ์ •ํ•  ๊ธฐํšŒ๋ฅผ ์–ป๊ธฐ ์ „์— ๋™์ผํ•œ ํ•ญ๋ชฉ์— ์„œ๋กœ ๋‹ค๋ฅธ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ์ง€์› ๋‹ด๋‹น์ž๊ฐ€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ ํ‹ฐ์ผ“ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์Œ์œผ๋กœ ๋ฐ”๊ฟจ๋Š”๋ฐ, ํŒ€์›์ด ์˜จ๋ผ์ธ์œผ๋กœ ํ‹ฐ์ผ“์„ ๋‹ซ์•˜๋‹ค๋ฉด ์˜คํ”„๋ผ์ธ ํฐ์ด ๋‹ค์‹œ ์—ฐ๊ฒฐ๋  ๋•Œ ๋‘ ๋ณ€๊ฒฝ์„ ์•„๋ฌด ๊ทœ์น™ ์—†์ด ๋ชจ๋‘ ์ ์šฉํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋ชฉํ‘œ๋Š” ์˜คํ”„๋ผ์ธ์ด ์™„๋ฒฝํ•˜๊ฒŒ ๋А๊ปด์ง€๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž๋Š” ์ž‘์—…์„ ์žƒ์„ ๊ฑฑ์ • ์—†์ด ๊ณ„์† ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋™๊ธฐํ™”๋Š” ๋‚˜์ค‘์— ์ด๋ค„์ง€๋˜ ์›์น˜ ์•Š๋Š” ์ค‘๋ณต ์—†์ด ์ด๋ค„์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์•ฑ์ด ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๊ณ  ๋‹ค์Œ์— ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ์•Œ๋ ค์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” Kotlin/SwiftUI๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋“  AppMaster ๊ฐ™์€ ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ์œผ๋กœ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๋งŒ๋“ค๋“  ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์–ด๋ ค์šด ๋ถ€๋ถ„์€ UI ์œ„์ ฏ์ด ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ์˜คํ”„๋ผ์ธ์ธ ๋™์•ˆ ์„ธ์ƒ์ด ๋ฐ”๋€” ๋•Œ ์•ฑ์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜คํ”„๋ผ์ธ ์šฐ์„  ๋ชจ๋ธ(์ „๋ฌธ ์šฉ์–ด ์—†์ด)

์˜คํ”„๋ผ์ธ ์šฐ์„  ์•ฑ์€ ๊ธฐ๊ธฐ๊ฐ€ ๋„คํŠธ์›Œํฌ๋ฅผ ์žƒ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์ „์ œ๋กœ ํ•˜๋˜, ์•ฑ์ด ๊ทธ๋ž˜๋„ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ™”๋ฉด์€ ๋กœ๋“œ๋˜์–ด์•ผ ํ•˜๊ณ , ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์•„๋„ ๋ฒ„ํŠผ์€ ๋™์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์„ ํฌ๊ด„ํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ์šฉ์–ด:

  • ๋กœ์ปฌ ์บ์‹œ: ์•ฑ์ด ์ฆ‰์‹œ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ๊ธฐ๊ธฐ์— ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ.
  • ๋™๊ธฐํ™” ํ: ์‚ฌ์šฉ์ž๊ฐ€ ์˜คํ”„๋ผ์ธ(๋˜๋Š” ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ถˆ์•ˆ์ •)์ผ ๋•Œ ์ˆ˜ํ–‰ํ•œ ์ž‘์—… ๋ชฉ๋ก.
  • ์„œ๋ฒ„ ์ง„์‹ค(์„œ๋ฒ„ ๋ฒ„์ „): ๊ฒฐ๊ตญ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ณต์œ ํ•˜๊ฒŒ ๋˜๋Š” ๋ฐฑ์—”๋“œ์— ์ €์žฅ๋œ ๋ฒ„์ „.
  • ์ถฉ๋Œ: ์‚ฌ์šฉ์ž์˜ ํ์— ์žˆ๋Š” ๋ณ€๊ฒฝ์ด ๋” ์ด์ƒ ๊น”๋”ํ•˜๊ฒŒ ์ ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ.

์ฝ๊ธฐ(read)์™€ ์“ฐ๊ธฐ(write)๋ฅผ ๋ถ„๋ฆฌํ•ด ์ƒ๊ฐํ•˜๋ฉด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฝ๊ธฐ๋Š” ๋ณดํ†ต ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค: ๊ฐ€๋Šฅํ•œ ์ตœ์„ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ(๋Œ€๊ฐœ ๋กœ์ปฌ ์บ์‹œ์—์„œ) ๋ณด์—ฌ์ฃผ๊ณ  ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ณต๊ตฌ๋˜๋ฉด ์กฐ์šฉํžˆ ์ƒˆ๋กœ ๊ณ ์นฉ๋‹ˆ๋‹ค.

์“ฐ๊ธฐ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. "๋ ˆ์ฝ”๋“œ ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ์— ์ €์žฅ"์— ์˜์กดํ•˜์ง€ ๋งˆ์„ธ์š”. ์˜คํ”„๋ผ์ธ์ด๋ฉด ๊ทธ ๋ฐฉ์‹์€ ๊นจ์ง‘๋‹ˆ๋‹ค.

๋Œ€์‹  ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ์ž‘์—…์„ ์ž‘์€ ํ•ญ๋ชฉ๋“ค๋กœ ๋ณ€๊ฒฝ ๋กœ๊ทธ์— ๊ธฐ๋กํ•˜์„ธ์š”. ์˜ˆ: "์ƒํƒœ๋ฅผ ์Šน์ธ์œผ๋กœ ์„ค์ •", "๋Œ“๊ธ€ X ์ถ”๊ฐ€", "์ˆ˜๋Ÿ‰ 2 โ†’ 3์œผ๋กœ ๋ณ€๊ฒฝ". ๊ฐ ํ•ญ๋ชฉ์€ ํƒ€์ž„์Šคํƒฌํ”„์™€ ID์™€ ํ•จ๊ป˜ ๋™๊ธฐํ™” ํ์— ๋“ค์–ด๊ฐ€๊ณ , ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™๊ธฐํ™”๊ฐ€ ์ด๋ฅผ ์ „๋‹ฌํ•˜๋ ค ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” ๋ณ€๊ฒฝ์ด ๋ณด๋ฅ˜(pending)์—์„œ ๋™๊ธฐํ™”(synced)๋กœ ์ด๋™ํ•˜๋Š” ๋™์•ˆ ๊ณ„์† ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AppMaster ๊ฐ™์€ ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๋™์ผํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค: ๋น ๋ฅธ ํ™”๋ฉด์šฉ ์บ์‹œ๋œ ์ฝ๊ธฐ, ์žฌ์‹œ๋„ยท๋ณ‘ํ•ฉยท์ถฉ๋Œ ๋ฐœ์ƒ ์‹œ ํ”Œ๋ž˜๊ทธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‚ฌ์šฉ์ž ์ž‘์—…์˜ ๋ช…ํ™•ํ•œ ํ.

์ง„์งœ๋กœ ์˜คํ”„๋ผ์ธ ์ง€์›์ด ํ•„์š”ํ•œ ๊ฒƒ์„ ๊ฒฐ์ •ํ•˜์„ธ์š”

์˜คํ”„๋ผ์ธ ์šฐ์„ ์€ "๋ชจ๋“  ๊ฒƒ์ด ์—ฐ๊ฒฐ ์—†์ด ์ž‘๋™"์ฒ˜๋Ÿผ ๋“ค๋ฆฌ์ง€๋งŒ, ๊ทธ ์•ฝ์† ๋•Œ๋ฌธ์— ๋งŽ์€ ์•ฑ์ด ๋ฌธ์ œ์— ๋น ์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์˜คํ”„๋ผ์ธ ์ง€์›์ด ์œ ์šฉํ•œ ๋ถ€๋ถ„๋งŒ ์„ ํƒํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ช…ํ™•ํžˆ ์˜จ๋ผ์ธ ์ „์šฉ์œผ๋กœ ๋‘์„ธ์š”.

์‚ฌ์šฉ์ž ์˜๋„ ๊ด€์ ์—์„œ ์ƒ๊ฐํ•˜์„ธ์š”: ์‚ฌ๋žŒ๋“ค์ด ์ง€ํ•˜, ๋น„ํ–‰๊ธฐ, ํ˜น์€ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•œ ์ฐฝ๊ณ ์—์„œ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ผ์ƒ ์ž‘์—…์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์•ก์…˜์„ ์ง€์›ํ•˜๊ณ , "์ตœ์‹  ์ง„์‹ค"์ด ์ค‘์š”ํ•œ ์ž‘์—…์€ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์˜คํ”„๋ผ์ธ ์นœํ™”์  ์•ก์…˜์˜ ์‹ค์šฉ์ ์ธ ๋ชฉ๋ก์€ ๋ณดํ†ต ํ•ต์‹ฌ ๋ ˆ์ฝ”๋“œ(๋ฉ”๋ชจ, ์ž‘์—…, ์ ๊ฒ€, ํ‹ฐ์ผ“) ์ƒ์„ฑยทํŽธ์ง‘, ๋Œ“๊ธ€ ์ž‘์„ฑ ์ดˆ์•ˆ, ์‚ฌ์ง„ ์ฒจ๋ถ€(๋กœ์ปฌ์— ์ €์žฅ ํ›„ ๋‚˜์ค‘ ์—…๋กœ๋“œ) ๋“ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์„œ๋ฒ„ ํ™•์ธ ์ „์—๋Š” ์‹คํ–‰ ์ทจ์†Œ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ ๋”œ๋ฆฌํŠธ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํŽธ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด ์‹ค์‹œ๊ฐ„์ด์–ด์•ผ ํ•˜๋Š” ์ž‘์—…์„ ๊ฒฐ์ •ํ•˜์„ธ์š”. ๊ฒฐ์ œ, ๊ถŒํ•œ ๋ณ€๊ฒฝ, ์Šน์ธ, ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์ž‘์—…์€ ๋ณดํ†ต ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ํ™•์ธ ์—†์ด๋Š” ์ž‘์—…์˜ ์œ ํšจ์„ฑ์„ ํ™•์‹ ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์˜คํ”„๋ผ์ธ์œผ๋กœ ํ—ˆ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ชจํ˜ธํ•œ ์˜ค๋ฅ˜ ๋Œ€์‹  "์—ฐ๊ฒฐ ํ•„์š”"์™€ ๊ฐ™์€ ๋ช…ํ™•ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ์‹ญ์‹œ์˜ค.

์‹ ์„ ๋„(freshness)์— ๋Œ€ํ•œ ๊ธฐ๋Œ€๋ฅผ ์„ค์ •ํ•˜์„ธ์š”. "์˜คํ”„๋ผ์ธ"์€ ์ด์ง„๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ํ—ˆ์šฉํ• ์ง€โ€”๋ถ„ ๋‹จ์œ„, ์‹œ๊ฐ„ ๋‹จ์œ„, ํ˜น์€ "๋‹ค์Œ ์•ฑ ์‹คํ–‰ ์‹œ" ๊ฐ™์€ ๊ทœ์น™์„ ์ •์˜ํ•˜๊ณ  UI์— ๊ฐ„๋‹จํ•œ ๋ฌธ๊ตฌ๋กœ ํ‘œ์‹œํ•˜์„ธ์š”(์˜ˆ: "๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ 2์‹œ๊ฐ„ ์ „", "์˜จ๋ผ์ธ์ผ ๋•Œ ๋™๊ธฐํ™” ์ค‘").

์ถฉ๋Œ์ด ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ(์žฌ๊ณ  ์ˆ˜๋Ÿ‰, ๊ณต์œ  ์ž‘์—…, ํŒ€ ๋ฉ”์‹œ์ง€)๋Š” ์ดˆ๊ธฐ์— ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‹ฌ์•„๋‘์„ธ์š”. ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๋Š” ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋น ๋ฅด๊ฒŒ ํŽธ์ง‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๋Œ์ด ์žฆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ•ญ๋ชฉ์€ ์˜คํ”„๋ผ์ธ์—์„œ ์ดˆ์•ˆ๋งŒ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ์„ ํ•˜๋‚˜์˜ ๊ฐ’์— ๋ฎ์–ด์“ฐ๋Š” ๋Œ€์‹  ๋ณ„๋„์˜ ์ด๋ฒคํŠธ๋กœ ์บก์ฒ˜ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

AppMaster๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ, ์ด ๊ฒฐ์ • ๋‹จ๊ณ„๋Š” ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ๋ชจ๋ธ๋งํ•ด ์•ฑ์ด ์•ˆ์ „ํ•œ ์ดˆ์•ˆ์„ ์˜คํ”„๋ผ์ธ์— ์ €์žฅํ•˜๊ณ  ์œ„ํ—˜ํ•œ ๋™์ž‘์€ ์˜จ๋ผ์ธ ์ „์šฉ์œผ๋กœ ์œ ์ง€ํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

๋™๊ธฐํ™” ํ ์„ค๊ณ„: ๊ฐ ๋ณ€๊ฒฝ๋งˆ๋‹ค ๋ฌด์—‡์„ ์ €์žฅํ• ์ง€

์‚ฌ์šฉ์ž๊ฐ€ ์˜คํ”„๋ผ์ธ์—์„œ ์ž‘์—…ํ•  ๋•Œ "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ๋™๊ธฐํ™”"ํ•˜๋ ค๊ณ  ํ•˜์ง€ ๋งˆ์„ธ์š”. ์‚ฌ์šฉ์ž์˜ ํ–‰๋™์„ ๋™๊ธฐํ™”ํ•˜์„ธ์š”. ๋ช…ํ™•ํ•œ ์ž‘์—… ํ๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™๊ธฐํ™”์˜ ์ค‘์‹ฌ์ด๋ฉฐ, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ๋กœ ํ•œ ํ–‰๋™๊ณผ ์ผ์น˜ํ•˜๋Š” ์ž‘๊ณ  ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ํ•ญ๋ชฉ์œผ๋กœ ์œ ์ง€ํ•˜์„ธ์š”:

  • ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ
  • ํŠน์ • ํ•„๋“œ ์—…๋ฐ์ดํŠธ
  • ์ƒํƒœ ๋ณ€๊ฒฝ(์ œ์ถœ, ์Šน์ธ, ๋ณด๊ด€)
  • ์‚ญ์ œ(๊ฐ€๋Šฅํ•˜๋ฉด ์„œ๋ฒ„ ํ™•์ธ ์ „์—๋Š” ์†Œํ”„ํŠธ ๋”œ๋ฆฌํŠธ)

์ž‘์€ ์ž‘์—…์ผ์ˆ˜๋ก ๋””๋ฒ„๊ทธํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ง€์›ํŒ€์ด ๋„์™€์ค˜์•ผ ํ•  ๊ฒฝ์šฐ "์ƒํƒœ Draft โ†’ Submitted๋กœ ๋ณ€๊ฒฝ" ๊ฐ™์€ ๋ฌธ๊ตฌ๋Š” ํฐ JSON ๋ฉ์–ด๋ฆฌ๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

ํ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ ์ž‘์—…์—๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ์žฌ์ƒํ•˜๊ณ  ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถฉ๋ถ„ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์„ธ์š”:

  • ๋ ˆ์ฝ”๋“œ ์‹๋ณ„์ž(์ƒˆ ๋ ˆ์ฝ”๋“œ์ธ ๊ฒฝ์šฐ ์ž„์‹œ ๋กœ์ปฌ ID)
  • ์ž‘์—… ํƒ€์ž„์Šคํƒฌํ”„์™€ ๊ธฐ๊ธฐ ์‹๋ณ„์ž
  • ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•œ ์˜ˆ์ƒ ๋ฒ„์ „(๋˜๋Š” ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ์•˜๋˜ ์—…๋ฐ์ดํŠธ ์‹œ๊ฐ„)
  • ํŽ˜์ด๋กœ๋“œ(๋ณ€๊ฒฝ๋œ ํŠน์ • ํ•„๋“œ์™€ ๊ฐ€๋Šฅํ•˜๋ฉด ์ด์ „ ๊ฐ’)
  • ๋ฉฑ๋“ฑ์„ฑ ํ‚ค(์žฌ์‹œ๋„๊ฐ€ ์ค‘๋ณต์„ ๋งŒ๋“ค์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ณ ์œ  ์ž‘์—… ID)

์ด ์˜ˆ์ƒ ๋ฒ„์ „(expected version)์ด ์ •์งํ•œ ์ถฉ๋Œ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋ฒ„์ „์ด ์ด๋ฏธ ๋ฐ”๋€Œ์—ˆ๋‹ค๋ฉด ์กฐ์šฉํžˆ ๋ฎ์–ด์“ฐ๊ธฐ๋ณด๋‹ค๋Š” ์ผ์‹œ ์ค‘์ง€ํ•˜๊ณ  ๊ฒฐ์ •์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ž‘์—…๋“ค์€ ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ๋‹จ๊ณ„๋กœ ์ธ์‹ํ•˜๋ฏ€๋กœ ํ•จ๊ป˜ ์ ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ฃผ๋ฌธ ์ƒ์„ฑ"๊ณผ "์„ธ ๊ฐœ์˜ ํ’ˆ๋ชฉ ์ถ”๊ฐ€"๋Š” ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ๋ณด๋ฅ˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์„ ๊ทธ๋ฃน ID(๋˜๋Š” ํŠธ๋žœ์žญ์…˜ ID)๋กœ ๋ฌถ์–ด ๋™๊ธฐํ™” ์—”์ง„์ด ํ•จ๊ป˜ ์ „์†กํ•˜๊ณ  ๋ชจ๋‘ ์ปค๋ฐ‹ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ๋ณด๋ฅ˜ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋„๋ก ํ•˜์„ธ์š”.

์ง์ ‘ ๊ตฌํ˜„ํ•˜๋“  AppMaster์—์„œ ๊ตฌ์„ฑํ•˜๋“  ๋ชฉํ‘œ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค: ๊ฐ ๋ณ€๊ฒฝ์€ ํ•œ ๋ฒˆ ๊ธฐ๋ก๋˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์žฌ์ƒ๋˜๋ฉฐ, ๋ฌด์–ธ๊ฐ€ ๋งž์ง€ ์•Š์„ ๋•Œ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋Œ ํ•ด๊ฒฐ ๊ทœ์น™

๋‹ค์‹œ ์ž‘์„ฑ ์—†์ด ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋ฐฐํฌ
ํ•˜๋‚˜์˜ ์†Œ์Šค์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ Kotlin ๋ฐ SwiftUI ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•ด ๋‹ค์‹œ ์ž‘์„ฑํ•  ํ•„์š” ์—†์ด ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋ฐฐํฌํ•˜์„ธ์š”.
์‹œ์ž‘ํ•˜๊ธฐ

์ถฉ๋Œ์€ ์ •์ƒ์ž…๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋“œ๋ฌผ๊ณ  ์•ˆ์ „ํ•˜๋ฉฐ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์„ค๋ช…ํ•˜๊ธฐ ์‰ฌ์šด ์ƒํƒœ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ์ˆœ๊ฐ„์„ ๋ช…๋ช…ํ•˜์„ธ์š”: ์•ฑ์ด ๋ณ€๊ฒฝ์„ ๋ณด๋ƒˆ๊ณ  ์„œ๋ฒ„๊ฐ€ "๋‹น์‹ ์ด ํŽธ์ง‘์„ ์‹œ์ž‘ํ•  ๋•Œ์˜ ๋ฒ„์ „์ด ์•„๋‹™๋‹ˆ๋‹ค"๋ผ๊ณ  ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋Š” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๋ ˆ์ฝ”๋“œ์— ๋‘ ๊ฐ€์ง€ ๊ฐ’์„ ์œ ์ง€ํ•˜์„ธ์š”:

  • ์„œ๋ฒ„ ๋ฒ„์ „(์„œ๋ฒ„์˜ ํ˜„์žฌ ๋ฒ„์ „)
  • ์˜ˆ์ƒ ๋ฒ„์ „(ํฐ์ด ํŽธ์ง‘์„ ์‹œ์ž‘ํ•  ๋•Œ ์•Œ๊ณ  ์žˆ๋˜ ๋ฒ„์ „)

์˜ˆ์ƒ ๋ฒ„์ „์ด ์ผ์น˜ํ•˜๋ฉด ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์•„๋“ค์ด๊ณ  ์„œ๋ฒ„ ๋ฒ„์ „์„ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์ถฉ๋Œ ๊ทœ์น™์„ ์ ์šฉํ•˜์„ธ์š”.

๋ฐ์ดํ„ฐ ์œ ํ˜•๋ณ„๋กœ ๊ทœ์น™์„ ์„ ํƒํ•˜์„ธ์š”(๋ชจ๋“  ๊ฒƒ์— ํ•œ ๊ทœ์น™์„ ์ ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”)

๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค๋ฅธ ๊ทœ์น™์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ํ•„๋“œ๋Š” ๊ธด ๋ฉ”๋ชจ์™€ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๊ทœ์น™:

  • ๋งˆ์ง€๋ง‰ ์“ฐ๊ธฐ ์Šน๋ฆฌ(Last write wins): ๋ณด๊ธฐ ์„ค์ • ๊ฐ™์€ ์œ„ํ—˜์ด ๋‚ฎ์€ ํ•„๋“œ์— ์ ํ•ฉ.
  • ํ•„๋“œ ๋ณ‘ํ•ฉ(Merge fields): ํ•„๋“œ๊ฐ€ ๋…๋ฆฝ์ ์ผ ๋•Œ(์ƒํƒœ vs ๋ฉ”๋ชจ) ์œ ๋ฆฌ.
  • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌป๊ธฐ: ๊ฐ€๊ฒฉ, ๊ถŒํ•œ, ํ•ฉ๊ณ„ ๊ฐ™์€ ์œ„ํ—˜์ด ํฐ ํŽธ์ง‘์— ์ ํ•ฉ.
  • ์„œ๋ฒ„ ์šฐ์„  + ์‚ฌ๋ณธ ๋ณด๊ด€: ์„œ๋ฒ„ ๊ฐ’์„ ์œ ์ง€ํ•˜๋˜ ์‚ฌ์šฉ์ž์˜ ํŽธ์ง‘์„ ์ดˆ์•ˆ์œผ๋กœ ์ €์žฅํ•ด ์žฌ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.

AppMaster์—์„œ๋Š” ์ด ๊ทœ์น™๋“ค์ด ์‹œ๊ฐ์  ๋กœ์ง์œผ๋กœ ์ž˜ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค: ๋ฒ„์ „์„ ๊ฒ€์‚ฌํ•˜๊ณ  ํ•„๋“œ๋ฅผ ๋น„๊ตํ•œ ๋’ค ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜์„ธ์š”.

์‚ญ์ œ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ์ง€ ๊ฒฐ์ •ํ•˜์„ธ์š”(์•„๋‹ˆ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ์Šต๋‹ˆ๋‹ค)

์‚ญ์ œ๋Š” ๊นŒ๋‹ค๋กœ์šด ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ์ œ๊ฑฐํ•˜์ง€ ๋ง๊ณ  ํ† ์Œ์Šคํ†ค(tombstone, "์‚ญ์ œ๋จ" ํ‘œ์‹œ)์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์‚ญ์ œ๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ˆ„๊ตฐ๊ฐ€ ํŽธ์ง‘ํ–ˆ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๊ฒฐ์ •ํ•˜์„ธ์š”.

๋ช…ํ™•ํ•œ ๊ทœ์น™์˜ ์˜ˆ: "์‚ญ์ œ๊ฐ€ ์šฐ์„ ์ด์ง€๋งŒ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋‹ค." ์˜ˆ: ์˜์—… ๋‹ด๋‹น์ž๊ฐ€ ์˜คํ”„๋ผ์ธ์—์„œ ๊ณ ๊ฐ ๋ฉ”๋ชจ๋ฅผ ํŽธ์ง‘ํ–ˆ๋Š”๋ฐ ๊ด€๋ฆฌ์ž์—๊ฒŒ์„œ ๊ณ ๊ฐ์ด ์‚ญ์ œ๋๋‹ค๋ฉด ๋™๊ธฐํ™” ์‹œ ์•ฑ์€ "๊ณ ๊ฐ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณต์›ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฅผ ์ ์šฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?"๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฌด์–ธ์˜ ์†์‹ค์„ ํ”ผํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์–ด๊ถŒ์„ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์žฌ์‹œ๋„์™€ ์‹คํŒจ ์ƒํƒœ: ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”

๋™๊ธฐํ™”๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋Š” ์ด์œ ์— ๊ด€์‹ฌ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ž์‹ ์˜ ์ž‘์—…์ด ์•ˆ์ „ํ•œ์ง€, ๋‹ค์Œ์— ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ ์ง€ ์•Œ๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ƒํƒœ ๋ชจ๋ธ์€ ๊ณตํ™ฉ๊ณผ ์ง€์› ์š”์ฒญ์„ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.

์ž‘๊ณ  ๋ˆˆ์— ๋„๋Š” ์ƒํƒœ ๋ชจ๋ธ๋กœ ์‹œ์ž‘ํ•ด ํ™”๋ฉด ์ „๋ฐ˜์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”:

  • ๋Œ€๊ธฐ(Queued): ๊ธฐ๊ธฐ์— ์ €์žฅ๋˜์–ด ๋„คํŠธ์›Œํฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
  • ๋™๊ธฐํ™” ์ค‘(Syncing): ์ง€๊ธˆ ์ „์†ก ์ค‘
  • ์ „์†ก๋จ(Sent): ์„œ๋ฒ„๊ฐ€ ํ™•์ธํ•จ
  • ์‹คํŒจ(Failed): ์ „์†กํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์žฌ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•จ
  • ๊ฒ€ํ†  ํ•„์š”(Needs review): ์ „์†ก๋˜์—ˆ์œผ๋‚˜ ์„œ๋ฒ„๊ฐ€ ๊ฑฐ๋ถ€ํ•˜๊ฑฐ๋‚˜ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‹ฌ์•˜์Œ

์žฌ์‹œ๋„๋Š” ๋ฐฐํ„ฐ๋ฆฌ์™€ ๋ฐ์ดํ„ฐ์— ์นœ์ ˆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๋ฐ˜์—๋Š” ๋น ๋ฅด๊ฒŒ ์žฌ์‹œ๋„ํ•˜๋‹ค๊ฐ€(์งง์€ ์‹ ํ˜ธ ๋Š๊น€ ์ฒ˜๋ฆฌ), ์‹คํŒจ๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด ์ ์ฐจ ๋А๋ ค์ง€๋Š” ๋ฐฉ์‹์ด ์ข‹์Šต๋‹ˆ๋‹ค. 1๋ถ„, 5๋ถ„, 15๋ถ„, ๊ทธ๋‹ค์Œ ์‹œ๊ฐ„ ๋‹จ์œ„(backoff) ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๊ทœ์น™์€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฌด์ž‘์ • ์žฌ์‹œ๋„ํ•˜์ง€ ๋งˆ์„ธ์š”(์œ ํšจํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์€ ์žฌ์‹œ๋„๊ฐ€ ๋ถˆํ•„์š”ํ•ฉ๋‹ˆ๋‹ค).

์˜ค๋ฅ˜๋Š” ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜์„ธ์š”. ๋‹ค์Œ ํ–‰๋™์ด ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค:

  • ์˜คํ”„๋ผ์ธ/๋„คํŠธ์›Œํฌ ์—†์Œ: ํ์— ๋‚จ๊ฒจ๋‘๊ณ  ์˜จ๋ผ์ธ ์‹œ ์žฌ์‹œ๋„
  • ํƒ€์ž„์•„์›ƒ/์„œ๋ฒ„ ์‚ฌ์šฉ ๋ถˆ๊ฐ€: ์‹คํŒจ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๋ฐฑ์˜คํ”„๋กœ ์ž๋™ ์žฌ์‹œ๋„
  • ์ธ์ฆ ๋งŒ๋ฃŒ: ๋™๊ธฐํ™”๋ฅผ ์ผ์‹œ์ค‘์ง€ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์žฌ๋กœ๊ทธ์ธ์„ ์š”๊ตฌ
  • ๊ฒ€์ฆ ์‹คํŒจ(์ž˜๋ชป๋œ ์ž…๋ ฅ): ๊ฒ€ํ†  ํ•„์š”๋กœ ํ‘œ์‹œํ•˜๊ณ  ์ˆ˜์ •ํ•  ํ•ญ๋ชฉ์„ ๋ณด์—ฌ์คŒ
  • ์ถฉ๋Œ(๋ ˆ์ฝ”๋“œ ๋ณ€๊ฒฝ๋จ): ๊ฒ€ํ†  ํ•„์š”๋กœ ํ‘œ์‹œํ•˜๊ณ  ์ถฉ๋Œ ๊ทœ์น™์œผ๋กœ ๋ผ์šฐํŒ…

๋ฉฑ๋“ฑ์„ฑ(idempotency)์€ ์žฌ์‹œ๋„๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ณ€๊ฒฝ์—๋Š” ๊ณ ์œ  ์ž‘์—… ID(๋Œ€๊ฐœ UUID)๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์ด ๋™์ผํ•œ ๋ณ€๊ฒฝ์„ ๋‹ค์‹œ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ๊ทธ ID๋ฅผ ์ธ์‹ํ•ด ์ค‘๋ณต ์ƒ์„ฑ ๋Œ€์‹  ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ: ๊ธฐ์ˆ ์ž๊ฐ€ ์˜คํ”„๋ผ์ธ์—์„œ ์™„๋ฃŒ๋œ ์ž‘์—…์„ ์ €์žฅํ•œ ๋’ค ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ์— ๋“ค์–ด๊ฐ€์„œ ์—ฐ๊ฒฐ์ด ๋Š๊น๋‹ˆ๋‹ค. ์•ฑ์ด ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด๋‚ด๊ณ  ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•œ ๋’ค ๋‚˜์ค‘์— ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—… ID๊ฐ€ ์žˆ์œผ๋ฉด ๋‘ ๋ฒˆ์งธ ์ „์†ก์€ ํ•ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์—†์œผ๋ฉด ์™„๋ฃŒ ์ด๋ฒคํŠธ๊ฐ€ ์ค‘๋ณต ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AppMaster์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ƒํƒœ์™€ ๊ทœ์น™์„ ๋™๊ธฐํ™” ํ”„๋กœ์„ธ์Šค์˜ 1๊ธ‰ ํ•„๋“œ์™€ ๋กœ์ง์œผ๋กœ ์ทจ๊ธ‰ํ•ด Kotlin๊ณผ SwiftUI ์•ฑ ๋ชจ๋‘์—์„œ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ฒŒ ํ•˜์„ธ์š”.

๋Œ€๊ธฐ ์ค‘ ๋ณ€๊ฒฝ์‚ฌํ•ญ UX: ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ๊ฒƒ๊ณผ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

๋ณด์•ˆ๊ณผ ํ•จ๊ป˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ ๊ตฌ์„ฑํ•˜๊ธฐ
์ธ์ฆ ๋งŒ๋ฃŒ์™€ ๊ถŒํ•œ ๋ณ€๊ฒฝ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•œ ๋’ค ํ์— ์žˆ๋Š” ์ž‘์—…์„ ์ „์†กํ•˜์„ธ์š”.
๋กœ์ง ๊ตฌ์„ฑ

์‚ฌ๋žŒ๋“ค์€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ๋„ ์•ฑ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋А๊ปด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ "๋Œ€๊ธฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ" UX๋Š” ์ฐจ๋ถ„ํ•˜๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค: ์ž‘์—…์ด ๊ธฐ๊ธฐ์— ์ €์žฅ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ํ•ฉ๋‹ˆ๋‹ค.

๊ต‰์žฅํžˆ ๋ˆˆ์— ๋„๋Š” ๋ฐฐ๋„ˆ๋ณด๋‹ค ๋ฏธ๋ฌ˜ํ•œ ํ‘œ์‹œ๊ฐ€ ๋” ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ: ํ—ค๋”์— ์ž‘์€ "๋™๊ธฐํ™” ์ค‘" ์•„์ด์ฝ˜์„ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜, ํŽธ์ง‘์ด ๋ฐœ์ƒํ•œ ํ™”๋ฉด์— ์กฐ์šฉํ•œ "3๊ฐœ ๋Œ€๊ธฐ ์ค‘" ๋ ˆ์ด๋ธ”์„ ๋‘ก๋‹ˆ๋‹ค. ์ง„์งœ ์œ„ํ—˜(์˜ˆ: "๋กœ๊ทธ์ธ ํ•„์š”๋กœ ์—…๋กœ๋“œ ๋ถˆ๊ฐ€")์—๋Š” ๊ฐ•ํ•œ ์ƒ‰์„ ์“ฐ์„ธ์š”.

์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ™ฉ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ณณ์„ ์ œ๊ณตํ•˜์„ธ์š”. ๊ฐ„๋‹จํ•œ ๋ฐœ์‹ ํ•จ(Outbox)์ด๋‚˜ ๋Œ€๊ธฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™”๋ฉด์ด ํ•ญ๋ชฉ์„ "ํ‹ฐ์ผ“ 104์— ๋Œ“๊ธ€ ์ถ”๊ฐ€" ๋˜๋Š” "ํ”„๋กœํ•„ ์‚ฌ์ง„ ์—…๋ฐ์ดํŠธ" ๊ฐ™์€ ํ‰์ดํ•œ ๋ฌธ๊ตฌ๋กœ ๋‚˜์—ดํ•˜๋ฉด ํˆฌ๋ช…์„ฑ์ด ๋†’์•„์ง€๊ณ  ์ง€์› ์š”์ฒญ์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋Š” ๋ช‡ ๊ฐ€์ง€ ํ–‰๋™๋งŒ ํ•„์š”ํ•˜๋ฉฐ ์•ฑ ์ „๋ฐ˜์— ์ผ๊ด€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • ์ง€๊ธˆ ์žฌ์‹œ๋„(Retry now)
  • ๋‹ค์‹œ ํŽธ์ง‘(Edit again, ์ƒˆ ๋ณ€๊ฒฝ ์ƒ์„ฑ)
  • ๋กœ์ปฌ ๋ณ€๊ฒฝ ์‚ญ์ œ(Discard local change)
  • ์„ธ๋ถ€์‚ฌํ•ญ ๋ณต์‚ฌ(Copy details, ์ด์Šˆ ๋ณด๊ณ  ์‹œ ์œ ์šฉ)

์ƒํƒœ ๋ ˆ์ด๋ธ”์€ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”: Pending(๋Œ€๊ธฐ), Syncing(๋™๊ธฐํ™” ์ค‘), Failed(์‹คํŒจ). ์‹คํŒจ ์‹œ์—๋Š” ์‚ฌ๋žŒ ๋งํˆฌ๋กœ ์„ค๋ช…ํ•˜์„ธ์š”: "์—…๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท ์—†์Œ." ๋˜๋Š” "๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ๋งˆ์„ธ์š”.

์•ฑ ์ „์ฒด๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ๋งˆ์„ธ์š”

์‹ค์ œ๋กœ ์˜จ๋ผ์ธ์ด์–ด์•ผ๋งŒ ๊ฐ€๋Šฅํ•œ ์ž‘์—…(์˜ˆ: Stripe ๊ฒฐ์ œ, ์ƒˆ ์‚ฌ์šฉ์ž ์ดˆ๋Œ€)์€ ์ฐจ๋‹จํ•˜์„ธ์š”. ๊ทธ ์™ธ๋Š” ๋ชจ๋‘ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ ๋ฐ์ดํ„ฐ ๋ณด๊ธฐ์™€ ์ƒˆ ์ดˆ์•ˆ ์ž‘์„ฑ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํ˜„์‹ค์ ์ธ ํ๋ฆ„ ์˜ˆ: ํ˜„์žฅ ๊ธฐ์ˆ ์ž๊ฐ€ ์ง€ํ•˜์—์„œ ์ž‘์—… ๋ณด๊ณ ์„œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์€ "1๊ฐœ ๋Œ€๊ธฐ ์ค‘"์„ ํ‘œ์‹œํ•˜๊ณ  ์ž‘์—…์„ ๊ณ„์†ํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— "๋™๊ธฐํ™” ์ค‘"์œผ๋กœ ๋ฐ”๋€Œ๊ณ  ์ž๋™์œผ๋กœ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์‹คํŒจํ•˜๋ฉด ์ž‘์—… ๋ณด๊ณ ์„œ๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฉฐ "์‹คํŒจ"๋กœ ํ‘œ์‹œ๋˜๊ณ  ๋‹จ์ผ "์ง€๊ธˆ ์žฌ์‹œ๋„" ๋ฒ„ํŠผ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

AppMaster์—์„œ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ ๋ ˆ์ฝ”๋“œ์˜ ์ผ๋ถ€๋กœ ์ด๋Ÿฌํ•œ ์ƒํƒœ(๋Œ€๊ธฐ, ์‹คํŒจ, ๋™๊ธฐํ™”๋จ)๋ฅผ ๋ชจ๋ธ๋งํ•ด UI๊ฐ€ ํŠน์ˆ˜ ํ™”๋ฉด ์—†์ด๋„ ๋ชจ๋“  ๊ณณ์—์„œ ์ด๋ฅผ ๋ฐ˜์˜ํ•˜๊ฒŒ ํ•˜์„ธ์š”.

์ธ์ฆ, ๊ถŒํ•œ, ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ์˜ ์•ˆ์ „์„ฑ

์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐฑ์—”๋“œ ๋ฐฐํฌํ•˜๊ธฐ
๊ด€๋ฆฌํ˜• ํด๋ผ์šฐ๋“œ๋ถ€ํ„ฐ ์ž์ฒด ์ธํ”„๋ผ๊นŒ์ง€ ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐฑ์—”๋“œ๋ฅผ ๋ฐฐํฌํ•˜์„ธ์š”.
ํด๋ผ์šฐ๋“œ์— ๋ฐฐํฌ

์˜คํ”„๋ผ์ธ ๋ชจ๋“œ๋Š” ๋ณด์•ˆ ๋ชจ๋ธ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์—ฐ๊ฒฐ์ด ์—†์„ ๋•Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„œ๋ฒ„๊ฐ€ ์—ฌ์ „ํžˆ ์ง„์‹ค์˜ ๊ทผ์›์ž…๋‹ˆ๋‹ค. ํ์— ์žˆ๋Š” ๋ชจ๋“  ๋ณ€๊ฒฝ์€ "์š”์ฒญ๋จ(requested)"์ด์ง€ "์Šน์ธ๋จ(approved)"์ด ์•„๋‹˜์„ ๊ฐ„์ฃผํ•˜์„ธ์š”.

์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ ๋กœ๊ทธ์ธ ๋งŒ๋ฃŒ

ํ† ํฐ์€ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ ๋งŒ๋ฃŒ๋˜๋”๋ผ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ์ง‘์„ ๊ณ„์†ํ•˜๊ณ  ์ด๋ฅผ ๋ณด๋ฅ˜ ์ƒํƒœ๋กœ ์ €์žฅํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์„ธ์š”. ๊ฒฐ์ œ๋‚˜ ๊ด€๋ฆฌ์ž ์Šน์ธ์ฒ˜๋Ÿผ ์„œ๋ฒ„ ํ™•์ธ์ด ํ•„์š”ํ•œ ์ž‘์—…์€ ์™„๋ฃŒ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ€์žฅํ•˜์ง€ ๋งˆ์„ธ์š”. ์˜จ๋ผ์ธ์œผ๋กœ ๋‹ค์‹œ ์ธ์ฆ๋  ๋•Œ๊นŒ์ง€ ๋ณด๋ฅ˜๋กœ ์œ ์ง€ํ•˜์„ธ์š”.

์•ฑ์ด ์˜จ๋ผ์ธ์ด ๋˜๋ฉด ์šฐ์„  ์กฐ์šฉํ•œ ํ† ํฐ ๊ฐฑ์‹ ์„ ์‹œ๋„ํ•˜์„ธ์š”. ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•˜๋ฉด ํ•œ ๋ฒˆ๋งŒ ์š”์ฒญํ•˜๊ณ  ์ž๋™์œผ๋กœ ๋™๊ธฐํ™”๋ฅผ ์žฌ๊ฐœํ•˜์„ธ์š”.

์žฌ๋กœ๊ทธ์ธ ํ›„์—๋Š” ์ „์†ก ์ „์— ํ์˜ ๊ฐ ํ•ญ๋ชฉ์„ ์žฌ๊ฒ€์ฆํ•˜์„ธ์š”. ์‚ฌ์šฉ์ž ์‹ ์›์ด ๋ฐ”๋€Œ์—ˆ์„ ์ˆ˜ ์žˆ๊ณ (๊ณต์œ  ๊ธฐ๊ธฐ ๋“ฑ) ์˜ค๋ž˜๋œ ํŽธ์ง‘์ด ์ž˜๋ชป๋œ ๊ณ„์ •์œผ๋กœ ๋™๊ธฐํ™”๋˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ถŒํ•œ ๋ณ€๊ฒฝ๊ณผ ๊ธˆ์ง€๋œ ๋™์ž‘

๊ถŒํ•œ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์˜คํ”„๋ผ์ธ์ผ ๋•Œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ ํ—ˆ์šฉ๋˜๋˜ ํŽธ์ง‘์ด ์˜ค๋Š˜์€ ๊ธˆ์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์„ธ์š”:

  • ํ์˜ ๊ฐ ์ž‘์—…์— ๋Œ€ํ•ด ์„œ๋ฒ„ ์ธก์—์„œ ๊ถŒํ•œ์„ ์žฌํ™•์ธ
  • ๊ธˆ์ง€๋œ ๊ฒฝ์šฐ ํ•ด๋‹น ํ•ญ๋ชฉ์„ ์ค‘์ง€ํ•˜๊ณ  ์ด์œ ๋ฅผ ๋ช…ํ™•ํžˆ ํ‘œ์‹œ
  • ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ ํŽธ์ง‘์€ ๋ณด๊ด€ํ•ด ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์ ‘๊ทผ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์œ ์ง€
  • "๊ธˆ์ง€" ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ๋ฐ˜๋ณต ์žฌ์‹œ๋„ํ•˜์ง€ ์•Š๊ธฐ

์˜ˆ: ์ง€์› ๋‹ด๋‹น์ž๊ฐ€ ๋น„ํ–‰ ์ค‘์— ๊ณ ๊ฐ ๋ฉ”๋ชจ๋ฅผ ์˜คํ”„๋ผ์ธ์—์„œ ํŽธ์ง‘ํ–ˆ๋Š”๋ฐ, ๋ฐค ์‚ฌ์ด์— ์—ญํ• ์ด ์ œ๊ฑฐ๋˜์—ˆ๋‹ค๋ฉด ๋™๊ธฐํ™” ์‹œ ์„œ๋ฒ„๊ฐ€ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์€ "์—…๋กœ๋“œ ๋ถˆ๊ฐ€: ๋” ์ด์ƒ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค"๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ๋ฉ”๋ชจ๋ฅผ ๋กœ์ปฌ ์ดˆ์•ˆ์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜คํ”„๋ผ์ธ์— ์ €์žฅ๋œ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ

ํ™”๋ฉด ๋ Œ๋”๋ง๊ณผ ํ ์žฌ์ƒ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์ตœ์†Œํ•œ๋งŒ ์ €์žฅํ•˜์„ธ์š”. ์˜คํ”„๋ผ์ธ ์ €์žฅ์†Œ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ณ  ๋น„๋ฐ€์ •๋ณด ์บ์‹ฑ์„ ํ”ผํ•˜๋ฉฐ ๋กœ๊ทธ์•„์›ƒ ๊ทœ์น™(์˜ˆ: ๋กœ์ปฌ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ๋˜๋Š” ์‚ฌ์šฉ์ž ๋™์˜ ํ›„ ์ดˆ์•ˆ๋งŒ ๋ณด๊ด€)์„ ๋ช…ํ™•ํžˆ ํ•˜์„ธ์š”. AppMaster๋กœ ๋นŒ๋“œํ•  ๊ฒฝ์šฐ ์ธ์ฆ ๋ชจ๋“ˆ์„ ์‹œ์ž‘์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ํ๊ฐ€ ์œ ํšจํ•œ ์„ธ์…˜์„ ๊ธฐ๋‹ค๋ฆฐ ๋’ค ๋ณ€๊ฒฝ์„ ์ „์†กํ•˜๋„๋ก ์„ค๊ณ„ํ•˜์„ธ์š”.

์ž‘์—… ์†์‹ค์ด๋‚˜ ์ค‘๋ณต์„ ์ผ์œผํ‚ค๋Š” ํ”ํ•œ ํ•จ์ •

๋Œ€๋ถ€๋ถ„์˜ ์˜คํ”„๋ผ์ธ ๋ฒ„๊ทธ๋Š” ํ™”๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™„๋ฒฝํ•œ Wi-Fi์—์„œ ํ…Œ์ŠคํŠธํ•  ๋•Œ๋Š” ๋ฌดํ•ดํ•ด ๋ณด์ด๋˜ ๋ช‡ ๊ฐ€์ง€ ์ž‘์€ ๊ฒฐ์ •์—์„œ ๋ฐœ์ƒํ•ด ์‹ค์ œ ์ž‘์—…์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

ํ”ํ•œ ์‹คํŒจ ์‚ฌ๋ก€๋Š” ์กฐ์šฉํ•œ ๋ฎ์–ด์“ฐ๊ธฐ์ž…๋‹ˆ๋‹ค. ์•ฑ์ด ์˜ค๋ž˜๋œ ๋ฒ„์ „์„ ์—…๋กœ๋“œํ•˜๊ณ  ์„œ๋ฒ„๊ฐ€ ๊ฒ€์‚ฌ๋ฅผ ํ•˜์ง€ ์•Š์•„ ์ด๋ฅผ ๋ฐ›์•„๋“ค์ด๋ฉด ๋ˆ„๊ตฐ๊ฐ€์˜ ์ตœ์‹  ํŽธ์ง‘์„ ์ง€์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ๋ฒˆํ˜ธ(๋˜๋Š” "๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ" ํƒ€์ž„์Šคํƒฌํ”„)๋กœ ๋™๊ธฐํ™”ํ•˜๊ณ  ์„œ๋ฒ„๊ฐ€ ๋จผ์ € ์ด๋™ํ•œ ๊ฒฝ์šฐ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…ํ™•ํ•œ ์„ ํƒ์„ ํ•˜๊ฒŒ ํ•˜์„ธ์š”.

๋˜ ๋‹ค๋ฅธ ํ•จ์ •์€ ์žฌ์‹œ๋„ ํญ์ฃผ(retry storm)์ž…๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ๊ฐ€ ์•ฝํ•œ ์—ฐ๊ฒฐ์„ ๋˜์ฐพ์œผ๋ฉด ์•ฑ์ด ๋ฐฑ์—”๋“œ๋ฅผ ๋งค์ดˆ ๋‘๋“œ๋ ค ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ์†Œ๋ชจํ•˜๊ณ  ์ค‘๋ณต ์“ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์‹œ๋„๋Š” ์ฐจ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: ์‹คํŒจ ํ›„ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ณ  ๋ฌด์ž‘์œ„์„ฑ์„ ์ถ”๊ฐ€ํ•ด ์ˆ˜์ฒœ ๋Œ€์˜ ๊ธฐ๊ธฐ๊ฐ€ ๋™์‹œ์— ์žฌ์‹œ๋„ํ•˜์ง€ ์•Š๊ฒŒ ํ•˜์„ธ์š”.

์ž‘์—… ์†์‹ค์ด๋‚˜ ์ค‘๋ณต์„ ๊ฐ€์žฅ ์ž์ฃผ ์ดˆ๋ž˜ํ•˜๋Š” ์‹ค์ˆ˜๋“ค:

  • ๋ชจ๋“  ์‹คํŒจ๋ฅผ "๋„คํŠธ์›Œํฌ"๋กœ ์ทจ๊ธ‰ํ•˜๊ธฐ: ์˜๊ตฌ ์˜ค๋ฅ˜(์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ, ๊ถŒํ•œ ์—†์Œ)์™€ ์ผ์‹œ์  ์˜ค๋ฅ˜(ํƒ€์ž„์•„์›ƒ)๋ฅผ ๋ถ„๋ฆฌํ•˜์„ธ์š”.
  • ๋™๊ธฐํ™” ์‹คํŒจ๋ฅผ ์ˆจ๊ธฐ๊ธฐ: ์‹คํŒจํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์—†์œผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ๋‹ค์‹œ ํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ณดํ˜ธ ์žฅ์น˜ ์—†์ด ๊ฐ™์€ ๋ณ€๊ฒฝ์„ ๋‘ ๋ฒˆ ๋ณด๋‚ด๊ธฐ: ํ•ญ์ƒ ๊ณ ์œ  ์š”์ฒญ ID๋ฅผ ์ฒจ๋ถ€ํ•ด ์„œ๋ฒ„๊ฐ€ ์ค‘๋ณต์„ ์ธ์‹ํ•˜๊ฒŒ ํ•˜์„ธ์š”.
  • ์ค‘์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฌ์ง€ ์•Š๊ณ  ํ…์ŠคํŠธ ํ•„๋“œ๋ฅผ ์ž๋™ ๋ณ‘ํ•ฉํ•˜๊ธฐ: ์ž๋™ ๋ณ‘ํ•ฉ์„ ํ•˜๋”๋ผ๋„ ์ค‘์š”ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€ํ† ํ•˜๊ฒŒ ํ•˜์„ธ์š”.
  • ์•ˆ์ •๋œ ID ์—†์ด ์˜คํ”„๋ผ์ธ์—์„œ ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑํ•˜๊ธฐ: ์ž„์‹œ ๋กœ์ปฌ ID๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์—…๋กœ๋“œ ํ›„ ์„œ๋ฒ„ ID์— ๋งคํ•‘ํ•ด ์ดํ›„ ํŽธ์ง‘์ด ๋‘ ๋ฒˆ์งธ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค์ง€ ์•Š๋„๋ก ํ•˜์„ธ์š”.

๊ฐ„๋‹จํ•œ ์˜ˆ: ํ˜„์žฅ ๊ธฐ์ˆ ์ž๊ฐ€ ์˜คํ”„๋ผ์ธ์—์„œ ์ƒˆ "ํ˜„์žฅ ๋ฐฉ๋ฌธ(Site Visit)"์„ ๋งŒ๋“ค๊ณ  ์žฌ์—ฐ๋ฝํ•˜๊ธฐ ์ „์— ๋‘ ๋ฒˆ ํŽธ์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ ํ˜ธ์ถœ์ด ์žฌ์‹œ๋„๋˜์–ด ๋‘ ๊ฐœ์˜ ์„œ๋ฒ„ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ  ๋‚˜์ค‘ ๋ณ€๊ฒฝ์ด ์ž˜๋ชป๋œ ๋ ˆ์ฝ”๋“œ์— ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ •๋œ ID์™€ ์„œ๋ฒ„ ์ธก ์ค‘๋ณต ๋ฐฉ์ง€๊ฐ€ ์ด๋ฅผ ๋ง‰์Šต๋‹ˆ๋‹ค.

AppMaster๋กœ ์ด ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๋“  ๊ทœ์น™์€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฐจ์ด๋Š” ๊ทœ์น™์„ ๊ตฌํ˜„ํ•˜๋Š” ์œ„์น˜(๋™๊ธฐํ™” ๋กœ์ง, ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ์‹คํŒจ/์ „์†ก ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด)์— ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค: ๋‘ ์‚ฌ๋žŒ์ด ๊ฐ™์€ ๋ ˆ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ–ˆ์„ ๋•Œ

์ฝ”๋”ฉ ์—†์ด ์ „์ฒด ์•ฑ ๋ฐฐํฌํ•˜๊ธฐ
ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒ์‚ฐ ๊ฐ€๋Šฅํ•œ ๋ฐฑ์—”๋“œ, ์›น, ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ์ƒ์„ฑํ•˜์„ธ์š”.
ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

ํ˜„์žฅ ๊ธฐ์ˆ ์ž Maya๋Š” ์‹ ํ˜ธ๊ฐ€ ์—†๋Š” ์ง€ํ•˜์—์„œ "์ž‘์—… #1842" ํ‹ฐ์ผ“์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋…€๋Š” ์ƒํƒœ๋ฅผ "์ง„ํ–‰ ์ค‘"์—์„œ "์™„๋ฃŒ"๋กœ ๋ฐ”๊พธ๊ณ  ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค: "๋ฐธ๋ธŒ ๊ต์ฒด ๋ฐ ํ…Œ์ŠคํŠธ ์™„๋ฃŒ." ์•ฑ์€ ์ฆ‰์‹œ ์ €์žฅํ•˜๊ณ  ์ด๋ฅผ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์œ„์ธต์—์„œ๋Š” ํŒ€์› Leo๊ฐ€ ๊ฐ™์€ ์ผ์„ ์˜จ๋ผ์ธ ์ƒํƒœ์—์„œ ํŽธ์ง‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์˜ˆ์ • ์‹œ๊ฐ„์„ ๋ฐ”๊พธ๊ณ  ๋‹ค๋ฅธ ๊ธฐ์ˆ ์ž์—๊ฒŒ ์ž‘์—…์„ ํ• ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๊ฐ์ด ์ „ํ™”๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ์ค€ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.

Maya๊ฐ€ ์‹ ํ˜ธ๋ฅผ ๋ฐ›์œผ๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™๊ธฐํ™”๊ฐ€ ์กฐ์šฉํžˆ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. Maya์˜ ๋ณ€๊ฒฝ์€ ์—ฌ์ „ํžˆ ๋™๊ธฐํ™” ํ์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค(์ž‘์—… ID, ๋ณ€๊ฒฝ๋œ ํ•„๋“œ, ํƒ€์ž„์Šคํƒฌํ”„, ๊ทธ๋…€๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ณธ ๋ ˆ์ฝ”๋“œ ๋ฒ„์ „).
  2. ์•ฑ์ด ์—…๋กœ๋“œ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” "์ด ์ž‘์—…์€ ๋‹น์‹ ์ด ๋ณด๋˜ ๋ฒ„์ „ ์ดํ›„์— ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋‹ตํ•ฉ๋‹ˆ๋‹ค(์ถฉ๋Œ).
  3. ์ถฉ๋Œ ๊ทœ์น™์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค: ์ƒํƒœ์™€ ๋ฉ”๋ชจ๋Š” ๋ณ‘ํ•ฉํ•˜๋˜, ํ• ๋‹น ๋ณ€๊ฒฝ์€ ์„œ๋ฒ„์—์„œ ๋‚˜์ค‘์— ์ด๋ฃจ์–ด์กŒ๋‹ค๋ฉด ์„œ๋ฒ„ ์ชฝ ์„ ํƒ์„ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„œ๋ฒ„๋Š” ๋ณ‘ํ•ฉ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค: ์ƒํƒœ = "์™„๋ฃŒ"(Maya), ๋ฉ”๋ชจ ์ถ”๊ฐ€(Maya), ํ• ๋‹น๋œ ๊ธฐ์ˆ ์ž = Leo์˜ ์„ ํƒ(Leo).
  5. Maya์˜ ์•ฑ์€ ๋ช…ํ™•ํ•œ ๋ฐฐ๋„ˆ์™€ ํ•จ๊ป˜ ์ˆ˜์ •๋œ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค: "๋™๊ธฐํ™” ์™„๋ฃŒ: ํ• ๋‹น์ด ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ์ž‘์€ "๊ฒ€ํ† " ๋™์ž‘์œผ๋กœ ๋ฌด์—‡์ด ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์‹คํŒจ ์ƒํ™ฉ์„ ์ถ”๊ฐ€ํ•ด๋ณด๋ฉด: Maya์˜ ๋กœ๊ทธ์ธ ํ† ํฐ์ด ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ ๋งŒ๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋™๊ธฐํ™” ์‹œ๋„๊ฐ€ "๋กœ๊ทธ์ธ ํ•„์š”"๋กœ ์‹คํŒจํ•˜๋ฉด ์•ฑ์€ ํŽธ์ง‘์„ ๋ณด๊ด€ํ•˜๊ณ  "์ผ์‹œ์ค‘์ง€(Paused)"๋กœ ํ‘œ์‹œํ•œ ๋’ค ๊ฐ„๋‹จํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ทธ๋…€๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋ฉด ๋™๊ธฐํ™”๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋‹ค์‹œ ์ž…๋ ฅํ•  ํ•„์š” ์—†์ด ์ž๋™์œผ๋กœ ์žฌ๊ฐœ๋ฉ๋‹ˆ๋‹ค.

๊ฒ€์ฆ ๋ฌธ์ œ(์˜ˆ: "์™„๋ฃŒ" ์ƒํƒœ์—๋Š” ์‚ฌ์ง„์ด ํ•„์š”ํ•จ)๊ฐ€ ์žˆ๋‹ค๋ฉด ์•ฑ์ด ์ž„์˜๋กœ ํŒ๋‹จํ•ด์„  ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์„ "์ฃผ์˜ ํ•„์š”(Needs attention)"๋กœ ํ‘œ์‹œํ•˜๊ณ  ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ค€ ๋’ค ์žฌ์ „์†กํ•˜๊ฒŒ ํ•˜์„ธ์š”.

AppMaster ๊ฐ™์€ ํ”Œ๋žซํผ์€ ํ, ์ถฉ๋Œ ๊ทœ์น™, ๋Œ€๊ธฐ ์ƒํƒœ UX๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋ฏ€๋กœ ๋„ค์ดํ‹ฐ๋ธŒ Kotlin ๋ฐ SwiftUI ์•ฑ์„ ํ•จ๊ป˜ ์ œ๊ณตํ•˜๋ฉด์„œ ์ด๋Ÿฌํ•œ ํ๋ฆ„์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ๋‹ค์Œ ๋‹จ๊ณ„

์˜คํ”„๋ผ์ธ ๋™๊ธฐํ™”๋ฅผ ์ˆ˜์ • ๋ชจ์Œ์œผ๋กœ ๋ณด์ง€ ๋ง๊ณ  ์—”๋“œ ํˆฌ ์—”๋“œ ๊ธฐ๋Šฅ์œผ๋กœ ๋‹ค๋ฃจ์„ธ์š”. ๋ชฉํ‘œ๋Š” ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค: ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์ž‘์—…์ด ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ์˜์‹ฌํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๊ณ  ์•ฑ์ด ๋†€๋ผ์šด ์ค‘๋ณต์„ ๋งŒ๋“ค์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ฒƒ.

ํ† ๋Œ€๋ฅผ ํ™•์ธํ•˜๋Š” ์งง์€ ์ฒดํฌ๋ฆฌ์ŠคํŠธ:

  • ๋™๊ธฐํ™” ํ๊ฐ€ ๊ธฐ๊ธฐ์— ์ €์žฅ๋˜๊ณ  ๋ชจ๋“  ๋ณ€๊ฒฝ์— ์•ˆ์ •๋œ ๋กœ์ปฌ ID์™€ ๊ฐ€๋Šฅํ•˜๋ฉด ์„œ๋ฒ„ ID๊ฐ€ ์žˆ๋Š”๊ฐ€?
  • ๋ช…ํ™•ํ•œ ์ƒํƒœ(queued, syncing, sent, failed, needs review)๊ฐ€ ์กด์žฌํ•˜๊ณ  ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”๊ฐ€?
  • ์š”์ฒญ์ด ๋ฉฑ๋“ฑํ•œ๊ฐ€(์žฌ์‹œ๋„ํ•ด๋„ ์•ˆ์ „), ๊ฐ ์ž‘์—…์— ๋ฉฑ๋“ฑ์„ฑ ํ‚ค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”๊ฐ€?
  • ๋ ˆ์ฝ”๋“œ์— ๋ฒ„์ „ ์ •๋ณด(updatedAt, revision ๋ฒˆํ˜ธ, ETag ๋“ฑ)๊ฐ€ ์žˆ์–ด ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • ์ถฉ๋Œ ๊ทœ์น™์ด ํ‰์ดํ•œ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š”๊ฐ€(๋ฌด์—‡์ด ์šฐ์„ ํ•˜๋Š”์ง€, ๋ฌด์—‡์„ ๋ณ‘ํ•ฉํ•˜๋Š”์ง€, ์–ธ์ œ ์‚ฌ์šฉ์ž๋ฅผ ๋ฌป๋Š”์ง€)?

์ด๊ฒƒ๋“ค์ด ๋งˆ๋ จ๋˜๋ฉด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋งŒํผ ํƒ„ํƒ„ํ•œ์ง€ ๊ฒ€์ฆํ•˜์„ธ์š”. ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€๊ธฐ ์ค‘์ธ ํ•ญ๋ชฉ์„ ๋ณด๊ณ  ์‹คํŒจํ•œ ์ด์œ ๋ฅผ ์ดํ•ดํ•˜๋ฉฐ ์กฐ์น˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์ƒํ™ฉ๊ณผ ์ผ์น˜ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ํ…Œ์ŠคํŠธํ•˜์„ธ์š”:

  • ๋น„ํ–‰๊ธฐ ๋ชจ๋“œ ํŽธ์ง‘: ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ ํ›„ ์žฌ์—ฐ๊ฒฐ
  • ๋ถˆ์•ˆ์ •ํ•œ ๋„คํŠธ์›Œํฌ: ๋™๊ธฐํ™” ์ค‘ ์—ฐ๊ฒฐ์ด ๋Š๊ฒจ๋„ ์žฌ์‹œ๋„๊ฐ€ ์ค‘๋ณต์„ ๋งŒ๋“ค์ง€ ์•Š๋Š”์ง€
  • ์•ฑ ๊ฐ•์ œ ์ข…๋ฃŒ: ์ „์†ก ์ค‘ ๊ฐ•์ œ ์ข…๋ฃŒ ํ›„ ์žฌ์—ด๊ธฐ ์‹œ ํ๊ฐ€ ๋ณต๊ตฌ๋˜๋Š”์ง€
  • ์žฅ์น˜ ์‹œ๊ฐ„ ๋ถˆ์ผ์น˜: ๊ธฐ๊ธฐ ์‹œ๊ฐ„์ด ์ž˜๋ชป๋˜์–ด๋„ ์ถฉ๋Œ ๊ฐ์ง€ ์ž‘๋™ ์—ฌ๋ถ€
  • ์ค‘๋ณต ํƒญ: ์‚ฌ์šฉ์ž๊ฐ€ ์ €์žฅ์„ ๋‘ ๋ฒˆ ๋ˆŒ๋Ÿฌ๋„ ์„œ๋ฒ„์—๋Š” ํ•˜๋‚˜์˜ ๋ณ€๊ฒฝ๋งŒ ๊ฐ€๋Š”์ง€

UI๋ฅผ ๋‹ค๋“ฌ๊ธฐ ์ „์— ์ „์ฒด ํ๋ฆ„์„ ํ”„๋กœํ† ํƒ€์ž…ํ•˜์„ธ์š”. ํ•œ ํ™”๋ฉด, ํ•œ ๋ ˆ์ฝ”๋“œ ํƒ€์ž…, ํ•œ ์ถฉ๋Œ ์ผ€์ด์Šค(๊ฐ™์€ ํ•„๋“œ๋ฅผ ๋‘ ๋ฒˆ ํŽธ์ง‘)๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ๊ฐ„๋‹จํ•œ ๋™๊ธฐํ™” ์ƒํƒœ ์˜์—ญ, ์‹คํŒจ ์‹œ ์žฌ์‹œ๋„ ๋ฒ„ํŠผ, ๋ช…ํ™•ํ•œ ์ถฉ๋Œ ํ™”๋ฉด์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋ฉด ๋‹ค๋ฅธ ํ™”๋ฉด์œผ๋กœ ํ™•์žฅํ•˜์„ธ์š”.

์ฝ”๋”ฉ ์—†์ด ๋นŒ๋“œํ•œ๋‹ค๋ฉด AppMaster (appmaster.io)๋Š” ๋ฐฑ์—”๋“œ์™€ ๋„ค์ดํ‹ฐ๋ธŒ Kotlin ๋ฐ SwiftUI ์•ฑ์„ ์ƒ์„ฑํ•ด ์ฃผ๋ฏ€๋กœ ํ, ๋ฒ„์ „ ๊ฒ€์‚ฌ, ์‚ฌ์šฉ์ž ํ‘œ์‹œ ์ƒํƒœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
์˜คํ”„๋ผ์ธ ์šฐ์„  ๋ชจ๋ฐ”์ผ ์•ฑ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™๊ธฐํ™”: ์ถฉ๋Œ, ์žฌ์‹œ๋„, UX | AppMaster