2023๋…„ 9์›” 27์ผยท4๋ถ„ ์ฝ๊ธฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ง„ํ™”: RDBMS์˜ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ

RDBMS์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋ฐœ์ „์„ ์‚ดํŽด๋ณด๊ณ  ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌ, ์กฐ์ • ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ, ์ „๋žต ๋ฐ ๋„๊ตฌ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ง„ํ™”: RDBMS์˜ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ

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

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

์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ์˜ ๊ณผ์ œ

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

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋ฐœ์ „์„ ์œ„ํ•œ ์ „๋žต

์ž…์ฆ๋œ ์ „๋žต์„ ์ ์ ˆํ•˜๊ฒŒ ๊ณ„ํšํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋ฐœ์ „๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ์ธ๊ธฐ ์žˆ๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

  1. ๋ฒ„์ „ ๊ด€๋ฆฌ: ๊ฐ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํ•˜๋ฉด ์ถ”์ ์ด ๋” ์ž˜๋˜๊ณ  ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ ๊ฐ„์˜ ์กฐ์ •์ด ๋‹จ์ˆœํ™”๋˜๋ฉฐ ํ•„์š”ํ•  ๋•Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋” ์‰ฝ๊ฒŒ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ์€ ์Šคํ‚ค๋งˆ ๋ฒ„์ „ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์—ญ๋ฐฉํ–ฅ ๋ฐ ์ˆœ๋ฐฉํ–ฅ ํ˜ธํ™˜ ๋ณ€๊ฒฝ: ๊ฐ€๋Šฅํ•  ๋•Œ๋งˆ๋‹ค ์—ญ๋ฐฉํ–ฅ ๋ฐ ์ˆœ๋ฐฉํ–ฅ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•œ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ, ์ฆ‰ ๊ธฐ์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ๋ณ€๊ฒฝ์˜ ์˜ˆ๋กœ๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ์ƒˆ ํ…Œ์ด๋ธ” ๋˜๋Š” ์—ด ์ถ”๊ฐ€, ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์—ด์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜• ์—…๋ฐ์ดํŠธ, ์ƒˆ ์ธ๋ฑ์Šค ์ƒ์„ฑ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ: ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ๋˜๋Œ๋ฆฌ๋Š” ๋ฐ ํ•„์š”ํ•œ SQL ๋ช…๋ น์ด ํฌํ•จ๋œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฉฑ๋“ฑ์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ตœ์ข… ์ƒํƒœ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ์€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋„๊ตฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉ: ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ž๋™ํ™”ํ•˜๋Š” ๋„๊ตฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ฑ„ํƒํ•˜๋ฉด ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒํ•˜๊ณ  ์ˆ˜๋™ ์—…๋ฐ์ดํŠธ์™€ ๊ด€๋ จ๋œ ์œ„ํ—˜์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋กœ๋Š” Flyway, Liquibase ๋ฐ Alembic์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ํ…Œ์ŠคํŠธ ๋ฐ ๊ฒ€์ฆ: ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ”„๋กœ๋•์…˜์— ์ ์šฉํ•˜๊ธฐ ์ „์— ํ†ต์ œ๋œ ๊ฐœ๋ฐœ ๋˜๋Š” ์ค€๋น„ ํ™˜๊ฒฝ์—์„œ ์ฒ ์ €ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์Šคํ‚ค๋งˆ ์—…๋ฐ์ดํŠธ์˜ ์˜ํ–ฅ์„ ์‹๋ณ„ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

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

๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์˜ ์—ญํ• 

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

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

Git, SVN ๋˜๋Š” Mercurial๊ณผ ๊ฐ™์ด ๋‹จ์ˆœ์„ฑ, ํ™•์žฅ์„ฑ ๋ฐ ์œ ์—ฐ์„ฑ์ด ์ž˜ ์กฐํ•ฉ๋œ VCS๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ์‹œ์Šคํ…œ์— ๊ด€๊ณ„์—†์ด ํŒ€์€ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ถ„๊ธฐ, ๋ณ‘ํ•ฉ ๋ฐ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ์›Œํฌํ”Œ๋กœ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„๊ตฌ ๋ฐ ์ ‘๊ทผ ๋ฐฉ์‹

๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜์„ธ์š”
๋น„์ฃผ์–ผ ์—๋””ํ„ฐ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ž‘์„ฑํ•ด ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ๊ณผ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ผ์น˜์‹œํ‚ค์„ธ์š”.
AppMaster ์ฒดํ—˜ํ•˜๊ธฐ

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

  • Flyway: Flyway๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํ†ตํ•ฉ๋˜๋Š” ๊ฒฝ๋Ÿ‰ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „์ด ์ง€์ •๋œ SQL ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  MySQL, PostgreSQL , Oracle ๋ฐ SQL Server์™€ ๊ฐ™์€ ๊ด‘๋ฒ”์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • Liquibase: Liquibase๋Š” XML, YAML ๋˜๋Š” JSON ์ •์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜คํ”ˆ ์†Œ์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํ†ตํ•ฉ๋˜์–ด SQL ๊ธฐ๋ฐ˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„๊ตฌ๋ณด๋‹ค ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Alembic: SQLAlchemy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Python ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ Alembic์€ ๋ฒ„์ „์ด ์ง€์ •๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์„ ๊ตฌํ˜„ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Alembic์€ ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  MySQL, PostgreSQL, SQLite์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ •์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ: ํŠน์ˆ˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ์‚ฌ์šฉ์ž ์ •์˜ SQL ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๊ณ  ์†Œ์Šค ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ €์žฅํ•˜์—ฌ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

  • ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ ๊ทœ์น™ ์ •์˜
  • ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ ์ด๋ฆ„ ์ง€์ • ๋ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ง€์นจ ์„ค์ •
  • ๊ฐˆ๋“ฑ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํŒ€์› ๊ฐ„ ์กฐ์ •
  • ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ๋ณ„๋„์˜ ํ™˜๊ฒฝ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ ํ…Œ์ŠคํŠธ
  • ์ž˜๋ชป๋œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ๋กค๋ฐฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ตฌํ˜„

์‚ฌ๋ก€ ์—ฐ๊ตฌ: AppMaster ์˜ ๋™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ฒญ์‚ฌ์ง„

AppMaster ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๋Š” drag-and-drop ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์Šคํ‚ค๋งˆ ์—…๋ฐ์ดํŠธ์˜ ์œ ์—ฐ์„ฑ์„ ๋ณด์žฅํ•˜๋ฉด์„œ ์ง์ ‘ ์Šคํ‚ค๋งˆ ์กฐ์ž‘์˜ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๋ณต์žก์„ฑ์„ ์ถ”์ƒํ™”ํ•ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž๋™ ์ƒ์„ฑ

AppMaster 30์ดˆ ์ด๋‚ด์— ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ์—…๋ฐ์ดํŠธ๋œ ์Šคํ‚ค๋งˆ ์ฒญ์‚ฌ์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜์—ฌ ๊ธฐ์ˆ ์  ๋ถ€์ฑ„๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

API ๋ฌธ์„œ ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ

๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด AppMaster ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ์ ์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ endpoints ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” Swagger(๊ฐœ๋ฐฉํ˜• API) ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ƒ์‚ฐ ์ค€๋น„

AppMaster ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฐฑ์—”๋“œ์šฉ Go(golang)์™€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋˜์–ด ๊ธฐ์กด ์ธํ”„๋ผ์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๋•์…˜ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํšจ์œจ์ ์ธ ์ถœ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

๊ฒฐ๋ก 

๋‚ด๋ถ€ ๋„๊ตฌ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“œ์„ธ์š”
๋‹จ์ผ๋กœ ์ง„ํ™”ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์œ„์— ๊ด€๋ฆฌ์ž ํŒจ๋„, ํฌํ„ธ ๋“ฑ ๋‚ด๋ถ€ ๋„๊ตฌ๋ฅผ ๊ตฌ์ถ•ํ•˜์„ธ์š”.
๊ตฌ์ถ• ์‹œ์ž‘

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

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

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

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

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

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ง„ํ™”๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

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

์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์šด ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋ฐœ์ „์„ ์œ„ํ•œ ์ „๋žต์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ์€ ์Šคํ‚ค๋งˆ ๋ฐœ์ „์— ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋‚˜์š”?

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

๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„๊ตฌ์™€ ์ ‘๊ทผ ๋ฐฉ์‹์—๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋‚˜์š”?

๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋„๊ตฌ ๋ฐ ์ ‘๊ทผ ๋ฐฉ์‹์—๋Š” Flyway, Liquibase, Alembic ๋ฐ ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ ์ด๋ฒคํŠธ์— ๋”ฐ๋ผ ์ˆ˜๋™ ๋˜๋Š” ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

AppMaster๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ง„ํ™”๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

AppMaster ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ฒญ์‚ฌ์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” no-code ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์Šคํ‚ค๋งˆ ์ง„ํ™”๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Swagger(๊ฐœ๋ฐฉํ˜• API) ๋ฌธ์„œ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ์ˆ  ๋ถ€์ฑ„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ํšจ์œจ์ ์œผ๋กœ ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

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

์‹œ์ž‘ํ•˜๋‹ค
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ง„ํ™”: RDBMS์˜ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ | AppMaster