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

๊ด€๋ฆฌ์ž ๋„๊ตฌ๋ฅผ ์œ„ํ•œ ๋‚™๊ด€์  ์ž ๊ธˆ: ๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ ๋ฐฉ์ง€

๋ฒ„์ „ ์ปฌ๋Ÿผ๊ณผ updated_at ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด ๊ด€๋ฆฌ์ž ๋„๊ตฌ์— ๋‚™๊ด€์  ์ž ๊ธˆ์„ ์ ์šฉํ•˜๊ณ , ํŽธ์ง‘ ์ถฉ๋Œ์„ ๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ ์—†์ด ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ„๋‹จํ•œ UI ํŒจํ„ด์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ๋„๊ตฌ๋ฅผ ์œ„ํ•œ ๋‚™๊ด€์  ์ž ๊ธˆ: ๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ ๋ฐฉ์ง€

๋ฌธ์ œ: ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ์ง‘ํ•  ๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ

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

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

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

์ฆ‰๊ฐ์ ์œผ๋กœ ํฐ ํ”ผํ•ด๊ฐ€ ์ƒ๊ธฐ์ง„ ์•Š๋”๋ผ๋„ ์Œ“์ด๋ฉด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค:

  • ํ”„๋กœ๋ชจ์…˜ ์—…๋ฐ์ดํŠธ ์งํ›„ ๊ฐ€๊ฒฉ์ด ์ด์ „ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.
  • ์ƒ๋‹ด์‚ฌ์˜ ๋‚ด๋ถ€ ๋ฉ”๋ชจ๊ฐ€ ์‚ฌ๋ผ์ ธ ๋‹ค์Œ ์ƒ๋‹ด์‚ฌ๊ฐ€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.
  • ์ฃผ๋ฌธ ์ƒํƒœ๊ฐ€ ๋’ค๋กœ ๋ฐ”๋€Œ์–ด ์ž˜๋ชป๋œ ํ›„์† ์กฐ์น˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค(์˜ˆ: "Shipped"๊ฐ€ "Packed"๋กœ ๋Œ์•„๊ฐ).
  • ๊ณ ๊ฐ์˜ ์ „ํ™”๋ฒˆํ˜ธ๋‚˜ ์ฃผ์†Œ๊ฐ€ ์˜ค๋ž˜๋œ ์ •๋ณด๋กœ ๊ต์ฒด๋œ๋‹ค.

๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ๋Š” ์‹œ์Šคํ…œ์ด ์ œ๋Œ€๋กœ ์ €์žฅํ–ˆ๋‹ค๊ณ  ๋ชจ๋‘๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๊ณจ์นฉ๋‹ˆ๋‹ค. "๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค"๋Š” ๋ช…ํ™•ํ•œ ์ˆœ๊ฐ„์ด ์—†๊ณ , ๋ณด๊ณ ์„œ๊ฐ€ ์ด์ƒํ•˜๊ฑฐ๋‚˜ ๋™๋ฃŒ๊ฐ€ "์ด๊ฑฐ ๋ˆ„๊ฐ€ ๋ฐ”๊ฟจ์ง€?"๋ผ๊ณ  ๋ฌผ์„ ๋•Œ ํ˜ผ๋ž€์ด ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ถฉ๋Œ์€ ์ •์ƒ์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ๊ฐ€ ๊ณต์œ ๋˜๊ณ  ์œ ์šฉํ•˜๋‹ค๋Š” ์‹ ํ˜ธ์ง€, ํŒ€์ด ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‹ ํ˜ธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ๋‘ ์‚ฌ๋žŒ์ด ํŽธ์ง‘ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ˆ„๊ตฐ๊ฐ€ ํŽธ์ง‘ํ•˜๋Š” ๋™์•ˆ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ๊ฐ์ง€ํ•˜๊ณ  ๊ทธ ์ˆœ๊ฐ„์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

AppMaster ๊ฐ™์€ ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ์œผ๋กœ ๋‚ด๋ถ€ ๋„๊ตฌ๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ์ดˆ๊ธฐ์— ๋Œ€๋น„ํ•ด ๋‘๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ๋„๊ตฌ๋Š” ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๊ณ  ํŒ€์ด ์˜์กดํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ€๋”์”ฉ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐ˜๋ณต์ ์ธ ๋ถˆ์‹ ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

๋‚™๊ด€์  ์ž ๊ธˆ(Optimistic locking)์„ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด

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

๋ณดํ˜ธ ์žฅ์น˜๊ฐ€ ์—†์œผ๋ฉด ๋งˆ์ง€๋ง‰ ์ €์žฅ์ด ์ด๊น๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค: ๋‘ ๋ฒˆ์งธ ์ €์žฅ์ด ์กฐ์šฉํžˆ ์ฒซ ๋ฒˆ์งธ ์‚ฌ๋žŒ์˜ ๋ณ€๊ฒฝ์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

๋‚™๊ด€์  ์ž ๊ธˆ์€ ๊ฐ„๋‹จํ•œ ๊ทœ์น™์ž…๋‹ˆ๋‹ค: "๋‚ด๊ฐ€ ํŽธ์ง‘์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ๋ ˆ์ฝ”๋“œ ์ƒํƒœ์™€ ๊ฐ™์„ ๋•Œ๋งŒ ๋ณ€๊ฒฝ์„ ์ €์žฅํ•˜๊ฒ ๋‹ค." ๋งŒ์•ฝ ๊ทธ ์‚ฌ์ด์— ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋‹ค๋ฉด ์ €์žฅ์„ ๊ฑฐ๋ถ€ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถฉ๋Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

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

๋‚™๊ด€์  ์ž ๊ธˆ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋ณธ ์„ ํƒ์œผ๋กœ ๋” ๋‚ซ์Šต๋‹ˆ๋‹ค. ์ž‘์—… ํ๋ฆ„์„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋ณ‘๋ ฌ๋กœ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉฐ, ์‹ค์ œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ๋งŒ ์‹œ์Šคํ…œ์ด ๊ฐœ์ž…ํ•ฉ๋‹ˆ๋‹ค.

์ ํ•ฉํ•œ ๊ฒฝ์šฐ:

  • ์ถฉ๋Œ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํ•ญ์ƒ ๋ฐœ์ƒํ•˜์ง€๋Š” ์•Š์„ ๋•Œ
  • ํŽธ์ง‘์ด ์งง๊ณ  ๋น ๋ฅผ ๋•Œ(๋ช‡ ๊ฐœ ํ•„๋“œ, ์งง์€ ํผ)
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์ฐจ๋‹จํ•˜๋ฉด ํŒ€์ด ๋А๋ ค์งˆ ๋•Œ
  • "๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฑธ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ช…ํ™•ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์„ ๋•Œ
  • API๊ฐ€ ๋ชจ๋“  ์—…๋ฐ์ดํŠธ์—์„œ ๋ฒ„์ „(๋˜๋Š” ํƒ€์ž„์Šคํƒฌํ”„)์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๋•Œ

๋‚™๊ด€์  ์ž ๊ธˆ์€ "์กฐ์šฉํ•œ ๋ฎ์–ด์“ฐ๊ธฐ" ๋ฌธ์ œ๋ฅผ ๋ง‰์•„์ค๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๋Œ€์‹  "์ด ๋ ˆ์ฝ”๋“œ๋Š” ๋‹น์‹ ์ด ์—ด์—ˆ์„ ๋•Œ์™€ ๋‹ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๊น”๋”ํ•œ ์ค‘์ง€ ์ƒํƒœ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

์ผ๋ฐ˜์ ์ธ ํ•œ๊ณ„:

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

์‹ค๋ฌด์—์„œ๋Š” ๋‚™๊ด€์  ์ž ๊ธˆ์€ ํŽธ์ง‘๊ณผ ํ•จ๊ป˜ ์ „๋‹ฌ๋˜๋Š” ์ถ”๊ฐ€ ๊ฐ’ ํ•˜๋‚˜์™€ ์„œ๋ฒ„ ์ธก์˜ "์ผ์น˜ํ•  ๋•Œ๋งŒ ์—…๋ฐ์ดํŠธ" ๊ทœ์น™์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. AppMaster๋กœ ๊ด€๋ฆฌ์ž ํŒจ๋„์„ ๋งŒ๋“ ๋‹ค๋ฉด ์ด ๊ฒ€์‚ฌ๋Š” ๋ณดํ†ต ์—…๋ฐ์ดํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณณ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ: version ์ปฌ๋Ÿผ vs updated_at

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

์ ‘๊ทผ๋ฒ• 1: ๋ฒ„์ „ ์ปฌ๋Ÿผ(์ฆ๊ฐ€ํ•˜๋Š” ์ •์ˆ˜)

version ํ•„๋“œ(๋ณดํ†ต ์ •์ˆ˜)๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘ ํผ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ํ˜„์žฌ version๋„ ํ•จ๊ป˜ ์ฝ์Šต๋‹ˆ๋‹ค. ์ €์žฅํ•  ๋•Œ ๊ทธ ๊ฐ’์„ ๋‹ค์‹œ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์ €์žฅ์€ ์ €์žฅ ์‹œ์ ์˜ ์ €์žฅ๋œ ๋ฒ„์ „์ด ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ์˜ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•  ๋•Œ๋งŒ ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ผ์น˜ํ•˜๋ฉด ๋ ˆ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  version์„ 1 ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฎ์–ด์“ฐ๋Š” ๋Œ€์‹  ์ถฉ๋Œ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฐฉ์‹์€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค: ๋ฒ„์ „ 12๋Š” "์ด๊ฒŒ 12๋ฒˆ์งธ ๋ณ€๊ฒฝ"์ด๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ๋œ ์˜ˆ์™ธ๋„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ‘๊ทผ๋ฒ• 2: updated_at(ํƒ€์ž„์Šคํƒฌํ”„ ๋น„๊ต)

๋Œ€๋ถ€๋ถ„์˜ ํ…Œ์ด๋ธ”์—๋Š” ์ด๋ฏธ updated_at ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค: ํผ์„ ์—ด ๋•Œ updated_at์„ ์ฝ๊ณ  ์ €์žฅ ์‹œ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” updated_at์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์„ ๋•Œ๋งŒ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

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

๊ฐ„๋‹จํ•œ ๋น„๊ต ์š”์•ฝ:

  • ๋ฒ„์ „ ์ปฌ๋Ÿผ: ๋™์ž‘์ด ๊ฐ€์žฅ ๋ช…ํ™•ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„ ์ด์‹์„ฑ์ด ์ข‹์œผ๋ฉฐ ์‹œ๊ณ„ ๋ฌธ์ œ ์—†์Œ.
  • updated_at: ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๋น„์šฉ์ด ์ ์ง€๋งŒ ์ •๋ฐ€๋„์™€ ์‹œ๊ณ„ ์ฒ˜๋ฆฌ ๋ฌธ์ œ์— ์ฃผ์˜ํ•ด์•ผ ํ•จ.

๋Œ€๋ถ€๋ถ„ ํŒ€์—๋Š” ๋ฒ„์ „ ์ปฌ๋Ÿผ์ด ๋” ์ข‹์€ ๊ธฐ๋ณธ ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์ด๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋กœ๊ทธ๋‚˜ ์ง€์› ํ‹ฐ์ผ“์—์„œ ์ฐธ์กฐํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

AppMaster๋กœ ๋งŒ๋“ค ๋•Œ๋Š” Data Designer์— ์ •์ˆ˜ํ˜• version ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ๋กœ์ง์ด ์ €์žฅ ์ „์— ์ด๋ฅผ ํ™•์ธํ•˜๋„๋ก ํ•˜์„ธ์š”. updated_at๋Š” ๊ฐ์‚ฌ์šฉ์œผ๋กœ ๋‚จ๊ฒจ๋‘๋˜ ํŽธ์ง‘ ์•ˆ์ „์„ฑ ํŒ๋‹จ์€ ๋ฒ„์ „ ๋ฒˆํ˜ธ์— ๋งก๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ํŽธ์ง‘์—์„œ ๋ฌด์—‡์„ ์ €์žฅํ•˜๊ณ  ๋ณด๋‚ด์•ผ ํ•˜๋Š”๊ฐ€

๋‚™๊ด€์  ์ž ๊ธˆ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํผ์„ ์—ด์—ˆ์„ ๋•Œ์˜ "๋งˆ์ง€๋ง‰ ๋ณธ" ํ‘œ์‹œ์ž๋ฅผ ํŽธ์ง‘๊ณผ ํ•จ๊ป˜ ๋ณด๋‚ด์•ผ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ‘œ์‹œ์ž๋Š” version ๋ฒˆํ˜ธ๋‚˜ updated_at ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—†์œผ๋ฉด ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ์ง‘ํ•˜๋Š” ๋™์•ˆ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ ˆ์ฝ”๋“œ์—๋Š” ์ผ๋ฐ˜ ๋น„์ฆˆ๋‹ˆ์Šค ํ•„๋“œ์™€ ์„œ๋ฒ„๊ฐ€ ์ œ์–ดํ•˜๋Š” ๋™์‹œ์„ฑ ํ•„๋“œ ํ•˜๋‚˜๋ฅผ ๋‘์„ธ์š”. ์ตœ์†Œ ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • id (๊ณ ์œ  ์‹๋ณ„์ž)
  • ๋น„์ฆˆ๋‹ˆ์Šค ํ•„๋“œ(์ด๋ฆ„, ์ƒํƒœ, ๊ฐ€๊ฒฉ, ๋ฉ”๋ชจ ๋“ฑ)
  • version(์„ฑ๊ณต์ ์ธ ์—…๋ฐ์ดํŠธ๋งˆ๋‹ค ์ฆ๊ฐ€ํ•˜๋Š” ์ •์ˆ˜) ๋˜๋Š” updated_at(์„œ๋ฒ„๊ฐ€ ์“ฐ๋Š” ํƒ€์ž„์Šคํƒฌํ”„)

ํŽธ์ง‘ ํ™”๋ฉด์ด ์—ด๋ฆด ๋•Œ ํผ์€ ๊ทธ ๋™์‹œ์„ฑ ํ•„๋“œ์˜ ๋งˆ์ง€๋ง‰ ๋ณธ ๊ฐ’์„ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ์ง‘ ์ค‘์— ์ด ๊ฐ’์„ ๋ฐ”๊พธ๋ฉด ์•ˆ ๋˜๋ฏ€๋กœ ์ˆจ๊น€ ํ•„๋“œ๋‚˜ ํผ ์ƒํƒœ์— ๋ณด๊ด€ํ•˜์„ธ์š”. ์˜ˆ: API๊ฐ€ version: 12๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ํผ์€ ์ €์žฅ๋  ๋•Œ๊นŒ์ง€ 12๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ๊ณผ ๋งˆ์ง€๋ง‰ ๋ณธ ํ‘œ์‹œ์ž๋ฅผ ํ•จ๊ป˜ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ํ˜•ํƒœ๋Š” id, ๋ณ€๊ฒฝ๋œ ํ•„๋“œ, ๊ทธ๋ฆฌ๊ณ  expected_version(๋˜๋Š” expected_updated_at)์„ ์—…๋ฐ์ดํŠธ ์š”์ฒญ ๋ฐ”๋””์— ํฌํ•จํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. AppMaster์—์„œ UI๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด ์ด ๊ฐ’์„ ๋ ˆ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ๋กœ๋“œํ•ด ๋ฐ”์ธ๋”ฉํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ์‹œ ์ œ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„์—์„œ๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ์กฐ๊ฑด๋ถ€๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ ˆ๋Œ€ "์กฐ์šฉํžˆ ๋ณ‘ํ•ฉ"ํ•˜์ง€ ๋งˆ์„ธ์š”.

์ถฉ๋Œ ์‘๋‹ต์€ ๋ช…ํ™•ํ•˜๊ณ  UI์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์šฉ์ ์ธ ์ถฉ๋Œ ์‘๋‹ต์€ ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

  • HTTP ์ƒํƒœ 409 Conflict
  • "์ด ๋ ˆ์ฝ”๋“œ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค." ๊ฐ™์€ ์งง์€ ๋ฉ”์‹œ์ง€
  • ํ˜„์žฌ ์„œ๋ฒ„ ๊ฐ’(current_version ๋˜๋Š” current_updated_at)
  • ์„ ํƒ์ ์œผ๋กœ ์ตœ์‹  ์„œ๋ฒ„ ๋ ˆ์ฝ”๋“œ(๋ฌด์—‡์ด ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ UI๊ฐ€ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๊ฒŒ)

์˜ˆ์‹œ: Sam์ด ๊ณ ๊ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฒ„์ „ 12๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. Priya๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•˜์—ฌ ๋ฒ„์ „์ด 13์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Sam์ด expected_version: 12๋กœ ์ €์žฅํ•˜๋ฉด ์„œ๋ฒ„๋Š” 409๊ณผ ํ•จ๊ป˜ ๋ฒ„์ „ 13์˜ ํ˜„์žฌ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. UI๋Š” Sam์—๊ฒŒ Priya์˜ ๋ณ€๊ฒฝ์„ ๋ฎ์–ด์“ฐ๊ธฐ ์ „์— ๊ฒ€ํ† ํ•˜๋ผ๊ณ  ์•ˆ๋‚ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„: ๋‚™๊ด€์  ์ž ๊ธˆ ์ „์ฒด ๊ตฌํ˜„ ํ๋ฆ„

Connect the essentials quickly
Use pre-built modules like authentication and Stripe payments when your admin tool grows.
Add auth

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

1) ๋™์‹œ์„ฑ ํ•„๋“œ ์ถ”๊ฐ€

๋ชจ๋“  ์“ฐ๊ธฐ์—์„œ ๋ณ€๊ฒฝ๋˜๋Š” ํ•˜๋‚˜์˜ ํ•„๋“œ๋ฅผ ์„ ํƒํ•˜์„ธ์š”.

์ „์šฉ ์ •์ˆ˜ํ˜• version์ด ๊ฐ€์žฅ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. 1๋กœ ์‹œ์ž‘ํ•ด ์—…๋ฐ์ดํŠธ ๋•Œ๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ชจ๋“  ์“ฐ๊ธฐ์—์„œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฐ”๋€Œ๋Š” updated_at ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ(๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…๋„ ํฌํ•จ), ๋งค ์“ฐ๊ธฐ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

2) ์ฝ๊ธฐ ์‹œ ๊ทธ ๊ฐ’์„ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ด๊ธฐ

ํŽธ์ง‘ ํ™”๋ฉด์„ ์—ด ๋•Œ ํ˜„์žฌ version(๋˜๋Š” updated_at)์„ ์‘๋‹ต์— ํฌํ•จ์‹œ์ผœ ํผ ์ƒํƒœ์— ๋ณด๊ด€ํ•˜์„ธ์š”.

์ด ๊ฐ’์€ "๋‚ด๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ฝ์€ ๊ฒƒ"์ด๋ผ๋Š” ์˜์ˆ˜์ฆ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

3) ์—…๋ฐ์ดํŠธ ์‹œ ๊ทธ ๊ฐ’์„ ํ•„์ˆ˜๋กœ ์š”๊ตฌํ•˜๊ธฐ

์ €์žฅํ•  ๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” ํŽธ์ง‘๋œ ํ•„๋“œ์™€ ๋งˆ์ง€๋ง‰ ๋ณธ ๋™์‹œ์„ฑ ๊ฐ’์„ ํ•จ๊ป˜ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์„œ๋ฒ„์—์„œ๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ์กฐ๊ฑด๋ถ€๋กœ ๋งŒ๋“œ์„ธ์š”. SQL ๊ด€์ ์—์„œ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

UPDATE tickets
SET status = $1,
    version = version + 1
WHERE id = $2
  AND version = $3;

์—…๋ฐ์ดํŠธ๊ฐ€ 1ํ–‰์„ ๊ฑด๋“œ๋ ธ๋‹ค๋ฉด ์ €์žฅ ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค. 0ํ–‰์ด๋ฉด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๋ฏธ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

4) ์„ฑ๊ณต ์‹œ ์ƒˆ ๊ฐ’ ๋ฐ˜ํ™˜

์„ฑ๊ณต์ ์œผ๋กœ ์ €์žฅ๋˜๋ฉด ์ƒˆ version(๋˜๋Š” ์ƒˆ updated_at)์ด ํฌํ•จ๋œ ์—…๋ฐ์ดํŠธ๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ ๋ฐ˜ํ™˜ํ•œ ๊ฐ’์œผ๋กœ ํผ ์ƒํƒœ๋ฅผ ๊ต์ฒดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ์˜ค๋ž˜๋œ ๋ฒ„์ „์œผ๋กœ ์ด์ค‘ ์ €์žฅํ•˜๋Š” ์ผ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5) ์ถฉ๋Œ์„ ์ •์ƒ์ ์ธ ๊ฒฐ๊ณผ๋กœ ์ทจ๊ธ‰ํ•˜๊ธฐ

์กฐ๊ฑด๋ถ€ ์—…๋ฐ์ดํŠธ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋ช…ํ™•ํ•œ ์ถฉ๋Œ ์‘๋‹ต(๋ณดํ†ต HTTP 409)์„ ๋ณด๋‚ด๊ณ  ๋‹ค์Œ์„ ํฌํ•จํ•˜์„ธ์š”:

  • ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ์ตœ์‹  ์„œ๋ฒ„ ๋ ˆ์ฝ”๋“œ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‹œ๋„ํ•œ ๋ณ€๊ฒฝ(๋˜๋Š” ์žฌ๊ตฌ์„ฑ์— ์ถฉ๋ถ„ํ•œ ์ •๋ณด)
  • ๊ฐ€๋Šฅํ•˜๋ฉด ์–ด๋–ค ํ•„๋“œ๊ฐ€ ๋‹ค๋ฅธ์ง€ ํ‘œ์‹œ

AppMaster์—์„œ๋Š” ์ด ํ๋ฆ„์ด PostgreSQL ๋ชจ๋ธ ํ•„๋“œ, ์ฝ๊ธฐ ์—”๋“œํฌ์ธํŠธ์—์„œ ๋ฒ„์ „์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋‹จ๊ณ„, ๊ทธ๋ฆฌ๊ณ  ์กฐ๊ฑด๋ถ€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ด ์„ฑ๊ณต ๋˜๋Š” ์ถฉ๋Œ ๋ถ„๊ธฐ๋กœ ๋‚˜๋‰˜๋Š” Business Process์— ๊น”๋”ํ•˜๊ฒŒ ๋งž์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์„ฑ๊ฐ€์‹œ์ง€ ์•Š๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” UI ํŒจํ„ด

Make conflicts a normal path
Use conditional updates in Business Processes to return clean 409 conflict handling.
Build workflow

๋‚™๊ด€์  ์ž ๊ธˆ์€ ์ ˆ๋ฐ˜์˜ ์ผ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ์ ˆ๋ฐ˜์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ €์žฅ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์„ ๋•Œ ๋ณด๊ฒŒ ๋˜๋Š” ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.

์ข‹์€ ์ถฉ๋Œ UI์˜ ๋ชฉํ‘œ๋Š” ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค: ๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ๋ง‰๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ๋งˆ์น  ์ˆ˜ ์žˆ๊ฒŒ ๋•๋Š” ๊ฒƒ. ์ž˜ํ•˜๋ฉด ๋ฐฉ์–ด์„  ๊ฐ™์ง€ ์•Š๊ณ  ๋„์›€์ด ๋˜๋Š” ๊ฐ€๋“œ๋ ˆ์ผ์ฒ˜๋Ÿผ ๋А๊ปด์ง‘๋‹ˆ๋‹ค.

ํŒจํ„ด 1: ๋‹จ์ˆœ ์ฐจ๋‹จ ๋Œ€ํ™”์ƒ์ž(๊ฐ€์žฅ ๋น ๋ฆ„)

ํŽธ์ง‘์ด ์ž‘๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ์ ์šฉํ•˜๊ธฐ ์‰ฌ์šธ ๋•Œ ์”๋‹ˆ๋‹ค.

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

  • ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์™€์„œ ๊ณ„์†ํ•˜๊ธฐ(์ฃผ ๋ฒ„ํŠผ)
  • ๋‚ด ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณต์‚ฌ(์„ ํƒ์ ์ด์ง€๋งŒ ์œ ์šฉ)

"๋‚ด ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณต์‚ฌ"๋Š” ๋ฏธ์ €์žฅ ๊ฐ’์„ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์žฌ๋กœ๋“œ ํ›„์—๋„ ํผ์— ๋ณด๊ด€ํ•ด ์žฌ์ž…๋ ฅ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.

๋‹จ์ผ ํ•„๋“œ ์—…๋ฐ์ดํŠธ, ํ† ๊ธ€, ์ƒํƒœ ๋ณ€๊ฒฝ, ์งง์€ ๋ฉ”๋ชจ ๋“ฑ์— ์ž˜ ๋งž๊ณ  ๊ตฌํ˜„๋„ ์‰ฝ์Šต๋‹ˆ๋‹ค(์˜ˆ: AppMaster ๊ธฐ๋ฐ˜ ๊ด€๋ฆฌ์ž ํ™”๋ฉด).

ํŒจํ„ด 2: "๋ณ€๊ฒฝ์‚ฌํ•ญ ๊ฒ€ํ† "(๊ฐ€์น˜๊ฐ€ ํฐ ๋ ˆ์ฝ”๋“œ์— ์ตœ์ )

๋ ˆ์ฝ”๋“œ๊ฐ€ ์ค‘์š”ํ•˜๊ฑฐ๋‚˜ ํผ์ด ๊ธธ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ฐ€๊ฒฉ, ๊ถŒํ•œ, ์ •์‚ฐ ๋“ฑ). ๋‹จ์ˆœํ•œ ์—๋Ÿฌ ํ™”๋ฉด ๋Œ€์‹  ์ถฉ๋Œ ํ™”๋ฉด์œผ๋กœ ๋ณด๋‚ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น„๊ต๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค:

  • "๋‹น์‹ ์˜ ํŽธ์ง‘"(์‹œ๋„ํ•œ ๋ณ€๊ฒฝ)
  • "ํ˜„์žฌ ๊ฐ’"(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ตœ์‹  ๊ฐ’)
  • "์—ด์—ˆ์„ ๋•Œ์™€ ๋‹ฌ๋ผ์ง„ ํ•ญ๋ชฉ"(์ถฉ๋Œํ•œ ํ•„๋“œ)

ํ•ต์‹ฌ๋งŒ ๋ณด์—ฌ ์ฃผ์„ธ์š”. ์„ธ ํ•„๋“œ๋งŒ ์ถฉ๋Œํ–ˆ๋‹ค๋ฉด ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋ณด์—ฌ์ค„ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œํ•œ ๊ฐ ํ•„๋“œ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ์„ ํƒ์„ ์ œ๊ณตํ•˜์„ธ์š”:

  • ๋‚ด ๊ฒƒ ์œ ์ง€
  • ์ƒ๋Œ€์˜ ๊ฒƒ ์ฑ„ํƒ
  • ๋ณ‘ํ•ฉ(ํƒœ๊ทธ๋‚˜ ๋ฉ”๋ชจ์ฒ˜๋Ÿผ ์˜๋ฏธ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ)

๋ณ‘ํ•ฉ์„ ์ง€์›ํ•˜๋ฉด ๋ฆฌ์น˜ ํ…์ŠคํŠธ๋‚˜ ๊ธด ๋ฉ”๋ชจ์˜ ๊ฒฝ์šฐ ์ž‘์€ diff ๋ทฐ(์ถ”๊ฐ€/์‚ญ์ œ ํ‘œ์‹œ)๋ฅผ ๋ณด์—ฌ์ค˜ ๋น ๋ฅด๊ฒŒ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•œ ๋’ค ์ตœ์‹  ๋ฒ„์ „ ๊ฐ’์œผ๋กœ ๋‹ค์‹œ ์ €์žฅํ•˜์„ธ์š”.

๊ฐ•์ œ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ํ—ˆ์šฉํ•  ๋•Œ(๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ตฌ์—๊ฒŒ ํ—ˆ์šฉํ• ์ง€)

๊ฐ€๋”์€ ๊ฐ•์ œ ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ๋“œ๋ฌผ๊ณ  ํ†ต์ œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉํ•œ๋‹ค๋ฉด ์˜๋„์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: ๊ฐ„๋‹จํ•œ ์ด์œ ๋ฅผ ์š”๊ตฌํ•˜๊ณ  ๋ณ€๊ฒฝ์„ ๊ธฐ๋กํ•˜๋ฉฐ ๊ด€๋ฆฌ์ž๋‚˜ ๊ฐ๋…์ž ๊ฐ™์€ ์—ญํ• ๋กœ ์ œํ•œํ•˜์„ธ์š”.

์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ "๋ณ€๊ฒฝ ๊ฒ€ํ† "๋ฅผ ๊ถŒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์ œ ๋ฎ์–ด์“ฐ๊ธฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ ˆ์ฝ”๋“œ ์†Œ์œ ์ž์ด๊ฑฐ๋‚˜ ์œ„ํ—˜์ด ๋‚ฎ๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ์ด ๊ฐ๋… ํ•˜์— ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์น˜๋Š” ๊ฒฝ์šฐ์— ๋ฐฉ์–ด ๊ฐ€๋Šฅํ•œ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

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

๋‘ ์ƒ๋‹ด์› Maya์™€ Jordan์ด ๊ฐ™์€ ๊ณ ๊ฐ ํ”„๋กœํ•„์„ ์—ด์–ด ๊ฐ๊ฐ ํ†ตํ™” ํ›„ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋ฉ”๋ชจ๋ฅผ ๋‚จ๊ธฐ๋ ค ํ•ฉ๋‹ˆ๋‹ค.

ํƒ€์ž„๋ผ์ธ(๋‚™๊ด€์  ์ž ๊ธˆ์ด version ํ•„๋“œ ๋˜๋Š” updated_at ๊ฒ€์‚ฌ๋กœ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ):

  • 10:02 - Maya๊ฐ€ ๊ณ ๊ฐ #4821์„ ์—ฝ๋‹ˆ๋‹ค. ํผ์—๋Š” Status = "Needs follow-up", Notes = "Called yesterday", Version = 7์ด ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
  • 10:03 - Jordan๋„ ๊ฐ™์€ ๊ณ ๊ฐ์„ ์—ด์–ด ๋™์ผํ•œ ๊ฐ’๊ณผ Version = 7์„ ๋ด…๋‹ˆ๋‹ค.
  • 10:05 - Maya๊ฐ€ Status๋ฅผ "Resolved"๋กœ ๋ฐ”๊พธ๊ณ  ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋’ค ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • 10:05 - ์„œ๋ฒ„๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  Version์„ 8๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ๊ฐ์‚ฌ ๋กœ๊ทธ์— ๋ˆ„๊ฐ€ ์–ธ์ œ ๋ฌด์—‡์„ ๋ฐ”๊ฟจ๋Š”์ง€ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
  • 10:09 - Jordan์ด ๋‹ค๋ฅธ ๋ฉ”๋ชจ("Customer asked for a receipt")๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

์ถฉ๋Œ ๊ฒ€์‚ฌ๊ฐ€ ์—†๋‹ค๋ฉด Jordan์˜ ์ €์žฅ์€ Maya์˜ ์ƒํƒœ์™€ ๋ฉ”๋ชจ๋ฅผ ์กฐ์šฉํžˆ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚™๊ด€์  ์ž ๊ธˆ์ด ์žˆ์œผ๋ฉด Jordan์˜ ์—…๋ฐ์ดํŠธ๋Š” Version = 7์„ ์‹œ๋„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๋ถ€๋˜๊ณ  ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Jordan์€ ๋ช…ํ™•ํ•œ ์ถฉ๋Œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ด…๋‹ˆ๋‹ค. UI๋Š” ๋ฐœ์ƒํ•œ ์ผ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์•ˆ์ „ํ•œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค:

  • ์ตœ์‹  ๋ ˆ์ฝ”๋“œ๋กœ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ(๋‚ด ํŽธ์ง‘ ๋ฒ„๋ฆฌ๊ธฐ)
  • ๋‚ด ๋ณ€๊ฒฝ์„ ์ตœ์‹  ๋ ˆ์ฝ”๋“œ ์œ„์— ์ ์šฉํ•˜๊ธฐ(๊ฐ€๋Šฅํ•˜๋ฉด ๊ถŒ์žฅ)
  • ์ฐจ์ด ๊ฒ€ํ† ("๋‚ด ๊ฒƒ" vs "์ตœ์‹ ") ํ›„ ์œ ์ง€ํ•  ๊ฒƒ ์„ ํƒํ•˜๊ธฐ

๊ฐ„๋‹จํ•œ ํ™”๋ฉด์— ๋‹ค์Œ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • "์ด ๊ณ ๊ฐ์€ 10:05์— Maya๊ฐ€ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค"
  • ๋ณ€๊ฒฝ๋œ ํ•„๋“œ(Status์™€ Notes)
  • Jordan์ด ์ž…๋ ฅํ•œ ๋ฏธ์ €์žฅ ๋ฉ”๋ชจ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

Jordan์€ "์ฐจ์ด ๊ฒ€ํ† "๋ฅผ ์„ ํƒํ•ด Maya์˜ Status = "Resolved"๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์ž์‹ ์˜ ๋ฉ”๋ชจ๋ฅผ ๊ธฐ์กด ๋ฉ”๋ชจ์— ๋ง๋ถ™์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” Version = 8๋กœ ์ €์žฅํ•ด ์„ฑ๊ณตํ•˜๊ณ (ํ˜„์žฌ Version = 9) ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

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

๋ฐ์ดํ„ฐ ์†์‹ค์„ ์—ฌ์ „ํžˆ ์ดˆ๋ž˜ํ•˜๋Š” ํ”ํ•œ ์‹ค์ˆ˜

Make data edits reliable
Build internal tools your team can trust, even with many editors and busy queues.
Start in AppMaster

๋Œ€๋ถ€๋ถ„์˜ "๋‚™๊ด€์  ์ž ๊ธˆ" ๋ฒ„๊ทธ๋Š” ์•„์ด๋””์–ด ์ž์ฒด์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. UI, API, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์ด์˜ ์ธ์ˆ˜์ธ๊ณ„ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋А ํ•œ ๋ ˆ์ด์–ด๊ฐ€ ๊ทœ์น™์„ ์žŠ์œผ๋ฉด ์—ฌ์ „ํžˆ ๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ฐ€์žฅ ๋งŽ์€ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ์ผ์œผํ‚ค๋Š” ํŒจํ„ด:

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

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

์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ API ์‘๋‹ต์ด ๋„ˆ๋ฌด ๋นˆ์•ฝํ•˜๋ฉด ํŒ€์€ ์—ฌ์ „ํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ "409 Conflict"๋งŒ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋งˆ์„ธ์š”. ์‚ฌ๋žŒ์ด ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ์ฃผ์„ธ์š”:

  • ํ˜„์žฌ ์„œ๋ฒ„ ๋ฒ„์ „(๋˜๋Š” updated_at)
  • ๊ด€๋ จ ํ•„๋“œ์˜ ์ตœ์‹  ์„œ๋ฒ„ ๊ฐ’
  • ์ฐจ์ด ๋‚˜๋Š” ํ•„๋“œ ๋ชฉ๋ก(๊ฐ„๋‹จํ•œ ํ•„๋“œ๋ช…์ด๋ผ๋„)
  • ๋ˆ„๊ฐ€ ์–ธ์ œ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€(์ถ”์ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด)

AppMaster์—์„œ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ๊ฐ™์€ ๊ทœ์œจ์„ ์ ์šฉํ•˜์„ธ์š”: UI ์ƒํƒœ์— ๋ฒ„์ „์„ ๋ณด๊ด€ํ•˜๊ณ , ์—…๋ฐ์ดํŠธ ์‹œ ๊ทธ๊ฒƒ์„ ์ „์†กํ•˜๋ฉฐ, PostgreSQL์— ์“ฐ๊ธฐ ์ „์— ๋ฐฑ์—”๋“œ ๋กœ์ง ์•ˆ์—์„œ ์ฒดํฌ๋ฅผ ๊ฐ•์ œํ•˜์„ธ์š”.

๋ฐฐํฌ ์ „ ๋น ๋ฅธ ์ ๊ฒ€ ๋ชฉ๋ก

Avoid technical debt later
Create APIs and business logic visually, then regenerate clean code as requirements change.
Build backend

์ถœ์‹œ ์ „์— "์ €์žฅ์€ ์ •์ƒ์ด๋ผ ๋‚˜์˜ค๋Š”๋ฐ ๋ˆ„๊ตฐ๊ฐ€์˜ ์ž‘์—…์„ ์กฐ์šฉํžˆ ๋ฎ์–ด์“ฐ๋Š”" ์‹คํŒจ ๋ชจ๋“œ๋ฅผ ์ ๊ฒ€ํ•˜์„ธ์š”.

๋ฐ์ดํ„ฐ ๋ฐ API ์ ๊ฒ€

๋ ˆ์ฝ”๋“œ๊ฐ€ ์‹œ์ž‘๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋™์‹œ์„ฑ ํ† ํฐ์„ ์ง€๋‹ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ํ† ํฐ์€ version ์ •์ˆ˜๋‚˜ updated_at ํƒ€์ž„์Šคํƒฌํ”„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ ˆ์ฝ”๋“œ์˜ ์ผ๋ถ€๋กœ ์ทจ๊ธ‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

AppMaster๋กœ ๋งŒ๋“ ๋‹ค๋ฉด Data Designer์— ํ•„๋“œ(version ๋˜๋Š” updated_at)๊ฐ€ ์žˆ๋Š”์ง€, Business Process์˜ ์—…๋ฐ์ดํŠธ ํ๋ฆ„์ด ์ €์žฅ ์ „์— ๋น„๊ตํ•˜๋Š”์ง€ ๋‹ค์‹œ ํ™•์ธํ•˜์„ธ์š”.

UI ์ ๊ฒ€

์„œ๋ฒ„๊ฐ€ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฑฐ๋ถ€ํ–ˆ์„ ๋•Œ ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ ๋ช…ํ™•ํ•ด์•ผ ์ถฉ๋Œ์ด "์•ˆ์ „"ํ•ฉ๋‹ˆ๋‹ค.

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

ํ•„์š”ํ•˜๋‹ค๋ฉด ํ†ต์ œ๋œ "๊ฐ•์ œ ์ €์žฅ" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์—ญํ• ๋กœ ๊ฒŒ์ดํŠธํ•˜๊ณ  ํ™•์ธ์„ ์š”๊ตฌํ•˜๋ฉฐ ๋ˆ„๊ฐ€ ๊ฐ•์ œ ์ €์žฅํ–ˆ๋Š”์ง€ ๊ธฐ๋กํ•˜๋ฉด ๋น„์ƒ ์ƒํ™ฉ์€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋งŒ๋“ค์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„: ํ•˜๋‚˜์˜ ์›Œํฌํ”Œ๋กœ๋ถ€ํ„ฐ ์ž ๊ธˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ™•์žฅํ•˜์„ธ์š”

์ž‘๊ฒŒ ์‹œ์ž‘ํ•˜์„ธ์š”. ์‚ฌ๋žŒ๋“ค์ด ์ž์ฃผ ์ถฉ๋Œํ•˜๋Š” ๊ด€๋ฆฌ์ž ํ™”๋ฉด ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ ์šฐ์„  ๋‚™๊ด€์  ์ž ๊ธˆ์„ ์ ์šฉํ•˜์„ธ์š”. ์ถฉ๋Œ์ด ์žฆ์€ ์˜์—ญ์€ ๋ณดํ†ต ํ‹ฐ์ผ“, ์ฃผ๋ฌธ, ๊ฐ€๊ฒฉ, ์žฌ๊ณ ์ž…๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ๋ฐ”์œ ํ™”๋ฉด์—์„œ ์ถฉ๋Œ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋‹ค๋ฅธ ๊ณณ์—๋„ ๊ฐ™์€ ํŒจํ„ด์„ ๋ฐ˜๋ณตํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ถฉ๋Œ ๋™์ž‘์„ ๋ฏธ๋ฆฌ ๊ฒฐ์ •ํ•˜์„ธ์š”. ๋ฐฑ์—”๋“œ ๋กœ์ง๊ณผ UI๋ฅผ ๋ชจ๋‘ ๊ทœ์ •ํ•˜๋ฏ€๋กœ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค:

  • ์ฐจ๋‹จ ํ›„ ์žฌ๋กœ๋“œ(Block-and-reload): ์ €์žฅ์„ ์ค‘๋‹จํ•˜๊ณ  ์ตœ์‹  ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝ์„ ๋‹ค์‹œ ์ ์šฉํ•˜๊ฒŒ ํ•จ.
  • ๊ฒ€ํ†  ๋ฐ ๋ณ‘ํ•ฉ(Review-and-merge): "๋‚ด ๋ณ€๊ฒฝ"๊ณผ "์ตœ์‹ "์„ ๋ณด์—ฌ์ฃผ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์—‡์„ ์œ ์ง€ํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ฒŒ ํ•จ.

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

๊ทธ๋‹ค์Œ ํ•œ ํ๋ฆ„ ์ „์ฒด๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•œ ๋’ค ํ™•์žฅํ•˜์„ธ์š”:

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

์ถฉ๋Œ ๋กœ๊ทธ๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋‚จ๊ธฐ์„ธ์š”. ๊ฐ„๋‹จํ•œ "์ถฉ๋Œ ๋ฐœ์ƒ" ์ด๋ฒคํŠธ(๋ ˆ์ฝ”๋“œ ์œ ํ˜•, ํ™”๋ฉด ์ด๋ฆ„, ์‚ฌ์šฉ์ž ์—ญํ•  ํฌํ•จ)๋งŒ ์žˆ์–ด๋„ ํ•ซ์ŠคํŒŸ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

AppMaster๋กœ ๊ด€๋ฆฌ์ž ๋„๊ตฌ๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด ์ฃผ์š” ์š”์†Œ๋“ค์ด ์ž˜ ๋งž์Šต๋‹ˆ๋‹ค: Data Designer์— version ํ•„๋“œ๋ฅผ ๋ชจ๋ธ๋งํ•˜๊ณ , Business Processes์—์„œ ์กฐ๊ฑด๋ถ€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ ์šฉํ•˜๋ฉฐ, UI ๋นŒ๋”์— ์ž‘์€ ์ถฉ๋Œ ๋Œ€ํ™”์ƒ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์ฒซ ๋ฒˆ์งธ ์›Œํฌํ”Œ๋กœ๊ฐ€ ์•ˆ์ •ํ™”๋˜๋ฉด ๊ฐ™์€ ํŒจํ„ด์„ ํ™”๋ฉด๋งˆ๋‹ค ๋ฐ˜๋ณตํ•˜๊ณ  ์ถฉ๋Œ UI๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ๋ฒˆ ๋ฐฐ์šฐ๋ฉด ์–ด๋””์„œ๋‚˜ ์‹ ๋ขฐํ•˜๊ฒŒ ๋งŒ๋“œ์„ธ์š”.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ๋ฐœ์ƒํ•˜๋‚˜์š”?

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

๋‚™๊ด€์  ์ž ๊ธˆ์€ ๊ฐ„๋‹จํžˆ ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?

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

๋ ˆ์ฝ”๋“œ๋ฅผ ์ž ๊ทธ๋ฉด ์•ˆ ๋˜๋‚˜์š”?

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

์ถฉ๋Œ ๊ฒ€์‚ฌ์— ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๋‚˜์š”, ์•„๋‹ˆ๋ฉด updated_at์„ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๋‚˜์š”?

์ผ๋ฐ˜์ ์œผ๋กœ๋Š” version ์ •์ˆ˜ ์ปฌ๋Ÿผ์ด ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ž„์Šคํƒฌํ”„์ธ updated_at๋„ ์“ธ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ์ •๋ฐ€๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ ๊ฐ„ ์‹œ๊ณ„ ์ฐจ์ด๋กœ ๋น ๋ฅธ ํŽธ์ง‘์„ ๋†“์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚™๊ด€์  ์ž ๊ธˆ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋‚˜์š”?

์„œ๋ฒ„๊ฐ€ ์ œ์–ดํ•˜๋Š” ๋™์‹œ์„ฑ ํ† ํฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต version(์ •์ˆ˜)์ด๋‚˜ updated_at(ํƒ€์ž„์Šคํƒฌํ”„)์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ํผ์„ ์—ด ๋•Œ ์ด ๊ฐ’์„ ์ฝ์–ด ํŽธ์ง‘ ๋™์•ˆ ๊ทธ๋Œ€๋กœ ๋ณด๊ด€ํ•˜๊ณ , ์ €์žฅ ์‹œ "๊ธฐ๋Œ€๊ฐ’"์œผ๋กœ ํ•จ๊ป˜ ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์™œ ๋ฒ„์ „ ๊ฒ€์‚ฌ๋ฅผ ์„œ๋ฒ„์—์„œ ํ•ด์•ผ ํ•˜๋‚˜์š”, ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ํ•˜๋ฉด ์•ˆ ๋˜๋‚˜์š”?

ํด๋ผ์ด์–ธํŠธ๋งŒ์œผ๋กœ๋Š” ๊ณต์œ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” id์™€ version์„ ํ•จ๊ป˜ ๊ฒ€์‚ฌํ•˜๋Š” ์กฐ๊ฑด๋ถ€ ์—…๋ฐ์ดํŠธ(์˜ˆ: "id + version"์œผ๋กœ WHERE)๋ฅผ ๊ฐ•์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋‚˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์ด ์—ฌ์ „ํžˆ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌด์—‡์„ ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋‚˜์š”?

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

์ถฉ๋Œ ์‹œ API๋Š” ๋ฌด์—‡์„ ๋ฐ˜ํ™˜ํ•ด์•ผ UI๊ฐ€ ๋ณต๊ตฌํ•˜๊ธฐ ์‰ฌ์šด๊ฐ€์š”?

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

๋ฐ์ดํ„ฐ ์†์‹ค์„ ์•ผ๊ธฐํ•˜๋Š” ๊ฐ€์žฅ ํ”ํ•œ ์‹ค์ˆ˜๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

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

AppMaster์—์„œ ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋‚˜์š”(์ปค์Šคํ…€ ์ฝ”๋”ฉ ์—†์ด)?

AppMaster์—์„œ๋Š” Data Designer์— version ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ํผ ์ƒํƒœ๋กœ ์ฝ์–ด ๋“ค์ด๊ณ , Business Process์—์„œ ์กฐ๊ฑด๋ถ€ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฐ•์ œํ•œ ๋’ค UI์—์„œ ์ถฉ๋Œ ๋ถ„๊ธฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์—†์ด๋„ ๊ฐ™์€ ํŒจํ„ด์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์‹œ์ž‘ํ•˜๋‹ค
๊ด€๋ฆฌ์ž ๋„๊ตฌ๋ฅผ ์œ„ํ•œ ๋‚™๊ด€์  ์ž ๊ธˆ: ๋ฌด์Œ ๋ฎ์–ด์“ฐ๊ธฐ ๋ฐฉ์ง€ | AppMaster