์ฌ์์ฑ์ ์์ ํ ์คํค๋ง ์งํ๋ก ์์ธก ๊ฐ๋ฅํ ๋ง์ด๊ทธ๋ ์ด์ ๋ง๋ค๊ธฐ
์ฌ์์ฑ์ ์์ ํ ์คํค๋ง ์งํ๋ ๋ฐฑ์๋๊ฐ ์ฌ์์ฑ๋ ๋๋ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ํจํ๊ฒ ์ ์งํฉ๋๋ค. ์คํค๋ง ๋ณ๊ฒฝ๊ณผ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณํํ๋ ์ค์ฉ์ ์ธ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.

์ฌ์์ฑ๋ ๋ฐฑ์๋์์ ์คํค๋ง ๋ณ๊ฒฝ์ด ์ํํ๊ฒ ๋๊ปด์ง๋ ์ด์
์๊ฐ์ ๋ชจ๋ธ์์ ๋ฐฑ์๋๋ฅผ ์ฌ์์ฑํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ์ ์ค์จํฐ์ ์ค์ ๋น๊ธฐ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค. Data Designer์์ ํ๋๋ฅผ ์์ ํ๊ณ ์ฌ์์ฑ์ ๋๋ฅด๋ฉด ๋จ์ํ ํ ์ด๋ธ๋ง ๋ฐ๊พธ๋ ๊ฒ์ด ์๋๋๋ค. ์์ฑ๋ API, ๊ฒ์ฆ ๊ท์น, ์ฑ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ์ฟผ๋ฆฌ๊น์ง ๋ฐ๋๋๋ค.
๋๋ถ๋ถ์ ๋ฌธ์ ๋ ์ ์ฝ๋๊ฐ ๋น๋๋์ง ์์์ ๋ฐ์ํ๋ ๊ฒ์ด ์๋๋๋ค. ๋ง์ ๋ ธ์ฝ๋ ํ๋ซํผ(์: AppMaster, ์ค์ Go ์ฝ๋๋ฅผ ์์ฑํ๋ ํ๋ซํผ)์ ๋งค๋ฒ ๊น๋ํ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ค์ ์ํ์ ์ด์ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ฉฐ, ๊ทธ๊ฒ์ด ์๋์ผ๋ก ๋น์ ์ ์ ์์ด๋์ด์ ๋ง๊ฒ ๋ณํ๋์ง ์๋๋ค๋ ์ ์ ๋๋ค.
์ฌ๋๋ค์ด ์ฒ์์ผ๋ก ์์์ฐจ๋ฆฌ๋ ๋ ๊ฐ์ง ์คํจ๋ ๋จ์ํฉ๋๋ค:
- ์ฝ๊ธฐ ์คํจ: ์ปฌ๋ผ์ด ์ด๋ํ๊ฑฐ๋ ํ์ ์ด ๋ฐ๋์๊ฑฐ๋ ์ฟผ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์๋ ๊ฐ์ ๊ธฐ๋ํด์ ์ฑ์ด ๋ ์ฝ๋๋ฅผ ๋ถ๋ฌ์ค์ง ๋ชปํฉ๋๋ค.
- ์ฐ๊ธฐ ์คํจ: ์ ์ฝ์กฐ๊ฑด, ํ์ ํ๋, ํ์์ด ๋ฐ๋์ด ์ ๋ ์ฝ๋๋ ์ ๋ฐ์ดํธ๊ฐ ์คํจํฉ๋๋ค. ๊ธฐ์กด ํด๋ผ์ด์ธํธ๋ ์ฌ์ ํ ์ ํํ๋ก ๋ณด๋ ๋๋ค.
๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ค์ ์ฌ์ฉ์๊ฐ ๋ง์ฃผ์น ๋๊น์ง ์จ๊ฒจ์ง ์ ์์ด ๊ณ ํต์ค๋ฝ์ต๋๋ค. ์คํ ์ด์ง DB๋ ๋น์ด ์๊ฑฐ๋ ์๋ก ์ฑ์์ ธ ์์ ์ ์์ผ๋ฏ๋ก ๋ชจ๋ ๊ฒ์ด ์ ์์ฒ๋ผ ๋ณด์ ๋๋ค. ์ด์ ํ๊ฒฝ์๋ ๋(null)์ด ์๊ฑฐ๋ ์ค๋๋ enum ๋ฌธ์์ด, ์ ๊ท์น์ด ์๊ธฐ๊ธฐ ์ ์ ์์ฑ๋ ํ ๊ฐ์ ์ฃ์ง ์ผ์ด์ค๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด ์ฌ์์ฑ ์์ ํ ์คํค๋ง ์งํ๊ฐ ์ค์ํ ์ด์ ์ ๋๋ค. ๋ชฉํ๋ ๋ฐฑ์๋ ์ฝ๋๊ฐ ์์ ํ ์ฌ์์ฑ๋๋๋ผ๋ ๊ฐ ๋ณ๊ฒฝ์ด ์์ ํ๋๋ก ํด์ ๊ธฐ์กด ๋ ์ฝ๋๊ฐ ์ ํจํ๊ณ ์ ๋ ์ฝ๋๋ ๊ณ์ ์์ฑ๋ ์ ์๊ฒ ํ๋ ๊ฒ์ ๋๋ค.
โ์์ธก ๊ฐ๋ฅํ ๋ง์ด๊ทธ๋ ์ด์ โ์ ๋ฐฐํฌ ์ ์ ๋ค ๊ฐ์ง ์ง๋ฌธ์ ๋ตํ ์ ์๋ค๋ ์๋ฏธ์ ๋๋ค: ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฌด์์ด ๋ฐ๋๋๊ฐ, ๊ธฐ์กด ํ์ ๋ฌด์จ ์ผ์ด ๋ฐ์ํ ๊ฒ์ธ๊ฐ, ๋กค์์ ์ค ์ด๋ค ๋ฒ์ ์ ์ฑ์ด ๋์ํ ์ ์๋๊ฐ, ์์์น ๋ชปํ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ์ด๋ป๊ฒ ๋กค๋ฐฑํ ๊ฒ์ธ๊ฐ.
๊ฐ๋จํ ๋ชจ๋ธ: ์คํค๋ง, ๋ง์ด๊ทธ๋ ์ด์ , ์ฌ์์ฑ๋ ์ฝ๋
ํ๋ซํผ์ด ๋ฐฑ์๋๋ฅผ ์ฌ์์ฑํ ์ ์์ ๋, ๋จธ๋ฆฟ์์์ ์ธ ๊ฐ์ง๋ฅผ ๋ถ๋ฆฌํด ์๊ฐํ๋ฉด ๋์์ด ๋ฉ๋๋ค: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง, ์ด๋ฅผ ๋ณ๊ฒฝํ๋ ๋ง์ด๊ทธ๋ ์ด์ ๋จ๊ณ, ๊ทธ๋ฆฌ๊ณ ์ด์์ ์ด๋ฏธ ์กด์ฌํ๋ ์ค๋ฐ์ดํฐ(๋ฐํ์ ๋ฐ์ดํฐ). ์ด๋ค์ ํผ๋ํ๋ฉด ๋ณ๊ฒฝ์ด ์์ธก ๋ถ๊ฐ๋ฅํ๊ฒ ๋๊ปด์ง๋๋ค.
์ฌ์์ฑ์ โ์ต์ ๋ชจ๋ธ๋ก๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์ฌ๊ตฌ์ฑํ๋ ๊ฒโ์ผ๋ก ์๊ฐํ์ธ์. AppMaster ๊ฐ์ ๋๊ตฌ์์๋ ์ด ์ฌ์์ฑ์ด ์์ ์ค ์ฌ๋ฌ ๋ฒ ์ผ์ด๋ฉ๋๋ค: ํ๋๋ฅผ ์กฐ์ ํ๊ณ , ๋น์ฆ๋์ค ๋ก์ง์ ์์ ํ๊ณ , ์๋ํฌ์ธํธ๋ฅผ ์ถ๊ฐํ๊ณ , ์ฌ์์ฑํ๊ณ , ํ ์คํธํ๊ณ , ๋ฐ๋ณตํฉ๋๋ค. ์ฌ์์ฑ์ ์ฆ์ต๋๋ค. ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ทธ๋ ์ง ์์์ผ ํฉ๋๋ค.
๊ฐ๋จํ ๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์คํค๋ง: ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ, ์ปฌ๋ผ, ์ธ๋ฑ์ค, ์ ์ฝ์กฐ๊ฑด์ ๊ตฌ์กฐ์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ธฐ๋ํ๋ ํํ์ ๋๋ค.
- ๋ง์ด๊ทธ๋ ์ด์ : ์คํค๋ง๋ฅผ ํ ๋ฒ์ ์์ ๋ค์ ๋ฒ์ ์ผ๋ก ์ฎ๊ธฐ๋ ์์ํ๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๋จ๊ณ(๋๋ก๋ ๋ฐ์ดํฐ ์ด๋๋ ํฌํจ). ๊ฐ ํ๊ฒฝ์์ ์คํํ๋ ๊ฒ์ ๋๋ค.
- ๋ฐํ์ ๋ฐ์ดํฐ: ์ฌ์ฉ์์ ํ๋ก์ธ์ค๊ฐ ์์ฑํ ์ค์ ๋ ์ฝ๋์ ๋๋ค. ๋ณ๊ฒฝ ์ , ์ค, ํ ๋ชจ๋ ์ ํจํด์ผ ํฉ๋๋ค.
์ฌ์์ฑ๋ ์ฝ๋๋ โํ์ฌ ์คํค๋ง์ ํต์ ํ๋ ํ์ฌ ์ฑโ์ผ๋ก ์ทจ๊ธํด์ผ ํฉ๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ์ ์คํค๋ง์ ๋ฐํ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ณ๊ฒฝ์ ๋ง์ถฐ ์ ๋ ฌํด ์ฃผ๋ ๋ค๋ฆฌ์ ๋๋ค.
์ฌ์์ฑ์ด ํ์ ๋ฐ๊พธ๋ ์ด์
์ฌ์์ฑ์ ์์ฃผ ํ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๋ง์ ์์ ์คํค๋ง ์์ ์ ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ ์์ฒด๋ก๋ ์ ์์ ๋๋ค. ์ํ์ ์ด๋ฌํ ์์ ์ด ํ์ ํธํ์ฑ์ ๊นจ๋จ๋ฆฌ๊ฑฐ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ด ๊ฒฐ์ ๋ก ์ ์ด์ง ์์ ๋ ๋ํ๋ฉ๋๋ค.
์ด๋ฅผ ๊ด๋ฆฌํ๋ ์ค์ฉ์ ๋ฐฉ๋ฒ์ ์ฌ์์ฑ์ ์์ ํ ์คํค๋ง ์งํ๋ฅผ ์๊ณ ๋๋๋ฆด ์ ์๋ ๋จ๊ณ๋ค์ ์ฐ์์ผ๋ก ๊ณํํ๋ ๊ฒ์ ๋๋ค. ํ ๋ฒ์ ํฐ ์ ํ์ ํ๊ธฐ๋ณด๋ค ์ค๋๋ ์ฝ๋์ ์๋ก์ด ์ฝ๋ ๊ฒฝ๋ก๊ฐ ์งง์ ๊ธฐ๊ฐ ๋์ ํจ๊ป ๋์ํ๋๋ก ์ ์ด๋ ์ด๋์ ์ํํ์ธ์.
์๋ฅผ ๋ค์ด ๋ผ์ด๋ธ API์์ ์ฌ์ฉํ๋ ์ปฌ๋ผ ์ด๋ฆ์ ๋ฐ๊พธ๋ ค๋ฉด ์ฆ์ ์ด๋ฆ์ ๋ฐ๊พธ์ง ๋ง์ธ์. ๋จผ์ ์ ์ปฌ๋ผ์ ์ถ๊ฐํ๊ณ , ๋ ๋ค ์ฐ๋๋ก ํ๋ฉฐ, ๊ธฐ์กด ํ์ ๋ฐฑํํ ๋ค ์ฝ๊ธฐ๋ฅผ ์ ์ปฌ๋ผ์ผ๋ก ์ ํํ์ธ์. ๊ทธ ๋ค์์์ผ ์ค๋๋ ์ปฌ๋ผ์ ์ ๊ฑฐํฉ๋๋ค. ๊ฐ ๋จ๊ณ๋ ํ ์คํธํ๊ธฐ ์ฝ๊ณ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๋ฐ์ดํฐ ์์ ์์ด ์ผ์ ์ค์งํ ์ ์์ต๋๋ค.
์ด๋ฐ ์ฌ๊ณ ๋ฐฉ์์ ์ฌ์์ฑ์ด ๋งค์ผ ์ผ์ด๋๋๋ผ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ธก ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
์คํค๋ง ๋ณ๊ฒฝ ์ข ๋ฅ์ ์ด๋ค ๊ฒ์ด ์ด์์ ๊นจ๋จ๋ฆฌ๋๊ฐ
๋ฐฑ์๋๊ฐ ์ต์ ์คํค๋ง์์ ์ฌ์์ฑ๋๋ฉด ์ฝ๋๋ ๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ง๊ธ ๊ทธ ์คํค๋ง์ ์ผ์นํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋์ ์ฌ์์ฑ ์์ ํ ์คํค๋ง ์งํ๋ โ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๊ฐ?โ๋ณด๋ค โ๋ณ๊ฒฝ์ ๋กค์์ํ๋ ๋์ ์ค๋๋ ๋ฐ์ดํฐ์ ์ค๋๋ ์์ฒญ์ด ๊ฒฌ๋ ์ ์๋๊ฐ?โ์ ๋ ๊ฐ๊น์ต๋๋ค.
์ด๋ค ๋ณ๊ฒฝ์ ๊ธฐ์กด ํ์ด๋ ์ฟผ๋ฆฌ๋ฅผ ๋ฌดํจํํ์ง ์์ ๋ณธ์ง์ ์ผ๋ก ์์ ํฉ๋๋ค. ๋ค๋ฅธ ๋ณ๊ฒฝ์ ๋ฐ์ดํฐ์ ์๋ฏธ๋ฅผ ๋ฐ๊พธ๊ฑฐ๋ ์คํ ์ค์ธ ์ฑ์ด ์ฌ์ ํ ๊ธฐ๋ํ๋ ๊ฒ์ ์ ๊ฑฐํด ์ด์ ์ฌ๊ณ ๋ก ์ด์ด์ง๋๋ค.
๋ฎ์ ์ํ, ๋ณดํต ์์ (์ถ๊ฐ์ ๋ณ๊ฒฝ)
์ถ๊ฐ์ ๋ณ๊ฒฝ์ ๊ธฐ์กด ๋ฐ์ดํฐ์ ๊ณต์กดํ ์ ์์ด ๊ฐ์ฅ ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ์์ง ์๋ฌด๊ฒ๋ ์์กดํ์ง ์๋ ์ ํ ์ด๋ธ.
- ๊ธฐ๋ณธ๊ฐ์ด ํ์ ์๋ ์ nullable ์ปฌ๋ผ.
- ๋์์ ๋์ผ๋ก ์ ํ์ ์ธ ์ API ํ๋.
์: users ํ
์ด๋ธ์ nullable์ธ middle_name ์ปฌ๋ผ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ณดํต ์์ ํฉ๋๋ค. ๊ธฐ์กด ํ์ ์ ํจํ๊ณ , ์ฌ์์ฑ๋ ์ฝ๋๋ ๊ฐ์ด ์์ ๋ ์ฝ์ ์ ์์ผ๋ฉฐ, ์ค๋๋ ํ์ ๋จ์ํ NULL์ ๊ฐ์ง๋๋ค.
์ค๊ฐ ์ํ(์๋ฏธ ๋ณ๊ฒฝ)
์ด ๋ณ๊ฒฝ์ ๊ธฐ์ ์ ์ผ๋ก๋ โ์๋โํ์ง๋ง ๋์์ด ๊นจ์ง ์ ์์ต๋๋ค. ์ฌ์์ฑ์ ๊ฒ์ฆ, ์์ฑ๋ ๋ชจ๋ธ, ๋น์ฆ๋์ค ๋ก์ง ๊ฐ์ ์ ์ ๋ฐ์ดํธํ๋ฏ๋ก ์ฃผ์ ๊น์ ์กฐ์ ์ด ํ์ํฉ๋๋ค.
์ด๋ฆ ๋ณ๊ฒฝ์ ์ ํ์ ์ธ ํจ์ ์
๋๋ค: phone์ mobile_phone์ผ๋ก ๋ฐ๊พธ๋ฉด ์ฌ์์ฑ๋ ์ฝ๋๋ ๋ ์ด์ phone์ ์ฝ์ง ์์ ์ ์๋๋ฐ ์ด์์๋ ๋ฐ์ดํฐ๊ฐ ๊ทธ๋๋ก ๋จ์ ์์ ์ ์์ต๋๋ค. ๋จ์(์: ๊ฐ๊ฒฉ์ ๋ฌ๋ฌ์์ ์ผํธ๋ก ์ ์ฅ) ๋ณ๊ฒฝ์ ์ฝ๋๋ณด๋ค ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋ฐ๋๊ฑฐ๋ ๊ทธ ๋ฐ๋์ผ ๋ ๊ณ์ฐ์ ์กฐ์ฉํ ๋ง์น ์ ์์ต๋๋ค.
Enum๋ ์๋ฆฌํ ๋ถ๋ถ์ ๋๋ค. Enum์ ์ขํ๋ฉด(๊ฐ ์ ๊ฑฐ) ๊ธฐ์กด ํ์ด ๋ฌดํจํ๋ ์ ์์ต๋๋ค. ํ์ฅํ๋ ๊ฒ์(๊ฐ ์ถ๊ฐ) ๋ณดํต ์์ ํ์ง๋ง ๋ชจ๋ ์ฝ๋ ๊ฒฝ๋ก๊ฐ ์ ๊ฐ์ ์ฒ๋ฆฌํ ์ ์์ด์ผ ํฉ๋๋ค.
์ค์ฉ์ ์ ๊ทผ์ ์๋ฏธ ๋ณ๊ฒฝ์ โ์๋ก ์ถ๊ฐ โ ๋ฐฑํ โ ์ ํ โ ๋์ค์ ์ ๊ฑฐโ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค.
๋์ ์ํ(ํ๊ดด์ ๋ณ๊ฒฝ)
ํ๊ดด์ ๋ณ๊ฒฝ์ ํ๋ซํผ์ด ์ฝ๋๋ฅผ ์ฌ์์ฑํด ์ ํํ๋ฅผ ๋ ์ด์ ๊ธฐ๋ํ์ง ์์ ๋ ์ด์์ ์ฆ์ ๊นจ๋จ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ปฌ๋ผ ์ญ์ , ํ ์ด๋ธ ์ญ์ , nullable์ not-null๋ก ๋ฐ๊พธ๋ ๊ฒ์ ์ด๋ค ์์ฒญ์ด ๊ทธ ๊ฐ์ ๋ฃ์ง ์์๋ง์ ์ฐ๊ธฐ ์คํจ๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค. โ๋ชจ๋ ํ์ ์ด๋ฏธ ์๋คโ๊ณ ์๊ฐํ๋๋ผ๋ ๋ค์ ์ฃ์ง ์ผ์ด์ค๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ก์ด ๋ฐ์ฆํ ์ ์์ต๋๋ค.
not-null ๋ณ๊ฒฝ์ ํด์ผ ํ๋ค๋ฉด ๋จ๊ณ๋ณ๋ก ํ์ธ์: ๋จผ์ ์ปฌ๋ผ์ nullable๋ก ์ถ๊ฐํ๊ณ ๋ฐฑํํ ๋ค ์ฑ ๋ก์ง์ ๊ฐฑ์ ํด ํญ์ ๊ฐ์ ์ค์ ํ๊ฒ ํ๊ณ , ๊ทธ ๋ค์์ not-null์ ๊ฐ์ ํฉ๋๋ค.
์ฑ๋ฅ๊ณผ ์์ ๋ณ๊ฒฝ(์ฐ๊ธฐ ์ฐจ๋จ ๊ฐ๋ฅ)
์ธ๋ฑ์ค์ ์ ์ฝ์ โ๋ฐ์ดํฐ ๋ชจ์โ ๋ณ๊ฒฝ์ ์๋์ง๋ง ๋ค์ดํ์์ ์ด๋ํ ์ ์์ต๋๋ค. ํฐ ํ ์ด๋ธ์์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ณ ์ ์ ์ฝ์ ์ถ๊ฐํ๋ฉด ์ฐ๊ธฐ๋ฅผ ์ ๊ธ ์ ์์ด ํ์์์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. PostgreSQL์์๋ ์จ๋ผ์ธ ์นํ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ ์์ ํ๊ฒ ์ํ๋๋ ์์ ์ด ์์ง๋ง ํต์ฌ์ ํ์ด๋ฐ์ ๋๋ค: ํธ๋ํฝ์ด ์ ์ ์๊ฐ์ ์ํํ๊ณ ์คํ ์ด์ง ๋ณต์ฌ๋ณธ์์ ์์ ์๊ฐ์ ์ธก์ ํ์ธ์.
์๊ฐ๋ณด๋ค ์ฃผ์๊ฐ ํ์ํ ๋ณ๊ฒฝ์ด ์์ผ๋ฉด ๋ค์์ ๊ณํํ์ธ์:
- ํธํ์ฑ์ ์ ์งํ๋ ๋ ๋จ๊ณ ๋กค์์(๋จผ์ ์คํค๋ง, ๊ทธ๋ค์ ์ฝ๋ ๋๋ ๊ทธ ๋ฐ๋).
- ๋ฐฐ์น๋ก ์คํํ๋ ๋ฐฑํ.
- ๋ช ํํ ๋กค๋ฐฑ ๊ฒฝ๋ก(์ฌ์์ฑ๋ ๋ฐฑ์๋๊ฐ ์ผ์ฐ ๋ผ์ด๋ธ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํ ์ง).
- ๋ฐ์ดํฐ๊ฐ ์ ๊ท์น๊ณผ ์ผ์นํจ์ ์ฆ๋ช ํ๋ ๊ฒ์ฆ ์ฟผ๋ฆฌ.
- โ์ค๋๋ ํ๋ ๋์ค์ ์ ๊ฑฐโ ํฐ์ผ์ ๋ง๋ค์ด ์ ๋ฆฌ ์์ ์ด ๊ฐ์ ๋ฐฐํฌ์์ ๋ฐ์ํ์ง ์๊ฒ ํ ๊ฒ.
AppMaster ๊ฐ์ ํ๋ซํผ์ ์ฌ์ฉํ๋ค๋ฉด ๊ฐ์ฅ ์์ ํ ์ฌ๊ณ ๋ฐฉ์์: ์ค๋๋ ๋ฐ์ดํฐ๊ฐ ์ค๋๋ ๋ฒํธ ์ ์๋ ๋ณ๊ฒฝ์ ๋จผ์ ๋ฐฐํฌํ๊ณ , ์์คํ ์ด ์ด๋ฏธ ์ ์ํ ํ์ ๊ท์น์ ๊ฐํํ๋ ๊ฒ์ ๋๋ค.
์ฌ์์ฑ ์์ ๋ณ๊ฒฝ์ ์ํ ์์น
์ฌ์์ฑ๋ ๋ฐฑ์๋๋ ์คํค๋ง ๋ณ๊ฒฝ์ด ์ด์์ ์ค๋๋ ํ๊ณผ ๋ง์ง ์์ ๋ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค. ์ฌ์์ฑ ์์ ํ ์คํค๋ง ์งํ์ ๋ชฉํ๋ ๊ฐ๋จํฉ๋๋ค: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์์ฑ๋ ์ฝ๋๊ฐ ์๋ก๋ฅผ ๋ฐ๋ผ์ก๋ ๋์ ์ฑ์ด ๊ณ์ ์๋ํ๋๋ก ์๊ณ ์์ธก ๊ฐ๋ฅํ ๋จ๊ณ๋ก ๋ณ๊ฒฝ์ ์ ์งํ๋ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ์ โํ์ฅ โ ๋ง์ด๊ทธ๋ ์ด์ โ ์์ถโ
์๋ฏธ ์๋ ๋ณ๊ฒฝ์ ํญ์ ์ธ ๋จ๊ณ๋ก ์ฒ๋ฆฌํ์ธ์. ๋จผ์ ์คํค๋ง๋ฅผ ํ์ฅํด ์ค๋๋ ์ฝ๋์ ์ ์ฝ๋๊ฐ ๋์์ ๋์ํ๋๋ก ํฉ๋๋ค. ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ค๋๋ ์ปฌ๋ผ, ๊ธฐ๋ณธ๊ฐ, ์ ์ฝ์ ์ ๊ฑฐํฉ๋๋ค.
์ค์ฉ ๊ท์น: โ์ ๊ตฌ์กฐโ์ โํ๊ดด์ ์ ๋ฆฌโ๋ฅผ ๋์ผํ ๋ฐฐํฌ์ ๊ฒฐํฉํ์ง ๋ง์ธ์.
์ผ์ ๊ธฐ๊ฐ ๋์ ์ค๋๋ ํํ์ ์ ํํ๋ฅผ ๋ชจ๋ ์ง์ํ์ธ์
๋ค์๊ณผ ๊ฐ์ ๊ธฐ๊ฐ์ด ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ์ธ์:
- ์ผ๋ถ ๋ ์ฝ๋๋ ์ ํ๋๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ผ๋ถ๋ ๊ทธ๋ ์ง ์๋ค.
- ์ผ๋ถ ์ฑ ์ธ์คํด์ค๋ ์ค๋๋ ์ฝ๋๋ฅผ ์คํํ๊ณ ์ผ๋ถ๋ ์ฌ์์ฑ๋ ์ฝ๋๋ฅผ ์คํํ๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์ก, ์ํฌํธ, ๋ชจ๋ฐ์ผ ํด๋ผ์ด์ธํธ๋ ์ง์ฐ๋ ์ ์๋ค.
์ด ๊ธฐ๊ฐ ๋์ ๋ ํํ๊ฐ ๋ชจ๋ ์ ํจํ๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ์ธ์. ์ด๋ Data Designer์์ ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ๊ณ Go ๋ฐฑ์๋๋ฅผ ์ฌ์์ฑํ๋ ํ๋ซํผ์์๋ ๋ ์ค์ํฉ๋๋ค.
์ฐ๊ธฐ๋ณด๋ค ๋จผ์ ์ฝ๊ธฐ ํธํ์ฑ์ ํ๋ณดํ์ธ์
๋จผ์ ์ ์ฝ๋๊ฐ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ฝ์ ์ ์๊ฒ ๋ง๋์ธ์. ๊ทธ๋ค์์ ์ฐ๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ ํํด ์ ๋ฐ์ดํฐ ๋ชจ์์ ์์ฑํ๊ฒ ํ์ธ์.
์: ํ๋์ status ํ๋๋ฅผ status + status_reason์ผ๋ก ๋ถ๋ฆฌํ ๊ฒฝ์ฐ, ๋จผ์ status_reason์ด ์์ ๋๋ ์ฒ๋ฆฌํ ์ ์๋ ์ฝ๋๋ฅผ ๋ฐฐํฌํ์ธ์. ๊ทธ ์ดํ์ status_reason์ ์ฐ๊ธฐ ์์ํฉ๋๋ค.
๋ถ๋ถ์ ์ด๊ฑฐ๋ ์ ์ ์๋ ๋ฐ์ดํฐ์ ๋ํด ๊ฒฐ์ ํ์ธ์
enum, non-null ์ปฌ๋ผ, ๋ ์๊ฒฉํ ์ ์ฝ์ ์ถ๊ฐํ ๋ ๊ฐ์ด ๋๋ฝ๋๊ฑฐ๋ ์์ ๋ฐ์ผ ๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๋ฏธ๋ฆฌ ๊ฒฐ์ ํ์ธ์:
- ์์๋ก null์ ํ์ฉํ ๋ค ๋ฐฑํํ๊ธฐ
- ์๋ฏธ๋ฅผ ๋ฐ๊พธ์ง ์๋ ์์ ํ ๊ธฐ๋ณธ๊ฐ ์ค์
- ์ฝ๊ธฐ ์ค๋ฅ๋ฅผ ํผํ๊ธฐ ์ํด โunknownโ ๊ฐ ์ ์ง
์ด๋ ๊ฒ ํ๋ฉด ์กฐ์ฉํ ๋ฐ์ดํฐ ์์(์๋ชป๋ ๊ธฐ๋ณธ๊ฐ)๊ณผ ์ฌ๊ฐํ ์คํจ(์ ์ ์ฝ์ด ์ค๋๋ ํ์ ๊ฑฐ๋ถํจ)๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๊ฐ ๋จ๊ณ๋ง๋ค ๋กค๋ฐฑ ์คํ ๋ฆฌ๋ฅผ ๊ฐ์ง์ธ์
ํ์ฅ ๋จ๊ณ์์๋ ๋กค๋ฐฑ์ด ๊ฐ์ฅ ์ฝ์ต๋๋ค. ๋๋๋ ค์ผ ํ ๊ฒฝ์ฐ ์ค๋๋ ์ฝ๋๋ ํ์ฅ๋ ์คํค๋ง์์๋ ์๋ํด์ผ ํฉ๋๋ค. ์ด๋ค ๊ฒ์ ๋กค๋ฐฑํ ์ง(์ฝ๋๋ง์ธ์ง, ์ฝ๋์ ๋ง์ด๊ทธ๋ ์ด์ ๋ชจ๋์ธ์ง)๋ฅผ ์ ์ด๋๊ณ ํ๊ดด์ ๋ณ๊ฒฝ์ ํ์ ์ด ์๊ธฐ ์ ๊น์ง ํผํ์ธ์.
๋จ๊ณ๋ณ: ์ฌ์์ฑ์ ๊ฒฌ๋๋ ๋ณ๊ฒฝ ๊ณํ
์ฌ์์ฑ๋ ๋ฐฑ์๋๋ ๊ด๋ํ์ง ์์ต๋๋ค: ์คํค๋ง์ ์์ฑ๋ ์ฝ๋๊ฐ ๋ถ์ผ์นํ๋ฉด ์ด์์ด ๋จผ์ ์ด๋ฅผ ์ฐพ์๋ ๋๋ค. ๊ฐ์ฅ ์์ ํ ์ ๊ทผ์ ๋ชจ๋ ๋ณ๊ฒฝ์ ์๊ณ ๋๋๋ฆด ์ ์๋ ๋กค์์์ผ๋ก ๊ฐ์ฃผํ๋ ๊ฒ์ ๋๋ค. ๋ ธ์ฝ๋ ๋๊ตฌ๋ก ๋น๋ํ๋๋ผ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
๋จผ์ ์๋๋ฅผ ํ๋ฒํ ์ธ์ด๋ก ์ ๊ณ ํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ด๋ค์ง ์ ์ด๋ณด์ธ์. ํ๋ก๋์ ์์ ์ค์ 3~5๊ฐ์ ํ์ ๊ณจ๋ผ ๋น์ด ์๋ ๊ฐ, ์ค๋๋ ํ์, ๋๋ผ์ด ๊ธฐ๋ณธ๊ฐ ๊ฐ์ ์ง์ ๋ถํ ๋ถ๋ถ์ ๊ธฐ๋กํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์ค์ ๋ฐ์ดํฐ๊ฐ ๋ง์กฑํ์ง ๋ชปํ ์๋ฒฝํ ์ ํ๋๋ฅผ ์ค๊ณํ๋ ์ค์๋ฅผ ํผํ ์ ์์ต๋๋ค.
๋ค์์ AppMaster๊ฐ Data Designer ๋ชจ๋ธ์์ Go ๋ฐฑ์๋๋ฅผ ์ฌ์์ฑํ ๋์ฒ๋ผ ์ฌ์์ฑ ํ๋ซํผ์์ ์ ์๋ํ๋ ์ค์ฉ์ ์์์ ๋๋ค:
-
๋จผ์ ํ์ฅํ๊ณ ๋์ฒดํ์ง ๋ง์ธ์. ์ ์ปฌ๋ผ์ด๋ ํ ์ด๋ธ์ ์ถ๊ฐํ ๋๋ ์ถ๊ฐ ๋ฐฉ์์ผ๋ก ํ์ธ์. ์ ํ๋๋ ์ฒ์์ nullable๋ก ๋๊ฑฐ๋ ์์ ํ ๊ธฐ๋ณธ๊ฐ์ ์ฃผ์ธ์. ์ ๊ด๊ณ๋ฅผ ๋์ ํ ๋๋ ์ฑ์์ง ๋๊น์ง ์ธ๋ํค๋ฅผ ๋น์๋ ์ ์๊ฒ ํ์ธ์.
-
์๋ฌด๊ฒ๋ ์ ๊ฑฐํ์ง ์๊ณ ํ์ฅ๋ ์คํค๋ง๋ฅผ ๋ฐฐํฌํ์ธ์. ์ค๋๋ ์ฝ๋๊ฐ ๊ณ์ ์๋ํ๋ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ์ ๋ฐฐํฌํ์ธ์. ๋ชฉํ๋ ์ค๋๋ ์ฝ๋๊ฐ ์ ์ปฌ๋ผ์ ๊ณ์ ์ฐ๋๋ผ๋ DB๊ฐ ์ด๋ฅผ ์๋ฝํ๋ ๊ฒ์ ๋๋ค.
-
์ ์ด๋ ์ก์ผ๋ก ๋ฐฑํํ์ธ์. ์ ํ๋๋ฅผ ๋ฐฐ์น ํ๋ก์ธ์ค๋ก ์ฑ์ฐ๋ ๋ชจ๋ํฐ๋งํ๊ณ ์ฌ์คํํ ์ ์๊ฒ ํ์ธ์. ๋ฉฑ๋ฑ(idempotent)์ผ๋ก ๋ง๋์ธ์(๋ ๋ฒ ์คํํด๋ ๋ฐ์ดํฐ๊ฐ ๋ง๊ฐ์ง์ง ์์). ํ ์ด๋ธ์ด ํฌ๋ฉด ์ ์ง์ ์ผ๋ก ์งํํ๊ณ ์ ๋ฐ์ดํธ๋ ํ ์๋ฅผ ๊ธฐ๋กํ์ธ์.
-
๋จผ์ ์ฝ๊ธฐ๋ฅผ ์ ํํ๊ณ ํด๋ฐฑ์ ๋์ธ์. ์ฌ์์ฑ๋ ๋ก์ง์ด ์ ํ๋๋ฅผ ์ฐ์ ์ฝ๋ ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ค๋๋ ํ๋๋ก ํด๋ฐฑํ๋๋ก ํ์ธ์. ์ฝ๊ธฐ๊ฐ ์์ ๋ ํ์์ผ ์ฐ๊ธฐ๋ฅผ ์ ํ๋๋ก ์ ํํ์ธ์.
-
๋ง์ง๋ง์ ์ ๋ฆฌํ์ธ์. ํ์ (๋ฐ ๋กค๋ฐฑ ๊ณํ)์ด ์๋ฉด ์ค๋๋ ํ๋๋ฅผ ์ ๊ฑฐํ๊ณ ์ ์ฝ์ ๊ฐํํ์ธ์: NOT NULL ์ค์ , ๊ณ ์ ์ ์ฝ ์ถ๊ฐ, ์ธ๋ํค ๊ฐ์ ๋ฑ.
๊ตฌ์ฒด์ ์: ์์ ํ
์คํธ status ์ปฌ๋ผ์ statuses ํ
์ด๋ธ์ ๊ฐ๋ฆฌํค๋ status_id๋ก ๊ต์ฒดํ๋ ค๋ฉด, status_id๋ฅผ nullable๋ก ์ถ๊ฐํ๊ณ ๊ธฐ์กด ํ
์คํธ์์ ๋ฐฑํํ ๋ค ์ฑ์ ์
๋ฐ์ดํธํด status_id๋ฅผ ์ฐ์ ์ฝ๊ณ null์ผ ๋ status๋ก ํด๋ฐฑํ๊ฒ ํ์ธ์. ๊ทธ ๋ค์ status๋ฅผ ์ญ์ ํ๊ณ status_id๋ฅผ ํ์๋ก ๋ง๋์ธ์. ์ด ๊ณผ์ ์ ๊ฐ ๋จ๊ณ์์ DB๊ฐ ํธํ๋๋ฏ๋ก ์ฌ์์ฑ ์์ ํฉ๋๋ค.
์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ค๋ฌด ํจํด
๋ฐฑ์๋๊ฐ ์ฌ์์ฑ๋ ๋ ์์ ์คํค๋ง ์์ ์ด API, ๊ฒ์ฆ ๊ท์น, UI ํผ๊น์ง ํ๊ธ๋ฉ๋๋ค. ์ฌ์์ฑ ์์ ํ ์คํค๋ง ์งํ์ ๋ชฉํ๋ ์ ์ฝ๋๊ฐ ๋น ๋ฅด๊ฒ ๋กค์์๋๋๋ผ๋ ์ค๋๋ ๋ฐ์ดํฐ๊ฐ ์ ํจํ๋๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋๋ค.
ํจํด 1: ๋นํ๊ดด์ ์ด๋ฆ ๋ณ๊ฒฝ
์ง์ ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ ์ํํฉ๋๋ค. ์์ ํ ์ ๊ทผ์ ์ด๋ฆ ๋ณ๊ฒฝ์ ์งง์ ๋ง์ด๊ทธ๋ ์ด์ ๊ธฐ๊ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค.
- ์ ์ปฌ๋ผ(์:
customer_phone)์ ์ถ๊ฐํ๊ณ ๊ธฐ์กด ์ปฌ๋ผ(phone)์ ์ ์งํ์ธ์. - ์ ์ฅ ์ ๋ ํ๋์ ๋ชจ๋ ์ฐ๋ ์ด์ค ์ฐ๊ธฐ(dual-write)๋ฅผ ๊ตฌํํ์ธ์.
- ๊ธฐ์กด ํ์ ๋ฐฑํํด
customer_phone์ ์ฑ์ฐ์ธ์. - ์ปค๋ฒ๋ฆฌ์ง๊ฐ ์ถฉ๋ถํด์ง๋ฉด ์ฝ๊ธฐ๋ฅผ ์ ์ปฌ๋ผ์ผ๋ก ์ ํํ์ธ์.
- ๋์ค ๋ฆด๋ฆฌ์ค์์ ์ค๋๋ ์ปฌ๋ผ์ ์ญ์ ํ์ธ์.
์ด ๋ฐฉ์์ Data Designer์์ ์คํค๋ง๋ฅผ ์ ๋ฐ์ดํธํด Go ๋ฐฑ์๋๋ฅผ ์ฌ์์ฑํ๋ ํ๊ฒฝ์์ ์ ์๋ํฉ๋๋ค. ์ด์ค ์ฐ๊ธฐ๋ ๋ ์ธ๋์ ์ฝ๋๋ฅผ ๋์์ ๋ง์กฑ์ํต๋๋ค.
ํจํด 2: ํ๋์ ํ๋๋ฅผ ๋๋ก ๋ถ๋ฆฌ
full_name์ first_name๊ณผ last_name์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ ์ ์ฌํ์ง๋ง ๋ฐฑํ์ด ๋ ๊น๋ค๋กญ์ต๋๋ค. ์๋ณธ ํ๋๋ฅผ ์์ ํ ์ ๊ฑฐํ๊ธฐ ์ ๊น์ง๋ full_name์ ์ ์งํ์ธ์.
์ค์ฉ ๊ท์น: ํ์ฑ์ ์คํจํ๋ฉด ์ ์ฒด ๋ฌธ์์ด์ last_name์ ์ ์ฅํ๊ณ ๊ฒํ ์ฉ ํ๋๊ทธ๋ฅผ ์ธ์ฐ๋ ๋ฑ ๋ช
ํํ ํด๋ฐฑ์ ๋์ธ์.
ํจํด 3: ํ๋๋ฅผ ํ์๋ก ๋ง๋ค๊ธฐ
nullable์ required๋ก ๋ฐ๊พธ๋ ๊ฒ์ ์ ํ์ ์ธ ์ด์ ๋ฌธ์ ๋ฅผ ์ผ์ผํต๋๋ค. ์์ ํ ์์๋ ๋ฐฑํ ๋จผ์ , ๊ฐ์ ๋ ๋์ค์ ๋๋ค.
๋ฐฑํ์ ๊ธฐ๊ณ์ ์ผ๋ก(๊ธฐ๋ณธ๊ฐ ์ค์ ) ํ๊ฑฐ๋ ๋น์ฆ๋์ค์ ์ผ๋ก(์ฌ์ฉ์์๊ฒ ์๋ฃ ์ ๋ ฅ ์์ฒญ) ํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ์์ ํด์ง ํ์๋ง NOT NULL๊ณผ ๊ฒ์ฆ์ ์ถ๊ฐํ์ธ์. ์ฌ์์ฑ๋ ๋ฐฑ์๋๊ฐ ์๋์ผ๋ก ๋ ์๊ฒฉํ ๊ฒ์ฆ์ ์ถ๊ฐํ ์ ์์ผ๋ ์ด ์์๊ฐ ๋๋ผ์ด ์คํจ๋ฅผ ์๋ฐฉํฉ๋๋ค.
ํจํด 4: enum์ ์์ ํ๊ฒ ๋ณ๊ฒฝํ๊ธฐ
enum ๋ณ๊ฒฝ์ ์ค๋๋ ์ฝ๋๊ฐ ์ค๋๋ ๊ฐ์ ๋ณด๋ผ ๋ ๊นจ์ง๋๋ค. ์ ํ ๊ธฐ๊ฐ์๋ ๋ ๋ค ํ์ฉํ์ธ์. "pending"์ "queued"๋ก ๋ฐ๊ฟ ๋๋ ๋ ๋ค ์ ํจํ๊ฒ ๋๊ณ ๋ก์ง์์ ๋งคํํ์ธ์. ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ค๋๋ ๊ฐ์ ๋ณด๋ด์ง ์๋ ๊ฒ์ ํ์ธํ ๋ค ์ ๊ฑฐํฉ๋๋ค.
ํ ๋ฒ์ ๋ฆด๋ฆฌ์ค์ ๋ณ๊ฒฝ์ ๋ฐ์ด๋ถ์ฌ์ผ ํ๋ค๋ฉด ์ํฅ์ ์ค์ผ ๋ฐฉ๋ฒ:
- ์ ํ๋๋ฅผ ์ถ๊ฐํ๋ ์ค๋๋ ํ๋๋ฅผ ๋จ๊ฒจ๋์ธ์.
- ์ฝ์ ์ด ๊ณ์ ์๋ํ๋๋ก DB ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ.
- ์ฝ๋๋ฅผ ๊ด๋ํ๊ฒ ๋ง๋ค์ด ์ ํ๋๋ฅผ ์ฐ์ ์ฝ๊ณ ์ค๋๋ ํ๋๋ก ํด๋ฐฑํ๋๋ก ํจ.
- ์ผ์์ ์ธ ๋งคํ ๋ ์ด์ด ์ถ๊ฐ(์ ๊ฐ ์ ๋ ฅ โ ์ ๊ฐ ์ ์ฅ).
์ด ํจํด๋ค์ ์ฌ์์ฑ์ผ๋ก ์ฝ๋ ๋์์ด ๋น ๋ฅด๊ฒ ๋ฐ๋์ด๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ธก ๊ฐ๋ฅํ๊ฒ ์ ์งํฉ๋๋ค.
๋๋ผ์์ ์ด๋ํ๋ ํํ ์ค์
๊ฐ์ฅ ํฐ ๋๋ผ์์ ์ฌ๋๋ค์ด ์ฝ๋ ์ฌ์์ฑ์ ๋ง๋ฒ์ ๋ฆฌ์ ๋ฒํผ์ฒ๋ผ ๋ค๋ฃจ๋ ๊ฒ์ ๋๋ค. ์ฌ์์ฑ๋ ๋ฐฑ์๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ์ง๋ง ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ ํ ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ์์ฑ ์์ ํ ์คํค๋ง ์งํ๋ ์๋ก ์์ฑ๋ ์ฝ๋์ ํ ์ด๋ธ์ ์ฌ์ ํ ๋จ์ ์๋ ์ค๋๋ ๋ ์ฝ๋ ๋ ๋ค๋ฅผ ๊ณํํ๋ ๊ฒ์ ๋๋ค.
ํํ ํจ์ ์ค ํ๋๋ ํ๋ซํผ์ด โ๋ง์ด๊ทธ๋ ์ด์ ์ ์์์ ํด์ค ๊ฒโ์ด๋ผ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด AppMaster์์๋ Data Designer ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํด Go ๋ฐฑ์๋๋ฅผ ์ฌ์์ฑํ ์ ์์ง๋ง, ํ๋ซํผ์ด ์ค์ ๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ณํํด์ผ ํ ์ง ์ถ์ธกํ์ง๋ ์์ต๋๋ค. ์๋ก ํ์ํ ํ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๊ธฐ์กด ํ์ ๊ฐ์ ์ฑ์ฐ๋ ๋ช ํํ ๊ณํ์ด ํ์ํฉ๋๋ค.
๋ค๋ฅธ ๋๋ผ์์ ํ๋๋ฅผ ๋๋ฌด ์ผ์ฐ ์ญ์ ํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ ๋๋ค. ๋ฉ์ธ UI์์ ์ฌ์ฉ๋์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ฌ๋ ๋ณด๊ณ ์, ์์ฝ๋ ๋ด๋ณด๋ด๊ธฐ, ์นํ ํธ๋ค๋ฌ, ํน์ ๋๋ฌผ๊ฒ ์ด์ด ๋ณด๋ ๊ด๋ฆฌ์ ํ๋ฉด์์ ์ฌ์ ํ ์ฝํ๊ณ ์์ ์ ์์ต๋๋ค. ํ ์คํธ์์๋ ์์ ํด ๋ณด์ฌ๋ ์ด์์์ ํ ๋ฒ์ด๋ผ๋ ์ฐธ์กฐ๋๋ ๊ฒฝ๋ก๊ฐ ๋จ์ ์์ผ๋ฉด ์คํจํฉ๋๋ค.
๋ฆ์ ๋ฐค ๋กค๋ฐฑ์ ์ด๋ํ๋ ๋ค์ฏ ๊ฐ์ง ์ค์:
- ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ฝ๋๋ฅผ ์ฌ์์ฑํ์ง๋ง ์ค๋๋ ํ์ ์ ํจํ๊ฒ ๋ง๋๋ ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ฑํ๊ฑฐ๋ ๊ฒ์ฆํ์ง ์์.
- ๋ชจ๋ ๋ฆฌ๋์ ๋ผ์ดํฐ๊ฐ ์ ๋ฐ์ดํธยท๋ฐฐํฌ๋๊ธฐ ์ ์ ์ปฌ๋ผ์ ์ด๋ฆ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ญ์ ํจ.
- ํฐ ํ ์ด๋ธ์ ๋ฐฑํํ๋ฉด์ ์์ ์๊ฐ์ ํ์ธํ์ง ์์ ๋ค๋ฅธ ์ฐ๊ธฐ๋ฅผ ๋ง์.
- ์ ์ ์ฝ(NOT NULL, UNIQUE, foreign key)์ ๋จผ์ ์ถ๊ฐํ๊ณ ๋์ค์ ๋ ๊ฑฐ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ฅผ ๊นจ๋จ๋ฆผ์ ๋ฐ๊ฒฌํจ.
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์ก, ๋ด๋ณด๋ด๊ธฐ, ๋ณด๊ณ ์๊ฐ ์ฌ์ ํ ์ค๋๋ ํ๋๋ฅผ ์ฝ๊ณ ์๋ค๋ ๊ฒ์ ์์.
๊ฐ๋จํ ์๋๋ฆฌ์ค: phone์ mobile_number๋ก ๋ฐ๊พธ๊ณ NOT NULL์ ์ถ๊ฐํ ๋ค ์ฌ์์ฑํ๋ฉด ์ฑ ํ๋ฉด์ ์๋ํ์ง๋ง ์ค๋๋ CSV ๋ด๋ณด๋ด๊ธฐ๊ฐ ์ฌ์ ํ phone์ ์ ํํ๊ณ ์์ฒ ๊ฐ์ existing ๋ ์ฝ๋์ mobile_number๊ฐ NULL์ผ ์ ์์ต๋๋ค. ๋ณดํต์ ํด๊ฒฐ์ฑ
์ ๋จ๊ณ์ ๋ณ๊ฒฝ: ์ ์ปฌ๋ผ ์ถ๊ฐ โ ๋ ๋ค ์ฐ๊ธฐ โ ์์ ํ๊ฒ ๋ฐฑํ โ ์ ์ฝ ๊ฐํ ๋ฐ ์ค๋๋ ํ๋ ์ ๊ฑฐ.
๋ ์์ ํ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํ ์ฌ์ ๋ฐฐํฌ ์ฒดํฌ๋ฆฌ์คํธ
๋ฐฑ์๋๊ฐ ์ฌ์์ฑ๋๋ฉด ์ฝ๋๋ ๋น ๋ฅด๊ฒ ๋ฐ๋ ์ ์์ง๋ง ์ด์ ๋ฐ์ดํฐ๋ ๋๋ผ์์ ์ฉ๋ฉํ์ง ์์ต๋๋ค. ์คํค๋ง ๋ณ๊ฒฝ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ์งง์ โ์ด๊ฒ์ด ์์ ํ๊ฒ ์คํจํ ์ ์๋๊ฐ?โ ์ ๊ฒ์ ํ์ธ์. ์ฌ์์ฑ ์์ ํ ์คํค๋ง ์งํ๋ฅผ ์ง๋ฃจํ๊ฒ ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค(๊ทธ๊ฒ ๋ฐ๋ก ์์ ํ ์ํ์ ๋๋ค).
๋๋ถ๋ถ์ ๋ฌธ์ ๋ฅผ ์ก์๋ด๋ 5๊ฐ์ง ์ ๊ฒ
- ๋ฐฑํ ๊ท๋ชจ์ ์๋: ์ผ๋ง๋ ๋ง์ ๊ธฐ์กด ํ์ ์ ๋ฐ์ดํธํด์ผ ํ๋์ง(๋๋ ๋ค์ ์จ์ผ ํ๋์ง) ์ถ์ ํ๊ณ ์ด์์์ ์์ ์๊ฐ์ ๊ณ์ฐํ์ธ์. ์์ DB์์ ๊ด์ฐฎ๋ ๋ฐฑํ์ด ์ค์ ๋ฐ์ดํฐ์์๋ ๋ช ์๊ฐ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
- ๋ฝ๊ณผ ๋ค์ดํ์ ์ํ: ๋ณ๊ฒฝ์ด ์ฐ๊ธฐ๋ฅผ ๋ง์ ์ ์๋์ง ํ์ธํ์ธ์. ํฐ ํ ์ด๋ธ ๋ณ๊ฒฝ์ด๋ ํ์ ๋ณ๊ฒฝ์ ์ฐ๊ธฐ ์ ๊ธ์ ์ค๋ ์ ์งํ ์ ์์ต๋๋ค. ์ฐจ๋จ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉด ์์ ํ ๋กค์์์ ๊ณํํ์ธ์(๋จผ์ ์ ์ปฌ๋ผ ์ถ๊ฐ โ ๋์ค์ ๋ฐฑํ โ ๋ง์ง๋ง์ ์ฝ๋ ์ ํ).
- ์ ์ฝ๋ vs ์ ์คํค๋ง ํธํ์ฑ: ๋ฐฐํฌ๋ ๋กค๋ฐฑ ์ค์ ์ ๋ฐฑ์๋๊ฐ ์ ์คํค๋ง์ ๋ํด ์ ๊น ์คํ๋ ์ ์๋ค๊ณ ๊ฐ์ ํ์ธ์. ์ด์ ๋ฒ์ ์ด ํฌ๋์ ์์ด ์ฝ๊ณ ์ธ ์ ์๋๊ฐ? ์๋๋ผ๋ฉด ๋ ๋จ๊ณ ๋ฆด๋ฆฌ์ค๊ฐ ํ์ํฉ๋๋ค.
- ๊ธฐ๋ณธ๊ฐ๊ณผ null ๋์: ์ ์ปฌ๋ผ์ ๋ํด ๊ธฐ์กด ๋ ์ฝ๋๋ NULL์ด ๋ ์ง ๊ธฐ๋ณธ๊ฐ์ด ํ์ํ์ง ๊ฒฐ์ ํ์ธ์. ํนํ ํ๋๊ทธ, ์ํ ํ๋, ํ์์คํฌํ๋ ๋๋ฝ๊ฐ์ ์ ์์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ๋ก์ง์ ํ์ธํ์ธ์.
- ๋ชจ๋ํฐ๋ง ์ ํธ: ๋ฐฐํฌ ํ ์ฃผ์ํ ์ ํํ ์๋์ ๊ณ ๋ฅด์ธ์: ์ค๋ฅ์จ(API ์คํจ), DB ๋๋ฆฐ ์ฟผ๋ฆฌ, ํ/์ก ์คํจ, ์ฃผ์ ์ฌ์ฉ์ ์ก์ (๊ฒฐ์ , ๋ก๊ทธ์ธ, ํผ ์ ์ถ) ๋ฑ. ๊ฒ์ฆ ์ค๋ฅ ๊ธ์ฆ ๊ฐ์ โ์กฐ์ฉํโ ๋ฒ๊ทธ๋ ๊ฐ์ํ์ธ์.
๊ฐ๋จํ ์
orders ํ
์ด๋ธ์ ์ ํ์ ํ๋ status๋ฅผ ์ถ๊ฐํ๋ค๋ฉด ํ ๋ฒ์ โNOT NULL, ๊ธฐ๋ณธ๊ฐ ์์โ์ผ๋ก ๋ฐ์ด๋ถ์ด์ง ๋ง์ธ์. ๋จผ์ nullable๋ก ์ถ๊ฐํ๊ณ ์ ํ์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ ์ฃผ๊ณ , ์ฌ์์ฑ๋ ์ฝ๋๊ฐ ๊ฒฐ์๋ ์ํ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํ ๋ค ๋ฐฑํํ๊ณ ๋ง์ง๋ง์ผ๋ก ์ ์ฝ์ ๊ฐํํ์ธ์.
AppMaster์์๋ ์ด ์ฌ๊ณ ๋ฐฉ์์ด ํนํ ์ ์ฉํฉ๋๋ค. ๋ฐฑ์๋๋ฅผ ์์ฃผ ์ฌ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ ์คํค๋ง ๋ณ๊ฒฝ์ ์ฌ์ด ๋กค๋ฐฑ์ด ๊ฐ๋ฅํ ์์ ๋ฆด๋ฆฌ์ค๋ก ๋ค๋ฃจ๋ฉด ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ธก ๊ฐ๋ฅํด์ง๋๋ค.
์์: ์ด์ ์ฑ์ ๊ธฐ์กด ๋ ์ฝ๋๋ฅผ ๊นจ๋จ๋ฆฌ์ง ์๊ณ ์งํ์ํค๊ธฐ
์๋ฅผ ๋ค์ด ์๋ดํ์์ ํฐ์ผ์ ์ฐ์ ์์๋ฅผ ์์ ํ
์คํธ ํ๋ priority๋ก ํ๊น
ํ๋ค๊ณ ํฉ์๋ค(์: โhighโ, โurgentโ, โHIGHโ, โp1โ). ์ด๋ฅผ ์๊ฒฉํ enum์ผ๋ก ๋ฐ๊ฟ ๋ณด๊ณ ์์ ๋ผ์ฐํ
๊ท์น์ด ์ถ์ธกํ์ง ์๊ฒ ๋ง๋ค๊ณ ์ถ์ต๋๋ค.
์์ ํ ๋ฐฉ๋ฒ์ ์ด์ ๋ ์ฝ๋๋ฅผ ์ ํจํ๊ฒ ์ ์งํ๋ฉด์ ๋ฐฑ์๋๋ฅผ ์ฌ์์ฑํ๋ ๋ ๋ฒ์ ๋ฆด๋ฆฌ์ค์ ๋๋ค.
๋ฆด๋ฆฌ์ค 1: ํ์ฅ, ๋ ๋ค ์ฐ๊ธฐ, ๋ฐฑํ
๋จผ์ ์๋ฌด๊ฒ๋ ์ ๊ฑฐํ์ง ์๊ณ ์คํค๋ง๋ฅผ ํ์ฅํ์ธ์. priority_enum ๊ฐ์ ์ enum ํ๋๋ฅผ ์ถ๊ฐํ๊ณ , ๊ธฐ์กด priority_text ํ๋๋ ์ ์งํฉ๋๋ค.
๊ทธ๋ค์ ์๋ก ์์ฑ๋๊ฑฐ๋ ์์ ๋๋ ํฐ์ผ์ด ๋ ํ๋ ๋ชจ๋์ ์ฐ์ด๋๋ก ๋ก์ง์ ์ ๋ฐ์ดํธํ์ธ์. AppMaster ๊ฐ์ ๋ ธ์ฝ๋ ๋๊ตฌ์์๋ Data Designer ๋ชจ๋ธ๊ณผ Business Process๋ฅผ ์กฐ์ ํด ์ ๋ ฅ์ enum์ ๋งคํํ๊ณ ์๋ณธ ํ ์คํธ๋ ์ ์ฅํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ค์ ์๊ท๋ชจ ๋ฐฐ์น๋ก ๊ธฐ์กด ํฐ์ผ์ ๋ฐฑํํ์ธ์. ํํ ํ
์คํธ ๊ฐ์ enum์ ๋งคํํฉ๋๋ค(์: "p1"์ "urgent" โ urgent, "HIGH" โ high). ์ ์ ์๋ ๊ฐ์ ์ผ์์ ์ผ๋ก medium์ ๋งคํํ๊ณ ๊ฒํ ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ๋ณด๋ ํ๋ฉด์ ์ด์์ ์ผ๋ก๋ ๋ณํ์ง ์์ต๋๋ค. UI๋ ๋์ผํ ์ฐ์ ์์ ์ปจํธ๋กค์ ์ ์งํ๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ enum์ ์ฑ์๋๋ค. ๋ฐฑํ์ด ์งํ๋๋ฉด ๋ฆฌํฌํธ๋ ์ฆ์ enum์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฆด๋ฆฌ์ค 2: ์์ถ ๋ฐ ์ค๋๋ ๊ฒฝ๋ก ์ ๊ฑฐ
ํ์ ์ด ๋ค๋ฉด ์ฝ๊ธฐ๋ฅผ priority_enum๋ง ์ฌ์ฉํ๋๋ก ์ ํํ๊ณ ํํฐ์ ๋์๋ณด๋๋ฅผ ์
๋ฐ์ดํธํ ๋ค ๋์ค ๋ง์ด๊ทธ๋ ์ด์
์์ priority_text๋ฅผ ์ ๊ฑฐํ์ธ์.
๋ฆด๋ฆฌ์ค 2 ์ด์ ์ ์๊ท๋ชจ ์ํ๋ก ๊ฒ์ฆํ์ธ์:
- ์๋ก ๋ค๋ฅธ ํ๊ณผ ์์ฑ ์๊ธฐ๋ฅผ ์์ฐ๋ฅด๋ ํฐ์ผ 20~50๊ฐ๋ฅผ ๊ณ ๋ฅด์ธ์.
- ํ์๋ ์ฐ์ ์์์ ์ ์ฅ๋ enum ๊ฐ์ ๋น๊ตํ์ธ์.
- enum ๊ฐ๋ณ ์ง๊ณ๋ฅผ ํ์ธํด
medium์ด ๊ณผ๋ํ๊ฒ ๋ง์์ง ๊ฐ์ ์ด์์น๋ฅผ ์ฐพ์๋ณด์ธ์.
๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฆด๋ฐฑ์ ๊ฐ๋จํฉ๋๋ค. ๋ฆด๋ฆฌ์ค 1์ด ์ค๋๋ ํ๋๋ฅผ ๋จ๊ฒผ์ผ๋ฏ๋ก ๋ฆด๋ฆฌ์ค 1 ๋ก์ง์ ์ฌ๋ฐฐํฌํ๊ณ UI๋ฅผ ๋ค์ priority_text๋ก ์ฝ๊ฒ ํ ๋ค ๋งคํ์ ๊ณ ์น๊ณ ๋ฐฑํ์ ๋ค์ ์คํํ๋ฉด ๋ฉ๋๋ค.
๋ค์ ๋จ๊ณ: ์คํค๋ง ์งํ๋ฅผ ๋ฐ๋ณต ๊ฐ๋ฅํ ์ต๊ด์ผ๋ก ๋ง๋ค๊ธฐ
์์ธก ๊ฐ๋ฅํ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํ๋ค๋ฉด ์คํค๋ง ๋ณ๊ฒฝ์ ์์ ํ๋ก์ ํธ๋ก ๋ค๋ฃจ์ธ์. ๋ชฉํ๋ ๊ฐ๋จํฉ๋๋ค: ๋ชจ๋ ๋ณ๊ฒฝ์ ์ค๋ช ํ๊ธฐ ์ฝ๊ณ ๋ฆฌํ์คํ๊ธฐ ์ฌ์ฐ๋ฉฐ ์ฐ๋ฐ์ ์ผ๋ก ๊นจ๋จ๋ฆฌ๊ธฐ ์ด๋ ค์์ผ ํฉ๋๋ค.
์๊ฐ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐฐํฌ ์ ์ ์ํฅ์ ๊ฐ์ํํ๋ฏ๋ก ์ ์ฉํฉ๋๋ค. ํ ์ด๋ธ, ๊ด๊ณ, ํ๋ ํ์ ์ ํ ๊ณณ์์ ๋ณด๋ฉด ์คํฌ๋ฆฝํธ์์๋ ๋์น๊ธฐ ์ฌ์ด ๊ฒ๋ค(์: ์์ ํ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ํ์ ํ๋, ์ค๋๋ ๋ ์ฝ๋๋ฅผ ๊ณ ์๋ก ๋ง๋๋ ๊ด๊ณ ๋ฑ)์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. โ๋๊ฐ ์ด๊ฒ์ ์์กดํ๋?โ ์ ๊ฒ์ ํ์ธ์: API, ํ๋ฉด, ๋ฆฌํฌํธ, ๋ฐฑ๊ทธ๋ผ์ด๋ ์ก.
์ด๋ฏธ ์ฌ์ฉ ์ค์ธ ํ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ ๋๋ ์งง์ ์ ํ ๊ธฐ๊ฐ๊ณผ ์ค๋ณต ํ๋๋ฅผ ์ ํธํ์ธ์. ์: phone_raw๋ฅผ ์ ์งํ๋ฉด์ phone_e164๋ฅผ ์ถ๊ฐํ๊ณ 1~2๊ฐ ๋ฆด๋ฆฌ์ค ๋์ ์ ์งํ์ธ์. ์ ํ ๊ธฐ๊ฐ ๋์ ๋น์ฆ๋์ค ๋ก์ง์ ์ ํ๋๊ฐ ์์ผ๋ฉด ์ฐ์ ์ฝ๊ณ ์์ผ๋ฉด ์ค๋๋ ํ๋๋ก ํด๋ฐฑํ๊ฒ ํ๊ณ , ์ฐ๊ธฐ๋ ๋ ๋ค ํ์ธ์. ์์ ํ ๋ฐฑํ์ ํ์ธํ ํ ์ค๋๋ ํ๋๋ฅผ ์ ๊ฑฐํ์ธ์.
ํ๊ฒฝ ๊ท์จ์ ์ข์ ์๋๋ฅผ ์์ ํ ๋ฆด๋ฆฌ์ค๋ก ๋ฐ๊พธ๋ ์์์ ๋๋ค. dev, staging, production์ ์ ๋ ฌํ๋ ๋์ผํ๋ค๊ณ ์ฌ๊ธฐ์ง ๋ง์ธ์.
- Dev: ์ฌ์์ฑ ํ ๋ฐฑ์๋๊ฐ ๊นจ๋ํ๊ฒ ์์๋๊ณ ๊ธฐ๋ณธ ํ๋ฆ์ด ์๋ํ๋์ง ํ์ธํ์ธ์.
- Staging: ํ๋ก๋์ ๊ณผ ์ ์ฌํ ๋ฐ์ดํฐ๋ก ์ ์ฒด ๋ง์ด๊ทธ๋ ์ด์ ๊ณํ์ ์คํํ๊ณ ์ฃผ์ ์ฟผ๋ฆฌ, ๋ฆฌํฌํธ, ์ํฌํธ๋ฅผ ๊ฒ์ฆํ์ธ์.
- Production: ๋กค๋ฐฑ ๊ณํ, ๋ช ํํ ๋ชจ๋ํฐ๋ง, ํต๊ณผํด์ผ ํ ์์์ ์ฒดํฌ๋ฅผ ๊ฐ์ถ ์ํ์์ ๋ฐฐํฌํ์ธ์.
๋ง์ด๊ทธ๋ ์ด์ ๊ณํ์ ์งง๋๋ผ๋ ๋ฌธ์ํํ์ธ์. ๋ฌด์์ด ๋ณ๊ฒฝ๋๋์ง, ์์, ๋ฐฑํ ๋ฐฉ๋ฒ, ๊ฒ์ฆ ๋ฐฉ๋ฒ, ๋กค๋ฐฑ ๋ฐฉ๋ฒ์ ํฌํจํ์ธ์. ๊ทธ๋ฐ ๋ค์ ์ค์ ํ๋ก๋์ ์ ๋ฟ๊ธฐ ์ ์ ํ ์คํธ ํ๊ฒฝ์์ ์๋ ํฌ ์๋๋ก ์คํํ์ธ์.
AppMaster๋ฅผ ์ฌ์ฉํ๋ค๋ฉด Data Designer๋ฅผ ํ์ฉํด ๋ชจ๋ธ์ ์๊ฐ์ ์ผ๋ก ๊ฒํ ํ๊ณ ์ฌ์์ฑ์ด ์ ๋ฐ์ดํธ๋ ์คํค๋ง์ ๋ฐฑ์๋ ์ฝ๋๋ฅผ ์ผ๊ด๋๊ฒ ์ ์งํ๊ฒ ํ์ธ์. ์์ธก ๊ฐ๋ฅํ๊ฒ ์ ์งํ๋ ์ต๊ด์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ช ์์ ์ผ๋ก ๋ง๋๋ ๊ฒ์ ๋๋ค: ๋น ๋ฅด๊ฒ ๋ฐ๋ณตํ ์ ์์ง๋ง ๊ฐ ๋ณ๊ฒฝ์ ๊ธฐ์กด ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ํ ๊ณํ๋ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.


