์ฒดํฌํฌ์ธํธ๋ก ์์ ํ๊ฒ ์์คํ ์ ๋ง์ถ๋ ์ฆ๋ถ ๋ฐ์ดํฐ ๋๊ธฐํ
์ปค์, ํด์, ์ฌ๊ฐ ํ ํฐ์ ํ์ฉํ ์ฒดํฌํฌ์ธํธ ๊ธฐ๋ฐ ์ฆ๋ถ ๋๊ธฐํ๋ก ์์คํ ์ ์์ ํ๊ฒ ์ ๋ ฌํ๊ณ ๋ถํ์ํ ์ฌ์ํฌํธ๋ฅผ ํผํ์ธ์.

์ ์ฒด ์ฌ์ํฌํธ๊ฐ ๊ณ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์ด์
์ ์ฒด ์ฌ์ํฌํธ๋ ๋จ์ํด ๋ณด์ฌ์ ์์ ํ๋ค๊ณ ๋๊ปด์ง๋๋ค: ์ญ์ , ๋ค์ ๋ก๋, ๋. ํ์ง๋ง ์ค์ ๋ก๋ ๋๋ฆฐ ๋๊ธฐํ, ๋น์ฉ ์ฆ๊ฐ, ์ํจ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฌธ์ ๋ ์๊ฐ๊ณผ ๋น์ฉ์ ๋๋ค. ๋งค๋ฒ ์ ์ฒด ๋ฐ์ดํฐ์ ์ ๊ฐ์ ธ์ค๋ฉด ๊ฐ์ ๋ ์ฝ๋๋ฅผ ๊ณ์ ๋ค์ ๋ค์ด๋ก๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐค๋ง๋ค 50๋ง ๋ช ์ ๊ณ ๊ฐ์ ๋๊ธฐํํ๋ค๋ฉด ๋ณ๊ฒฝ๋ ๋ ์ฝ๋๊ฐ 200๊ฐ๋ฟ์ด์ด๋ ์ปดํจํธ, API ํธ์ถ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ธฐ ๋น์ฉ์ ์ง๋ถํ๊ฒ ๋ฉ๋๋ค.
๋ ๋ฒ์งธ ๋ฌธ์ ๋ ์ ํ์ฑ์ ๋๋ค. ์ ์ฒด ์ฌ์ํฌํธ๋ ๋งค์นญ ๊ท์น์ด ์์ ํ์ง ์์ผ๋ฉด ์ค๋ณต์ ๋ง๋ค๊ฑฐ๋(์: ์ด๋ฉ์ผ ๋์๋ฌธ์, ์ ํ๋ฒํธ ํฌ๋งท ์ฐจ์ด), ๋ด๋ณด๋ธ ๋ฐ์ดํฐ์ ์๋ ์ค๋๋ ๊ฐ์ผ๋ก ์ต์ ์์ ์ ๋ฎ์ด์จ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ๋ง์ ํ์ด "์ญ์ ํ ์ฌ๋ก๋"๊ฐ ์ค๊ฐ์ ์กฐ์ฉํ ์คํจํ๋ฉด์ ํฉ๊ณ๊ฐ ์๊ฐ์ด ์ง๋๋ฉฐ ๋ฌ๋ผ์ง๋ ๊ฒ์ ๋ณด๊ธฐ๋ ํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ์ฆ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์คํ ํ ์์คํ ๊ฐ ์นด์ดํธ๊ฐ ์ผ์นํ์ง ์์
- ์์ ์ฐจ์ด(์ด๋ฉ์ผ ๋์๋ฌธ์, ์ ํ ํฌ๋งท)๋ก ๋ ์ฝ๋๊ฐ ๋ ๋ฒ ๋ํ๋จ
- ์ต๊ทผ์ ์ ๋ฐ์ดํธ๋ ํ๋๊ฐ ์ค๋๋ ๊ฐ์ผ๋ก ๋๋์๊ฐ
- ๋๊ธฐํ๊ฐ "์๋ฃ"๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ฐ์ดํฐ ์ผ๋ถ๋ฅผ ๋์นจ
- ์ํฌํธ ์ฐฝ ์ดํ๋ก ๊ณ ๊ฐ์ง์ ํฐ์ผ์ด ๊ธ์ฆ
์ฒดํฌํฌ์ธํธ๋ ๋จ์ํ "์ฌ๊ธฐ๊น์ง ์ฒ๋ฆฌํ๋ค"๋ผ๊ณ ์ ์ฅํ ์์ ๋ง์ปค์ ๋๋ค. ๋ค์ ๋ฒ์๋ ๊ทธ ๋ง์ปค๋ถํฐ ๊ณ์ํ๋ฉด ๋ฉ๋๋ค. ๋ง์ปค๋ ํ์์คํฌํ, ๋ ์ฝ๋ ID, ๋ฒ์ ๋ฒํธ, API๊ฐ ๋ฐํํ ํ ํฐ ๋ฑ์ผ ์ ์์ต๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก ๋ ์์คํ ์ ์ ๋ ฌ ์ํ๋ก ์ ์งํ๋ ๊ฒ์ด ๋ชฉํ๋ผ๋ฉด, ์ฒดํฌํฌ์ธํธ๋ฅผ ์ฌ์ฉํ ์ฆ๋ถ ๋ฐ์ดํฐ ๋๊ธฐํ๊ฐ ๋ณดํต ๋ ๋์ ์ ํ์ ๋๋ค. ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ์ฆ๊ฑฐ๋, ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ด ํฌ๊ฑฐ๋, API์ ์๋ ์ ํ์ด ์๊ฑฐ๋, ์์ ์ด ์ค๊ฐ์ ์คํจํ์ ๋ ์์ ํ๊ฒ ์ฌ๊ฐํด์ผ ํ ๊ฒฝ์ฐ ํนํ ์ ์ฉํฉ๋๋ค (์: AppMaster ๊ฐ์ ํ๋ซํผ์์ ๋ด๋ถ ๋๊ตฌ๋ก ๋ง๋ ์์ ์ด ๋์ค์ ์คํจํ ๋).
๋ฐฉ๋ฒ์ ์ ํํ๊ธฐ ์ ์ ๋๊ธฐํ ๋ชฉํ ์ ์ํ๊ธฐ
์ฒดํฌํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ์ฆ๋ถ ๋๊ธฐํ๋ "์ฌ๋ฐ๋ฆ"์ด ๋ฌด์์ธ์ง ๋ช ํํ ๋ ์ ์๋ํฉ๋๋ค. ์ด๊ฒ์ ๊ฑด๋๋ฐ๊ณ ๋ฐ๋ก ์ปค์๋ ํด์๋ก ๋ฐ์ด๋ค๋ฉด ๊ท์น์ด ๋ฌธ์ํ๋์ง ์์ ๋์ค์ ๋๊ธฐํ๋ฅผ ์ฌ์ค๊ณํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๋จผ์ ์์คํ ์ ๋ช ๋ช ํ๊ณ ๋๊ฐ ์ง์ค์ ์ถ์ฒ์ธ์ง ๊ฒฐ์ ํ์ธ์. ์๋ฅผ ๋ค์ด CRM์ ๊ณ ๊ฐ ์ด๋ฆ๊ณผ ์ ํ๋ฒํธ์ ์์ค ์ค๋ธ ํธ๋ฃจ์ค์ด๊ณ , ์ฒญ๊ตฌ ๋๊ตฌ๋ ๊ตฌ๋ ์ํ์ ์์ค ์ค๋ธ ํธ๋ฃจ์ค์ผ ์ ์์ต๋๋ค. ๋์ผํ ํ๋๋ฅผ ์์ชฝ์์ ์์ ํ ์ ์๋ค๋ฉด ๋จ์ผ ์์ค ์ค๋ธ ํธ๋ฃจ์ค๊ฐ ์์ผ๋ฏ๋ก ์ถฉ๋ ์ฒ๋ฆฌ๋ฅผ ๊ณํํด์ผ ํฉ๋๋ค.
๋ค์์ผ๋ก "์ ๋ ฌ๋ ์ํ"๊ฐ ๋ฌด์์ธ์ง ์ ์ํ์ธ์. ํญ์ ์ ํํ ์ผ์นํด์ผ ํ๋์, ์๋๋ฉด ๋ช ๋ถ ๋ด์ ์ ๋ฐ์ดํธ๊ฐ ๋ฐ์๋๋ฉด ๊ด์ฐฎ๋์? ์ ํํ ์ผ์น๋ ๋ ์๊ฒฉํ ์์ ๋ณด์ฅ, ์ฒดํฌํฌ์ธํธ์ ๋ํ ๊ฐํ ๋ณด์ฅ, ์ญ์ ์ฒ๋ฆฌ์ ๋ ์ ์คํจ์ ์๊ตฌํฉ๋๋ค. ๊ฒฐ๊ตญ ์ผ๊ด์ฑ(eventual consistency)์ ๋ณดํต ๋น์ฉ์ด ์ ๊ฒ ๋ค๊ณ ์ผ์์ ์คํจ์ ๊ด๋ํฉ๋๋ค.
๋๊ธฐํ ๋ฐฉํฅ๋ ๊ฒฐ์ ํ์ธ์. ๋จ๋ฐฉํฅ ๋๊ธฐํ๋ ๋จ์ํฉ๋๋ค: ์์คํ A๊ฐ ์์คํ B๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ๋๋ค. ์๋ฐฉํฅ ๋๊ธฐํ๋ ๋ ์ด๋ ต์ต๋๋ค. ๊ฐ ์ ๋ฐ์ดํธ๊ฐ ์ถฉ๋์ด ๋ ์ ์๊ณ , ์์ชฝ์ด ์๋ก๋ฅผ ๊ณ์ "์์ "ํ๋ ๋์๋ ๋ฃจํ๋ฅผ ํผํด์ผ ํฉ๋๋ค.
๊ตฌ์ถ ์ ์ ๋ตํด์ผ ํ ์ง๋ฌธ๋ค
๋ชจ๋๊ฐ ๋์ํ๋ ๊ฐ๋จํ ๊ท์น์ ๋ฌธ์ํํ์ธ์:
- ๊ฐ ํ๋(๋๋ ์ค๋ธ์ ํธ ์ ํ)์ ๋ํ ์ง์ค์ ์์ค๋ ์ด๋ ์์คํ ์ธ๊ฐ?
- ํ์ฉ ๊ฐ๋ฅํ ์ง์ฐ ์๊ฐ์ ์ผ๋ง์ธ๊ฐ(์ด, ๋ถ, ์๊ฐ)?
- ์ด๊ฒ์ ๋จ๋ฐฉํฅ์ธ๊ฐ ์๋ฐฉํฅ์ธ๊ฐ, ๊ฐ ๋ฐฉํฅ์ผ๋ก ์ด๋ค ์ด๋ฒคํธ๊ฐ ํ๋ฅด๋๊ฐ?
- ์ญ์ ๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๋๊ฐ(ํ๋ ์ญ์ , ์ํํธ ์ญ์ , ํฐ์คํค)?
- ์์ชฝ์์ ๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ ๋ ์ด๋ป๊ฒ ๋๋๊ฐ?
์ค์ฉ์ ์ธ ์ถฉ๋ ๊ท์น์ "๊ตฌ๋ ํ๋๋ billing ์ฐ์ , ์ฐ๋ฝ์ฒ ํ๋๋ CRM ์ฐ์ , ๊ทธ ์ธ์๋ ์ต์ ์ ๋ฐ์ดํธ ์ฐ์ "์ฒ๋ผ ๊ฐ๋จํ ์ ์์ต๋๋ค. AppMaster ๊ฐ์ ๋๊ตฌ๋ก ํตํฉ์ ๊ตฌ์ถํ๋ค๋ฉด ์ด๋ฌํ ๊ท์น์ Business Process ๋ก์ง์ ์บก์ฒํด ๋์ด ๋๊ตฐ๊ฐ์ ๊ธฐ์ต์๋ง ๋จ์ง ์๊ฒ ํ๊ณ ํ ์คํธ ๊ฐ๋ฅํ๋๋ก ํ์ธ์.
์ปค์, ํด์, ์ฌ๊ฐ ํ ํฐ: ๊ตฌ์ฑ ์์
์ฒดํฌํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ์ฆ๋ถ ๋๊ธฐํ๋ ๋ณดํต ์์ ํ๊ฒ ์ ์ฅํ๊ณ ์ฌ์ฌ์ฉํ ์ ์๋ ์ธ ๊ฐ์ง ์ ํ์ "์์น" ์ค ํ๋์ ์์กดํฉ๋๋ค. ์ด๋ค ๊ฒ์ ์ ํํ ์ง๋ ์์ค ์์คํ ์ด ๋ณด์ฅํ ์ ์๋ ๊ฒ๊ณผ ์ด๋ค ์คํจ๋ฅผ ๊ฒฌ๋์ผ ํ๋์ง์ ๋ฌ๋ ค ์์ต๋๋ค.
์ปค์ ์ฒดํฌํฌ์ธํธ๋ ๊ฐ์ฅ ๋จ์ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ฒ๋ฆฌํ ๊ฒ(์: ๋ง์ง๋ง ID, last updated_at ํ์์คํฌํ, ์ํ์ค ๋ฒํธ)์ ์ ์ฅํฉ๋๋ค. ๋ค์ ์คํ ๋ ๊ทธ ์ง์ ์ดํ์ ๋ ์ฝ๋๋ฅผ ์์ฒญํฉ๋๋ค. ์์ค๊ฐ ์ผ๊ด๋๊ฒ ์ ๋ ฌ๋๊ณ ID๋ ํ์์คํฌํ๊ฐ ์ ๋ขฐํ ์ ์๊ฒ ์์ผ๋ก๋ง ๊ฐ ๋ ์ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ฐ์ดํธ๊ฐ ๋ฆ๊ฒ ๋์ฐฉํ๊ฑฐ๋ ์๊ณ๊ฐ ๋ฌ๋ผ์ง๊ฑฐ๋ ๊ณผ๊ฑฐ์ ๋ ์ฝ๋๊ฐ ์ฝ์ ๋๋(์: ๋ฐฑํ) ๊ฒฝ์ฐ์๋ ๊นจ์ง ์ ์์ต๋๋ค.
ํด์๋ ์ปค์๋ง์ผ๋ก ๋ถ์กฑํ ๋ ๋ณ๊ฒฝ์ ๊ฐ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๊ด์ฌ ์๋ ํ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ ๋ ์ฝ๋๋ฅผ ํด์ํด ํด์๊ฐ ๋ฐ๋ ๋๋ง ๋๊ธฐํํ๊ฑฐ๋, ๋ฐฐ์น ์ ์ฒด๋ฅผ ํด์ํด ๋๋ฆฌํํธ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํ ํ ์ธ๋ถ ํญ๋ชฉ์ ์กฐ์ฌํ ์ ์์ต๋๋ค. ๋ ์ฝ๋๋ณ ํด์๋ ์ ํํ์ง๋ง ์ ์ฅ ๋ฐ ๊ณ์ฐ ๋น์ฉ์ด ๋ค๊ณ , ๋ฐฐ์น ํด์๋ ์ ๋ ดํ์ง๋ง ์ด๋ค ํญ๋ชฉ์ด ๋ณ๊ฒฝ๋์๋์ง๋ฅผ ์จ๊ธธ ์ ์์ต๋๋ค.
์ฌ๊ฐ ํ ํฐ์ ์ข ์ข ํ์ด์ง์ด๋ ์ด๋ฒคํธ ์คํธ๋ฆผ์ ์ํด ์์ค๊ฐ ๋ฐํํ๋ ๋ถํฌ๋ช ๊ฐ์ ๋๋ค. ํด์ํ์ง ์๊ณ ์ ์ฅํ๋ค๊ฐ ๋ค์ ์ ๋ฌํด ์ด์ด๊ฐ๋ฉด ๋ฉ๋๋ค. API๊ฐ ๋ณต์กํ ๋ ํ ํฐ์ ํ๋ฅญํ์ง๋ง ๋ง๋ฃ๋๊ฑฐ๋ ๋ณด์กด ๊ธฐ๊ฐ ์ดํ์ ๋ฌดํจ๊ฐ ๋๊ฑฐ๋ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋์ํ ์ ์์ต๋๋ค.
๋ฌด์์ ์ฌ์ฉํด์ผ ํ๊ณ ๋ฌด์์ด ์๋ชป๋ ์ ์๋๊ฐ
- ์ปค์: ๋น ๋ฅด๊ณ ๋จ์ํ์ง๋ง ์์๊ฐ ๋ค๋ฐ๋๋ ์ ๋ฐ์ดํธ์ ์ฃผ์ํ์ธ์.
- ๋ ์ฝ๋๋ณ ํด์: ์ ํํ ๋ณ๊ฒฝ ๊ฐ์ง์ง๋ง ๋น์ฉ์ด ๋ ๋ญ๋๋ค.
- ๋ฐฐ์น ํด์: ๋๋ฆฌํํธ ์ ํธ๋ก ์ ๋ ดํ์ง๋ง ๊ตฌ์ฒด์ฑ์ด ๋ฎ์ต๋๋ค.
- ์ฌ๊ฐ ํ ํฐ: ํ์ด์ง์ ๊ฐ์ฅ ์์ ํ์ง๋ง ๋ง๋ฃ๋๊ฑฐ๋ ์ผํ์ฑ์ผ ์ ์์ต๋๋ค.
- ํ์ด๋ธ๋ฆฌ๋(์ปค์ + ํด์):
updated_at๊ฐ ์์ ํ ์ ๋ขฐํ ์ ์์ ๋ ํํ ์ฌ์ฉ๋ฉ๋๋ค.
AppMaster ๊ฐ์ ๋๊ตฌ๋ก ๋๊ธฐํ๋ฅผ ๊ตฌ์ถํ๋ฉด ์ด๋ฌํ ์ฒดํฌํฌ์ธํธ๋ ๋ณดํต ์์ "sync state" ํ ์ด๋ธ์ ์ ์ฅ๋์ด ๋งค ์คํ๋ง๋ค ์ถ์ธก ์์ด ์ฌ๊ฐํ ์ ์์ต๋๋ค.
์ฒดํฌํฌ์ธํธ ์ ์ฅ์ ์ค๊ณ
์ฒดํฌํฌ์ธํธ ์ ์ฅ์๋ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ์ฆ๋ถ ๋๊ธฐํ๋ฅผ ์ ๋ขฐํ ์ ์๊ฒ ๋ง๋๋ ์์ ๋ถ๋ถ์ ๋๋ค. ์ฝ๊ธฐ ์ด๋ ต๊ฑฐ๋ ์ฝ๊ฒ ๋ฎ์ด์ธ ์ ์๊ฑฐ๋ ํน์ ์์ ์ ๋ฌถ์ฌ ์์ง ์๋ค๋ฉด, ๋๊ธฐํ๋ ํ ๋ฒ ์คํจํ ๋๊น์ง๋ ๊ด์ฐฎ์ ๋ณด์ด๋ค๊ฐ ์ดํ์๋ ์ถ์ธก์ผ๋ก ์ด์ํ๊ฒ ๋ฉ๋๋ค.
๋จผ์ , ์ฒดํฌํฌ์ธํธ๋ฅผ ์ด๋์ ๋์ง ์ ํํ์ธ์. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ด ๋ณดํต ๊ฐ์ฅ ์์ ํฉ๋๋ค. ํธ๋์ญ์ , ๊ฐ์ฌ, ๊ฐ๋จํ ์ฟผ๋ฆฌ๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฏธ ์ฌ์ฉ ์ค์ด๊ณ ์์ ์ ๋ฐ์ดํธ๋ฅผ ์ง์ํ๋ค๋ฉด ํค-๊ฐ ์คํ ์ด๋ ๊ด์ฐฎ์ต๋๋ค. ๊ตฌ์ฑ ํ์ผ์ ๋จ์ผ ์ฌ์ฉ์์ด๊ฑฐ๋ ์ํ์ด ๋ฎ์ ๋๊ธฐํ์๋ง ์ ํฉํฉ๋๋ค. ์ ๊ทธ๊ธฐ ์ด๋ ต๊ณ ์์ด๋ฒ๋ฆฌ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฌด์์ ์ ์ฅํ ๊ฒ์ธ๊ฐ(๊ทธ๋ฆฌ๊ณ ์ด์ )
์ฒดํฌํฌ์ธํธ๋ ๋จ์ํ ์ปค์ ์ด์์ ๋๋ค. ๋๋ฒ๊ทธ, ์ฌ๊ฐ, ๋๋ฆฌํํธ ๊ฐ์ง๋ฅผ ์ํด ์ถฉ๋ถํ ์ปจํ ์คํธ๋ฅผ ์ ์ฅํ์ธ์:
- ์์ ์๋ณ: ์์ ์ด๋ฆ, ํ ๋ํธ ๋๋ ๊ณ์ id, ์ค๋ธ์ ํธ ํ์ (์: customers)
- ์งํ ์ํฉ: ์ปค์ ๊ฐ ๋๋ ์ฌ๊ฐ ํ ํฐ, ๊ทธ๋ฆฌ๊ณ ์ปค์ ํ์ (์๊ฐ, id, token)
- ์ํ ์ ํธ: ๋ง์ง๋ง ์คํ ์๊ฐ, ์ํ, ์ฝ์ ๋ ์ฝ๋ ์์ ๊ธฐ๋ก๋ ๋ ์ฝ๋ ์
- ์์ ์ฑ: ๋ง์ง๋ง ์ฑ๊ณต ์ปค์(์๋ํ ๋ง์ง๋ง ์ปค์๊ฐ ์๋๋ผ), ๊ทธ๋ฆฌ๊ณ ์ต์ ์คํจ์ ๋ํ ์งง์ ์ค๋ฅ ๋ฉ์์ง
๋ณ๊ฒฝ ๊ฐ์ง ํด์๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ํด์ ๋ฐฉ๋ฒ์ ๋ฒ์ ๋ ์ ์ฅํ์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์ค์ ํด์๋ฅผ ๋ณ๊ฒฝํ์ ๋ ๋ชจ๋ ๊ฒ์ "๋ณ๊ฒฝ๋จ"์ผ๋ก ์๋ชป ์ทจ๊ธํ ์ ์์ต๋๋ค.
๋ฒ์ ๊ด๋ฆฌ์ ๋ค์์ ๋๊ธฐํ ์์
๋ฐ์ดํฐ ๋ชจ๋ธ์ด ๋ณ๊ฒฝ๋๋ฉด ์ฒดํฌํฌ์ธํธ์ ๋ฒ์ ์ ๋ถ์ฌํ์ธ์. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ schema_version ํ๋๋ฅผ ์ถ๊ฐํ๊ณ ์ ๋ฒ์ ์ ๋ํด ๊ธฐ์กด ํ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ ํ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ๋กค๋ฐฑ์ ์ํด ์ ํ์ ์ ์ ๋ณด๊ดํ์ธ์.
์ฌ๋ฌ ๋๊ธฐํ ์์ ์ด ์์ ๊ฒฝ์ฐ ๋ค์์คํ์ด์ค๋ฅผ ๋ช ํํ ํ์ธ์. ์ข์ ํค๋ (tenant_id, integration_id, object_name, job_version)์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ ์์ ์ด ํ๋์ ์ปค์๋ฅผ ๊ณต์ ํด ์กฐ์ฉํ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋๋ฐ๋ ๊ณ ์ ์ ์ธ ๋ฒ๊ทธ๋ฅผ ํผํ ์ ์์ต๋๋ค.
๊ตฌ์ฒด์ ์: ๋ด๋ถ ๋๊ตฌ๋ฅผ AppMaster์์ ๋ง๋ค ๊ฒฝ์ฐ, PostgreSQL์ ํ ๋ํธ์ ์ค๋ธ์ ํธ๋ณ๋ก ํ ํ์ฉ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ์ฅํ๊ณ ๋ฐฐ์น ์ปค๋ฐ์ด ์ฑ๊ณต๋ ํ์๋ง ์ ๋ฐ์ดํธํ์ธ์.
๋จ๊ณ๋ณ: ์ฆ๋ถ ๋๊ธฐํ ๋ฃจํ ๊ตฌํํ๊ธฐ
์ฆ๋ถ ์ฒดํฌํฌ์ธํธ ๋๊ธฐํ๋ ๋ฃจํ๊ฐ ๋จ์กฐ๋กญ๊ณ ์์ธก ๊ฐ๋ฅํ ๋ ๊ฐ์ฅ ์ ์๋ํฉ๋๋ค. ๋ชฉํ๋ ๋จ์ํฉ๋๋ค: ์์ ๋ ์์๋ก ๋ณ๊ฒฝ์ ์ฝ๊ณ , ์์ ํ๊ฒ ๊ธฐ๋กํ ๋ค์, ์ฐ๊ธฐ๊ฐ ์๋ฃ๋์์์ ์ ๋๋ง ์ฒดํฌํฌ์ธํธ๋ฅผ ์์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค.
์ ๋ขฐํ ์ ์๋ ๋จ์ ๋ฃจํ
๋จผ์ ๊ฐ์ ๋ ์ฝ๋์ ๋ํด ์ ๋ ๋ณํ์ง ์๋ ์ ๋ ฌ ๊ธฐ์ค์ ์ ํํ์ธ์. ํ์์คํฌํ๋ ์๋ํ ์ ์์ง๋ง ๋์ ํด์๋ฅผ ์ํ ์๋ณ์(ID)๋ฅผ ํฌํจํด์ผ ๋ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ์ ์๊ฐ์ผ ๋ ์์๊ฐ ๋ค์์ด์ง ์์ต๋๋ค.
๊ทธ๋ค์ ๋ฃจํ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์คํํ์ธ์:
- ์ปค์(์: last_updated + id)์ ํ์ด์ง ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
- ์ ์ฅ๋ ์ฒดํฌํฌ์ธํธ๋ณด๋ค ์ต์ ์ธ ๋ค์ ํ์ด์ง์ ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- ๊ฐ ๋ ์ฝ๋๋ฅผ ๋์์ ์ ์ํธ(์์ผ๋ฉด ์์ฑ, ์์ผ๋ฉด ์ ๋ฐ์ดํธ)ํ๊ณ ์คํจ๋ฅผ ์บก์ฒํฉ๋๋ค.
- ์ฑ๊ณตํ ์ฐ๊ธฐ๋ฅผ ์ปค๋ฐํ ๋ค, ๋ง์ง๋ง์ผ๋ก ์ฒ๋ฆฌํ ๋ ์ฝ๋์์ ์๋ก์ด ์ฒดํฌํฌ์ธํธ๋ฅผ ์๊ตฌ ์ ์ฅํฉ๋๋ค.
- ๋ฐ๋ณตํฉ๋๋ค. ํ์ด์ง๊ฐ ๋น์ด ์์ผ๋ฉด ์ ์ ๋๊ธฐํ ํ ๋ค์ ์๋ํฉ๋๋ค.
์ฒดํฌํฌ์ธํธ ์ ๋ฐ์ดํธ๋ฅผ ํ์น์ ๋ถ๋ฆฌํด ๋์ธ์. ์ฒดํฌํฌ์ธํธ๋ฅผ ๋๋ฌด ์ผ์ฐ ์ ์ฅํ๋ฉด ํฌ๋์๊ฐ ๋ฐ์ํ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ฉํ ๊ฑด๋๋ธ ์ ์์ต๋๋ค.
์ค๋ณต ์์ด ๋ฐฑ์คํ์ ์ฌ์๋
ํธ์ถ์ ์คํจํ ์ ์๋ค๊ณ ๊ฐ์ ํ์ธ์. ํ์น๋ ์ฐ๊ธฐ๊ฐ ์คํจํ๋ฉด ์งง์ ๋ฐฑ์คํ(์: 1์ด, 2์ด, 5์ด)์ ์ต๋ ์ฌ์๋ ํ์๋ก ์ฌ์๋ํ์ธ์. ์ ์ํธ์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์๋๋ฅผ ์์ ํ๊ฒ ๋ง๋์ธ์. ๊ฐ์ ์ ๋ ฅ์ด๋ฉด ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๋ฐฉ์์ผ๋ก ์์ ํ์ธ์.
์์ ์ค์ ์: ๊ณ ๊ฐ ์
๋ฐ์ดํธ๋ฅผ 1๋ถ๋ง๋ค ๋๊ธฐํํ๋ค๋ฉด ํ ๋ฒ์ 200๊ฑด์ ๊ฐ์ ธ์ ์
์ํธํ๊ณ , ๊ทธ ๋ค์์ ๋ง์ง๋ง ๊ณ ๊ฐ์ (updated_at, id)๋ฅผ ์ ์ปค์๋ก ์ ์ฅํ ์ ์์ต๋๋ค.
AppMaster์์ ๊ตฌ์ถํ๋ฉด ์ฒดํฌํฌ์ธํธ๋ฅผ ๊ฐ๋จํ ํ ์ด๋ธ(Data Designer)์ ๋ชจ๋ธ๋งํ๊ณ , Business Process์์ ํ์น, ์ ์ํธ, ์ฒดํฌํฌ์ธํธ ์ ๋ฐ์ดํธ๋ฅผ ํ๋์ ํต์ ๋ ํ๋ฆ์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
์ฌ๊ฐ๋ฅผ ์์ ํ๊ฒ ๋ง๋ค๊ธฐ: ๋ฉฑ๋ฑ์ฑ๊ณผ ์์์ ์ฒดํฌํฌ์ธํธ
๋๊ธฐํ๊ฐ ์ฌ๊ฐ ๊ฐ๋ฅํ๋ฉด ์ต์ ์ ์์ ์์ ์ฌ๊ฐ๋ฉ๋๋ค: ํ์์์, ํฌ๋์, ๋ถ๋ถ ๋ฐฐํฌ ์ดํ ๋ฑ์ ๋๋ค. ๋ชฉํ๋ ๋จ์ํฉ๋๋ค: ๊ฐ์ ๋ฐฐ์น๋ฅผ ๋ค์ ์คํํด๋ ์ค๋ณต์ ๋ง๋ค๊ฑฐ๋ ์ ๋ฐ์ดํธ๋ฅผ ์์ง ์์์ผ ํฉ๋๋ค.
๋ฉฑ๋ฑ์ฑ์ ์์ ๋ง์
๋๋ค. ๊ฐ์ ์์
์ ๋ฐ๋ณตํด๋ ์ต์ข
๊ฒฐ๊ณผ๊ฐ ๋ฐ๋์ง ์๋๋ก ์์ฑํ์ธ์. ์ค์ ๋ก๋ ๋ณดํต insert๊ฐ ์๋ ์
์ํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค: ์์ ์ ์ธ ํค(customer_id ๊ฐ์)๋ฅผ ์ฌ์ฉํด ๊ธฐ๋กํ๊ณ , ์ด๋ฏธ ์กด์ฌํ๋ฉด ์
๋ฐ์ดํธํฉ๋๋ค.
์ข์ "์ฐ๊ธฐ ํค"๋ ์ฌ์๋ ์ค์๋ ์ ๋ขฐํ ์ ์์ด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ต์ ์ ์์ค ์์คํ ์ ์์ฐ ID๋ ์ฒ์ ๋ณธ ์๊ฐ ์ ์ฅํ ํฉ์ฑ ํค์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ณ ์ ์ ์ฝ์ผ๋ก ์ง์ํ๋ฉด ๋ ์์ ์๊ฐ ๊ฒฝ์ํ ๋๋ ๊ท์น์ด ๊ฐ์ ๋ฉ๋๋ค.
์์์ ์ฒดํฌํฌ์ธํธ๋ ๋๊ฐ์ด ์ค์ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ปค๋ฐํ๊ธฐ ์ ์ ์ปค์๋ฅผ ์์ผ๋ก ์ฎ๊ธฐ๋ฉด ํฌ๋์ ๋๋ฌธ์ ๋ ์ฝ๋๋ฅผ ์์ํ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. ์ฒดํฌํฌ์ธํธ ์ ๋ฐ์ดํธ๋ฅผ ์ฐ๊ธฐ ์์ ๊ณผ ๊ฐ์ ์์ ๋จ์๋ก ์ฒ๋ฆฌํ์ธ์.
์ฆ๋ถ ๋๊ธฐํ์ ๊ฐ๋จํ ํจํด:
- ๋ง์ง๋ง ์ฒดํฌํฌ์ธํธ(์ปค์๋ ํ ํฐ) ์ดํ ๋ณ๊ฒฝ์ ์ฝ์ต๋๋ค.
- ์ค๋ณต ์ ๊ฑฐ ํค๋ฅผ ์ฌ์ฉํด ๊ฐ ๋ ์ฝ๋๋ฅผ ์ ์ํธํฉ๋๋ค.
- ํธ๋์ญ์ ์ ์ปค๋ฐํฉ๋๋ค.
- ๊ทธ์ ์ผ ์๋ก์ด ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ์ฅํฉ๋๋ค.
์์๊ฐ ๋ค๋ฐ๋๊ฑฐ๋ ๋ฆ๊ฒ ๋์ฐฉํ๋ ๋ฐ์ดํฐ๋ ํํ ํจ์ ์ ๋๋ค. ์ด๋ค ๋ ์ฝ๋๋ 10:01์ ์ ๋ฐ์ดํธ๋์ง๋ง 10:02์ ๋ ์ฝ๋๋ณด๋ค ๋ฆ๊ฒ ๋์ฐฉํ ์ ์์ต๋๋ค. ๋๋ API๊ฐ ์ฌ์๋ ์ ๋ ์ค๋๋ ๋ณ๊ฒฝ์ ์ ๋ฌํ ์ ์์ต๋๋ค. ์์ค์ "last_modified"๋ฅผ ์ ์ฅํ๊ณ "๋ง์ง๋ง ์ฐ๊ธฐ ์ฐ์ (last write wins)" ๊ท์น์ ์ ์ฉํด ๋ค์ด์ค๋ ๋ ์ฝ๋๊ฐ ๊ธฐ์กด๋ณด๋ค ์ต์ ์ผ ๋๋ง ๋ฎ์ด์ฐ๋๋ก ๋ณดํธํ์ธ์.
๋ ๊ฐํ ๋ณดํธ๊ฐ ํ์ํ๋ฉด ์์ ์ค๋ฒ๋ฉ ์ฐฝ(์: ๋ง์ง๋ง ๋ช ๋ถ์ ์ฌ์ฝ์)์ ์ ์งํ๊ณ ๋ฉฑ๋ฑ ์ ์ํธ๋ก ๋ฐ๋ณต์ ๋ฌด์ํ์ธ์. ์ฝ๊ฐ์ ์ถ๊ฐ ์์ ์ด ๋ค์ง๋ง ์ฌ๊ฐ๊ฐ ์ง๋ฃจํด์ง๋๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๊ทธ๊ฒ ๋ฐ๋ก ๋ชฉํ์ ๋๋ค.
AppMaster์์๋ ๊ฐ์ ์์ด๋์ด๋ฅผ Business Process ํ๋ฆ์ผ๋ก ๊น๋ํ๊ฒ ํํํ ์ ์์ต๋๋ค: ๋จผ์ ์ ์ํธ ๋ก์ง์ ์คํํ๊ณ ์ปค๋ฐํ ํ ์ต์ข ๋จ๊ณ๋ก ์ปค์๋ ์ฌ๊ฐ ํ ํฐ์ ์ ์ฅํ์ธ์.
์ฆ๋ถ ๋๊ธฐํ๋ฅผ ๋ง์น๋ ํํ ์ค์๋ค
๋๋ถ๋ถ์ ๋๊ธฐํ ๋ฒ๊ทธ๋ ์ฝ๋ ๋ฌธ์ ๊ฐ ์๋๋๋ค. ํ์ค ๋ฐ์ดํฐ๊ฐ ๋์ค๊ธฐ ์ ๊น์ง๋ ์์ ํด ๋ณด์ด๋ ๋ช ๊ฐ์ง ๊ฐ์ ์์ ์ต๋๋ค. ์ฒดํฌํฌ์ธํธ ๊ธฐ๋ฐ ์ฆ๋ถ ๋๊ธฐํ๋ฅผ ์์ ์ ์ผ๋ก ์ ์งํ๋ ค๋ฉด ์ด๊ธฐ์ ๋ค์ ๋ซ๋ค์ ์ฃผ์ํ์ธ์.
ํํ ์คํจ ์ง์
updated_at์ ๋๋ฌด ๋ฏฟ๋ ๊ฒ์ด ํํ ์ค์์
๋๋ค. ์ผ๋ถ ์์คํ
์ ๋ฐฑํ, ํ์์กด ์์ , ์ผ๊ด ํธ์ง ๋๋ ์ฝ๊ธฐ-์์ ๊ณผ์ ์์ ํ์์คํฌํ๋ฅผ ๋ค์ ์ธ ์ ์์ต๋๋ค. ์ปค์๊ฐ ๋จ์ํ ํ์์คํฌํ์ด๋ฉด ๋ ์ฝ๋๋ฅผ ๋์น๊ฑฐ๋(ํ์์คํฌํ๊ฐ ๋ค๋ก ์ ํ) ๊ฑฐ๋ํ ๋ฒ์๋ฅผ ์ฌ์ฒ๋ฆฌํ ์ ์์ต๋๋ค(ํ์์คํฌํ๊ฐ ์์ผ๋ก ์ ํ).
๋ ๋ค๋ฅธ ํจ์ ์ ID๊ฐ ์ฐ์์ ์ด๊ฑฐ๋ ์๊ฒฉํ ์ฆ๊ฐํ๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค. ์ํฌํธ, ์ค๋ฉ, UUID, ์ญ์ ๋ ํ ๋ฑ์ ์ด ๊ฐ์ ์ ๊นจ๋จ๋ฆฝ๋๋ค. "๋ง์ง๋ง์ผ๋ก ๋ณธ ID"๋ฅผ ์ฒดํฌํฌ์ธํธ๋ก ์ฌ์ฉํ๋ฉด ๊ฐญ๊ณผ ์์๊ฐ ๋ค๋ฐ๋ ์ฐ๊ธฐ๋ก ์ธํด ๋ ์ฝ๋๊ฐ ๋จ๊ฒจ์ง ์ ์์ต๋๋ค.
๊ฐ์ฅ ํด๋ก์ด ๋ฒ๊ทธ๋ ๋ถ๋ถ ์ฑ๊ณต์์ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ์ง์ํค๋ ๊ฒ์ ๋๋ค. ์: 1,000๊ฑด์ ํ์นํด 700๊ฑด๋ง ์ฐ๊ณ ํฌ๋์๊ฐ ๋ฐ์ํ๋๋ฐ๋ ํ์น์์ ์ป์ "๋ค์ ์ปค์"๋ฅผ ์ ์ฅํ๋ฉด ์ฌ๊ฐ ์ ๋๋จธ์ง 300๊ฑด์ ๋ค์ ์๋๋์ง ์์ต๋๋ค.
์ญ์ ๋ ๋ฌด์ํ๊ธฐ ์ฝ์ต๋๋ค. ์์ค๋ ์ํํธ ์ญ์ (ํ๋๊ทธ), ํ๋ ์ญ์ (ํ ์ ๊ฑฐ), ๋๋ "๊ฒ์ ์ทจ์"(์ํ ๋ณ๊ฒฝ)๋ฅผ ํ ์ ์์ต๋๋ค. ํ์ฑ ๋ ์ฝ๋๋ง ์ ์ํธํ๋ฉด ๋์์ด ์ฒ์ฒํ ๋ฌ๋ผ์ง๋๋ค.
๋ง์ง๋ง์ผ๋ก ์คํค๋ง ๋ณ๊ฒฝ์ด ์ ํด์๋ฅผ ๋ฌดํจํํ ์ ์์ต๋๋ค. ํด์๊ฐ ํน์ ํ๋ ์งํฉ์์ ๋ง๋ค์ด์ก๋ค๋ฉด ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ๋ฉด "๋ณ๊ฒฝ ์์"์ด "๋ณ๊ฒฝ๋จ"์ผ๋ก ๋ณด์ด๊ฑฐ๋ ๊ทธ ๋ฐ๋๋ก ๋ ์ ์์ต๋๋ค. ํด์ ๋ก์ง์ ๋ฒ์ ์ ๋์ธ์.
๋ ์์ ํ ๊ธฐ๋ณธ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์์ ํ์์คํฌํ๋ณด๋ค ๋จ์กฐ ์ฆ๊ฐํ๋ ์ปค์(์ด๋ฒคํธ ID, ๋ก๊ทธ ์์น)๋ฅผ ์ ํธํ์ธ์.
- ์ฒดํฌํฌ์ธํธ ์ฐ๊ธฐ๋ฅผ ๋ฐ์ดํฐ ์ฐ๊ธฐ์ ๋์ผํ ์ฑ๊ณต ๊ฒฝ๊ณ๋ก ์ทจ๊ธํ์ธ์.
- ์ญ์ ๋ฅผ ๋ช ์์ ์ผ๋ก ์ถ์ ํ์ธ์(ํฐ์คํค, ์ํ ์ ํ ๋๋ ์ฃผ๊ธฐ์ ์กฐ์ ).
- ํด์ ์ ๋ ฅ์ ๋ฒ์ ์ ๋ถ์ฌํ๊ณ ์ด์ ๋ฒ์ ์ ์ฝ์ ์ ์๊ฒ ์ ์งํ์ธ์.
- ์์ค๊ฐ ์ ๋ฐ์ดํธ ์์๋ฅผ ๋ฐ๊ฟ ์ ์๋ค๋ฉด ์์ ์ค๋ฒ๋ฉ ์ฐฝ(๋ง์ง๋ง N ํญ๋ชฉ ์ฌ์ฝ๊ธฐ)์ ์ถ๊ฐํ์ธ์.
AppMaster์์ ์ด ์์ ์ ํ๋ฉด ์ฒดํฌํฌ์ธํธ๋ฅผ Data Designer์ ๋ณ๋ ํ ์ด๋ธ๋ก ๋ชจ๋ธ๋งํ๊ณ "๋ฐ์ดํฐ ์ฐ๊ธฐ + ์ฒดํฌํฌ์ธํธ ์ฐ๊ธฐ" ๋จ๊ณ๋ฅผ ํ ๋ฒ์ Business Process ์คํ์ผ๋ก ๋ฌถ์ด ์ฌ์๋ ์ ์์ ์ด ๊ฑด๋๋ฐ์ด์ง์ง ์๋๋ก ํ ์ ์์ต๋๋ค.
์๋๋ฝ์ง ์์ ๋ชจ๋ํฐ๋ง๊ณผ ๋๋ฆฌํํธ ๊ฐ์ง
์ฒดํฌํฌ์ธํธ ๊ธฐ๋ฐ ์ฆ๋ถ ๋๊ธฐํ์ ์ข์ ๋ชจ๋ํฐ๋ง์ "๋ก๊ทธ๋ฅผ ๋ ๋ง์ด ์๋" ๊ฒ์ด ์๋๋ผ ๋งค ์คํ๋ง๋ค ์ ๋ขฐํ ์ ์๋ ๋ช ๊ฐ์ง ์ซ์๋ฅผ ๊ฐ๋ ๊ฒ์ ๋๋ค. "์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ์ฒ๋ฆฌํ๋๊ฐ, ์ผ๋ง๋ ๊ฑธ๋ ธ๋๊ฐ, ์ด๋์ ์ฌ๊ฐํ ๊ฒ์ธ๊ฐ"๋ฅผ ๋ตํ ์ ์๋ค๋ฉด ๋๋ถ๋ถ์ ๋ฌธ์ ๋ฅผ ๋ช ๋ถ ๋ด์ ๋๋ฒ๊ทธํ ์ ์์ต๋๋ค.
๋งค ์คํ๋ง๋ค ํ๋์ ๊ฐ๊ฒฐํ ์คํ ๊ธฐ๋ก์ ๋จ๊ธฐ์ธ์. ์ผ๊ด๋๊ฒ ์ ์งํ๋ฉด ์คํ์ ๋น๊ตํด ์ถ์ธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
- ์์ ์ปค์(๋๋ ์ฌ๊ฐ ํ ํฐ)์ ๋ ์ปค์
- ๊ฐ์ ธ์จ ๋ ์ฝ๋ ์, ๊ธฐ๋ก๋ ๋ ์ฝ๋ ์, ๊ฑด๋๋ด ๋ ์ฝ๋ ์
- ์คํ ์๊ฐ ๋ฐ ๋ ์ฝ๋๋น(๋๋ ํ์ด์ง๋น) ํ๊ท ์๊ฐ
- ์ค๋ฅ ์์ ์์ ์ค๋ฅ ์์ธ
- ์ฒดํฌํฌ์ธํธ ์ฐ๊ธฐ ์ํ(์ฑ๊ณต/์คํจ)
๋๋ฆฌํํธ ๊ฐ์ง๋ ๋ค์ ๋ ์ด์ด์ ๋๋ค: ์์คํ ์ด "๋ ๋ค ์๋ ์ค"์ด์ง๋ง ์์ํ ์ด๊ธ๋๋ ๊ฒฝ์ฐ๋ฅผ ์๋ ค์ค๋๋ค. ๋จ์ํ ํฉ๊ณ๋ ์คํด๋ฅผ ๋ถ๋ฌ์ผ์ผํฌ ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฒผ์ด ํฉ๊ณ ํ์ธ๊ณผ ์์ ์ํ ๊ฒ์ฌ ์กฐํฉ์ ์ฌ์ฉํ์ธ์. ์: ํ๋ฃจ์ ํ ๋ฒ ํ์ฑ ๊ณ ๊ฐ ์ด์๋ฅผ ์์ชฝ ์์คํ ์์ ๋น๊ตํ ๋ค์, ๋๋ค ๊ณ ๊ฐ ID 20๊ฐ๋ฅผ ์ํ๋ก ๊ณจ๋ผ ๋ช ๊ฐ์ ํต์ฌ ํ๋(์ํ, updated_at, ์ด๋ฉ์ผ)๋ฅผ ํ์ธํฉ๋๋ค. ํฉ๊ณ๊ฐ ๋ค๋ฅด์ง๋ง ์ํ์ด ์ผ์นํ๋ฉด ์ญ์ ๋ ํํฐ ๋๋ฝ์ผ ๊ฐ๋ฅ์ฑ์ด ์๊ณ , ์ํ์ด ๋ค๋ฅด๋ฉด ๋ณ๊ฒฝ ๊ฐ์ง ํด์๋ ํ๋ ๋งคํ์ด ์๋ชป๋์์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค.
์๋ฆผ์ ๋๋ฌผ๊ณ ์คํ ๊ฐ๋ฅํ ๊ฒ์ด์ด์ผ ํฉ๋๋ค. ๊ฐ๋จํ ๊ท์น: ์ฌ๋์ด ์ง๊ธ ๋น์ฅ ์กฐ์นํด์ผ ํ ๊ฒฝ์ฐ์๋ง ๊ฒฝ๋ณด๋ฅผ ๋ฐ์์ํค์ธ์.
- ์ปค์๊ฐ ๋ฉ์ถค(๋ ์ปค์๊ฐ Nํ ์คํ ๋์ ์ด๋ํ์ง ์์)
- ์ค๋ฅ์จ ์์น(์: 1% โ 5% ํ ์๊ฐ ๋์)
- ์คํ ์๊ฐ์ด ํ์ ์ํ์ ์ด๊ณผ
- ๋ฐฑ๋ก๊ทธ ์ฆ๊ฐ(์ ๋ณ๊ฒฝ์ด ๋๊ธฐํ ์๋๋ณด๋ค ๋น ๋ฅด๊ฒ ๋์ฐฉ)
- ๋๋ฆฌํํธ ํ์ธ(์ฐ์ ๋ ๋ฒ์ ๊ฒ์ฌ์์ ํฉ๊ณ ๋ถ์ผ์น)
์คํจ ํ์๋ ์๋ ์ ๋ฆฌ ์์ด ์ฌ์คํํ์ธ์. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋ง์ง๋ง์ผ๋ก ์ปค๋ฐ๋ ์ฒดํฌํฌ์ธํธ์์ ์ฌ๊ฐํ๋ ๊ฒ์ ๋๋ค. ์์ ์ค๋ฒ๋ฉ ์ฐฝ์ ์ฌ์ฉํ๋ค๋ฉด(๋ง์ง๋ง ํ์ด์ง๋ฅผ ์ฌ์ฝ์) ์ ์ํธ๋ฅผ ๋ฉฑ๋ฑํ๊ฒ ๋ง๋ค์ด ๋ฐ๋ณต์ ๋ฌด์ํ์ธ์. AppMaster์์๋ ์ด๋ฌํ ๊ฒ์ฌ๋ฅผ Business Process ํ๋ฆ์ผ๋ก ๊ตฌํํ๊ณ ์ด๋ฉ์ผ/SMS ๋๋ Telegram ๋ชจ๋๋ก ์๋ฆผ์ ๋ณด๋ด ์คํจ๊ฐ ๋์๋ณด๋ ์์ด๋ ๋ณด์ด๊ฒ ํฉ๋๋ค.
๋ฐฐํฌ ์ ๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์คํธ
์ฆ๋ถ ์ฒดํฌํฌ์ธํธ ๋๊ธฐํ๋ฅผ ํ๋ก๋์ ์ ์ผ๊ธฐ ์ ์ ๋ณดํต ๋ฆ์ ๋๋ผ์์ ์ผ์ผํค๋ ๋ช ๊ฐ์ง๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ฒํ์ธ์. ์ด ์ฒดํฌ๋ ๋ช ๋ถ์ด๋ฉด ๋๋์ง๋ง ๊ธฐ๋ก ๋๋ฝ ๋๋ฒ๊น ์ ๋ฉฐ์น ์ ์ค์ฌ์ค๋๋ค.
์ค์ฉ์ ์ธ ์ฌ์ ๋ฐฐํฌ ์ฒดํฌ๋ฆฌ์คํธ:
- ์ ๋ ฌ์ ์ฌ์ฉํ ํ๋(ํ์์คํฌํ, ์ํ์ค, ID)๊ฐ ์ ๋ง ์์ ์ ์ด๊ณ ์์ค ์ชฝ์ ์ธ๋ฑ์ค๊ฐ ์๋์ง ํ์ธํ์ธ์. ๋์ค์ ๋ณ๊ฒฝ๋ ์ ์๋ค๋ฉด ์ปค์๊ฐ ํ๋ ค์ง๋๋ค.
- ์ ์ํธ ํค๊ฐ ๊ณ ์ ํจ์ ๋ณด์ฅํ๋์ง, ๋ ์์คํ ์ด ๋์ผํ๊ฒ ์ฒ๋ฆฌํ๋์ง(๋์๋ฌธ์, ํธ๋ฆฌ๋ฐ, ํฌ๋งท)๋ฅผ ํ์ธํ์ธ์. ํ์ชฝ์ด "ABC"๋ฅผ ์ ์ฅํ๊ณ ๋ค๋ฅธ ์ชฝ์ด "abc"๋ฅผ ์ ์ฅํ๋ฉด ์ค๋ณต์ด ์๊น๋๋ค.
- ๊ฐ ์์ ๊ณผ ๊ฐ ๋ฐ์ดํฐ์ ์ ๋ํด ์ฒดํฌํฌ์ธํธ๋ฅผ ๋ณ๋๋ก ์ ์ฅํ์ธ์. "๊ธ๋ก๋ฒ ๋ง์ง๋ง ์ปค์"๋ ๊ฐ๋จํด ๋ณด์ด์ง๋ง ๋ ํ ์ด๋ธ, ๋ ํ ๋ํธ, ๋ ํํฐ๋ฅผ ๋๊ธฐํํ๋ฉด ๊นจ์ง๋๋ค.
- ์์ค๊ฐ ๊ฒฐ๊ตญ ์ผ๊ด์ฑ(eventually consistent)์ ์ ๊ณตํ๋ค๋ฉด ์์ ์ค๋ฒ๋ฉ ์ฐฝ์ ์ถ๊ฐํ์ธ์. ์: "last_updated = 10:00:00"์์ ์ฌ๊ฐํ ๋ 09:59:30๋ถํฐ ๋ค์ ์์ํ๊ณ ๋ฉฑ๋ฑ ์ ์ํธ๋ฅผ ํตํด ๋ฐ๋ณต์ ๋ฌด์ํฉ๋๋ค.
- ๊ฐ๋ฒผ์ด ์กฐ์ ๊ณํ: ์ผ์ ์ ๋ฐ๋ผ ์์ ์ํ ์งํฉ(์: ๋๋ค 100๊ฑด)์ ๊ณจ๋ผ ์ฃผ์ ํ๋๋ฅผ ๋น๊ตํด ์กฐ์ฉํ ๋๋ฆฌํํธ๋ฅผ ์ก์๋ด์ธ์.
ํ์ค์ฑ ํ ์คํธ: ์คํ์ ์ค๊ฐ์ ์ผ์ ์ค์งํ๊ณ ์ฌ์์ํด ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋์ง ํ์ธํ์ธ์. ์ฌ์์์ผ๋ก ์นด์ดํธ๊ฐ ๋ณํ๊ฑฐ๋ ์ถ๊ฐ ํ์ด ์๊ธฐ๋ฉด ์ถ์์ ์์ ์์ ํ์ธ์.
AppMaster์์ ๋๊ธฐํ๋ฅผ ๊ตฌ์ถํ๋ค๋ฉด ๊ฐ ํตํฉ ํ๋ฆ์ ์ฒดํฌํฌ์ธํธ ๋ฐ์ดํฐ๋ฅผ ํน์ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ์ ์ ๋ฌถ์ด ๊ด๋ จ ์๋ ์๋ํ์ ๊ณต์ ํ์ง ๋ง์ธ์.
์: ๋ ์ฑ ๊ฐ ๊ณ ๊ฐ ๋ ์ฝ๋ ๋๊ธฐํ
๊ฐ๋จํ ์ค์ ์ ์์ํด ๋ณด์ธ์: CRM์ด ์ฐ๋ฝ์ฒ์ ์ง์ค์ ์ถ์ฒ์ด๊ณ , ๋์ผํ ์ฌ๋๋ค์ด ๊ณ ๊ฐ์ง์ ๋๊ตฌ๋ ๊ณ ๊ฐ ํฌํธ์๋ ์กด์ฌํ๋๋ก ํ๋ ค๋ ์ํฉ์ ๋๋ค.
์ฒซ ์คํ์์๋ ์ผํ์ฑ ์ํฌํธ๋ฅผ ์ํํ์ธ์. ์: updated_at๊ณผ ๋์ ํด์์ฉ id๋ก ์์ ๋ ์์๋ก ์ฐ๋ฝ์ฒ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ ๋ฐฐ์น๋ฅผ ๋์์ ๊ธฐ๋กํ ํ last_updated_at๊ณผ last_id ๊ฐ์ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ์ฅํ์ธ์. ๊ทธ ์ฒดํฌํฌ์ธํธ๊ฐ ์ดํ ๋ชจ๋ ์คํ์ ์์์ ์
๋๋ค.
์ง์์ ์คํ์์๋ ์ฒดํฌํฌ์ธํธ๋ณด๋ค ์ต์ ์ธ ๋ ์ฝ๋๋ง ๊ฐ์ ธ์ต๋๋ค. ์ ๋ฐ์ดํธ๋ ๊ฐ๋จํฉ๋๋ค: CRM ์ฐ๋ฝ์ฒ๊ฐ ์ด๋ฏธ ์์ผ๋ฉด ๋์ ๋ ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํ๊ณ , ์์ผ๋ฉด ์์ฑํ์ธ์. ๋ณํฉ์ ๊น๋ค๋กญ์ต๋๋ค. CRM์ ์ข ์ข ์ค๋ณต์ ๋ณํฉํ๋ฉด์ ํ ์ฐ๋ฝ์ฒ๋ฅผ "์น์"๋ก ๋จ๊น๋๋ค. ์ด๋ฅผ ๋นํ์ฑ์ผ๋ก ํ์ํ๊ฑฐ๋ ์น์์ ๋งคํํ๋๋ก ์ฒ๋ฆฌํด ํฌํธ์ ๋์ผํ ์ฌ๋์ ๊ณ์ ์ด ๋ ๊ฐ ์๊ธฐ์ง ์๋๋ก ํ์ธ์.
์ญ์ ๋ ์ผ๋ฐ์ ์ผ๋ก "์ ๋ฐ์ดํธ ์ดํ" ์ฟผ๋ฆฌ์ ์ ์ ๋์ค๋ฏ๋ก ๋๋นํ์ธ์. ์ผ๋ฐ์ ์ต์ ์ ์์ค์ ์ํํธ-์ญ์ ํ๋๊ทธ, ๋ณ๋์ "์ญ์ ๋ ์ฐ๋ฝ์ฒ" ํผ๋, ๋๋ ์ฃผ๊ธฐ์ ์ธ ๊ฒฝ๋ ์กฐ์ ์ผ๋ก ๋๋ฝ๋ ID๋ฅผ ํ์ธํ๋ ๊ฒ์ ๋๋ค.
์คํจ ์ฌ๋ก: ๋๊ธฐํ๊ฐ ์ค๊ฐ์ ํฌ๋์ํ๋ค๋ฉด ์ฒดํฌํฌ์ธํธ๋ฅผ ๋์๋ง ์ ์ฅํ๋ฉด ํฐ ๋ฒ์๋ฅผ ๋ค์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ๋์ ๋ฐฐ์น๋น ์ฌ๊ฐ ํ ํฐ์ ์ฌ์ฉํ์ธ์.
- ์คํ์ ์์ํ๊ณ
run_id(์ฌ๊ฐ ํ ํฐ)๋ฅผ ์์ฑํฉ๋๋ค. - ๋ฐฐ์น๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋์ ๋ณ๊ฒฝ์ ๊ธฐ๋กํ ๋ค์
run_id์ ์ฐ๊ฒฐ๋ ์ฒดํฌํฌ์ธํธ๋ฅผ ์์์ ์ผ๋ก ์ ์ฅํฉ๋๋ค. - ์ฌ์์ ์ ํด๋น
run_id์ ๋ง์ง๋ง ์ ์ฅ๋ ์ฒดํฌํฌ์ธํธ๋ฅผ ๊ฐ์งํ๊ณ ๊ฑฐ๊ธฐ์ ๊ณ์ํฉ๋๋ค.
์ฑ๊ณต์ ์ง๋ฃจํ๊ฒ ๋ณด์ ๋๋ค: ์ผ์ผ ์นด์ดํธ๊ฐ ์์ ์ ์ด๊ณ ์คํ ์๊ฐ์ด ์์ธก ๊ฐ๋ฅํ๋ฉฐ ๋์ผํ ์ฐฝ์ ๋ค์ ์คํํด๋ ์์์น ๋ชปํ ๋ณ๊ฒฝ์ด ์ ํ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ: ํจํด์ ์ ํํ๊ณ ์ฌ์์ ์์ด ๊ตฌ์ถํ๊ธฐ
์ฒซ ๋ฒ์งธ ์ฆ๋ถ ๋ฃจํ๊ฐ ์๋ํ๋ฉด ์ฌ์์ ์ ํผํ๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ๋๊ธฐํ ๊ท์น์ ๋ฌธ์ํํ๋ ๊ฒ์ ๋๋ค. ์งง๊ฒ ์ ์งํ์ธ์: ๋ฒ์์ ํฌํจ๋๋ ๋ ์ฝ๋, ์ถฉ๋ ์ ์ฐ์ ํ๋, ๊ฐ ์คํ์ด "์๋ฃ"๋์์ ๋์ ์ํ.
์๊ฒ ์์ํ์ธ์. ํ๋์ ๋ฐ์ดํฐ์ (์: customers)์ ๊ณจ๋ผ ์๋ํฌ์๋๋ก ์คํํด ๋ณด์ธ์: ์ด๊ธฐ ์ํฌํธ, ์ฆ๋ถ ์ ๋ฐ์ดํธ, ์ญ์ , ์๋์ ์คํจ ํ ์ฌ๊ฐ. ๋ค์ฏ ๊ฐ ํ ์ด๋ธ์ ๋ ์ถ๊ฐํ ๋ค ๊ฐ์ ๋ค์ ๊ณ ์น๋ ๊ฒ๋ณด๋ค ์ง๊ธ ์์ ํ๋ ๊ฒ์ด ์ฝ์ต๋๋ค.
์ ์ฒด ์ฌ๋น๋๋ ์ฌ์ ํ ๊ฐ๋ ์ณ์ ์ ํ์ ๋๋ค. ์ฒดํฌํฌ์ธํธ ์ํ๊ฐ ์์๋์๊ฑฐ๋ ์๋ณ์๊ฐ ๋ฐ๋์๊ฑฐ๋ ์คํค๋ง ๋ณ๊ฒฝ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ์ง ๋ก์ง์ด ๊นจ์ก์ ๋(์: ํด์๋ฅผ ์ฌ์ฉํ๊ณ ํ๋ ์๋ฏธ๊ฐ ๋ฐ๋ ๊ฒฝ์ฐ) ์ฌ๋น๋๋ฅผ ๊ฒํ ํ์ธ์. ์ฌ๋น๋๋ฅผ ํ ๋๋ ๋น์ ๋ฒํผ์ด ์๋๋ผ ํต์ ๋ ์์ ์ผ๋ก ์ฒ๋ฆฌํ์ธ์.
์์ ํ ์ฌ์ํฌํธ ๋ฐฉ๋ฒ:
- ๊ทธ๋ฆผ์ ํ ์ด๋ธ์ด๋ ๋ณ๋ ฌ ๋ฐ์ดํฐ์ ์ผ๋ก ์ํฌํธํด ํ์ฌ ๊ฒ์ ๊ณ์ ๋ผ์ด๋ธ๋ก ๋ก๋๋ค.
- ์นด์ดํธ๋ฅผ ๊ฒ์ฆํ๊ณ null, ๋ณํฉ ๋ ์ฝ๋ ๊ฐ์ ์ฃ์ง ์ผ์ด์ค๋ฅผ ์ํ๋งํด ํ์ธํฉ๋๋ค.
- ๊ด๊ณ๋ฅผ ๋ฐฑํํ ๋ค์ ๊ณํ๋ ์ปท์ค๋ฒ๋ก ๋ฆฌ๋๋ฅผ ์ ๋ฐ์ดํฐ์ ์ผ๋ก ์ ํํฉ๋๋ค.
- ๋กค๋ฐฑ์ ์ํ ์งง์ ๋ณด๊ด ๊ธฐ๊ฐ ํ์ ์ ๋ฐ์ดํฐ์ ์ ์ ๋ฆฌํฉ๋๋ค.
์ฝ๋๋ฅผ ์ฐ์ง ์๊ณ ์ด๊ฒ์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด AppMaster๊ฐ ๋์์ค ์ ์์ต๋๋ค: Data Designer๋ก PostgreSQL์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ๋งํ๊ณ , Business Process Editor์์ ๋๊ธฐํ ๊ท์น์ ์ ์ํ๋ฉฐ, ์ค์ผ์ค๋ ์์ ์ผ๋ก ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ ๋ณํํ๊ณ ์ ์ํธํ์ธ์. AppMaster๋ ์๊ตฌ์ฌํญ ๋ณ๊ฒฝ ์ ๊น๋ํ ์ฝ๋๋ฅผ ์ฌ์์ฑํด "ํ ํ๋ ๋ ์ถ๊ฐ"๊ฐ ๋ ์ํํด์ง๋๋ก ํฉ๋๋ค.
๋ฐ์ดํฐ์ ์ ๋ ํ์ฅํ๊ธฐ ์ ์ ๋๊ธฐํ ๊ณ์ฝ์ ๋ฌธ์ํํ๊ณ ํ๋์ ํจํด(์ปค์, ์ฌ๊ฐ ํ ํฐ ๋๋ ํด์)์ ์ ํํด ํ๋์ ๋๊ธฐํ๋ฅผ ์์ ํ ์ ๋ขฐํ ์ ์๊ฒ ๋ง๋์ธ์. ๊ทธ๋ฐ ๋ค์ ๋์ผํ ๊ตฌ์กฐ๋ฅผ ๋ค์ ๋ฐ์ดํฐ์ ์ ๋ฐ๋ณตํ์ธ์. ๋น ๋ฅด๊ฒ ์๋ํด๋ณด๊ณ ์ถ๋ค๋ฉด AppMaster์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ ์์ ์์ฝ ๋๊ธฐํ ์์ ์ ๋จผ์ ์คํํด ๋ณด์ธ์.


