๋น๋ ํจํด์ ๋ณต์กํ ๊ฐ์ฒด์ ๊ตฌ์ฑ์ ๋จ๊ณ๋ณ๋ก ๋ค๋ฃจ๋ ์ํํธ์จ์ด ์ํคํ ์ฒ ๋ฐ ํจํด ์์ญ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋์์ธ ํจํด์ ๋๋ค. ์ด ํจํด์ ๊ตฌ์ฑ ํ๋ก์ธ์ค์ ๋ํ ์ ์ด๋ฅผ ์ ์งํ๋ฉด์ ๋ค์ํ ํํ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ตฌ์กฐํ๋๊ณ ์ ์ฐํ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๋ณต์กํ ๊ฐ์ฒด์ ๊ตฌ์ฑ์ ํํ์์ ๋ถ๋ฆฌํ์ฌ ๋์ผํ ๊ตฌ์ฑ ํ๋ก์ธ์ค๋ก ๊ฐ์ฒด์ ๋ค๋ฅธ ํํ์ ๋ง๋ค ์ ์๋๋ก ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋น๋ ํจํด์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋ชจ๋์ฑ, ๊ด์ฌ์ฌ ๋ถ๋ฆฌ ๋ฐ ์ฌ์ฌ์ฉ์ฑ์ ์ด์งํฉ๋๋ค.
์ํํธ์จ์ด ๋์์ธ์ ๋งฅ๋ฝ์์ ํด๋์ค๋ ๊ฐ๊ฐ ์๋ก ๋ค๋ฅธ ๋งค๊ฐ๋ณ์์ ์ ํ์ ์์ฑ ์ธํธ๋ฅผ ๊ฐ๋ ์ฌ๋ฌ ์์ฑ์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ํด๋์ค์ ๊ด๋ฒ์ํ ์์ฑ ์ธํธ๊ฐ ์์ผ๋ฉด ํ ๋ ์ค์ฝํ ์์ฑ์ ์ํฐ ํจํด์ด๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋น๋ ํจํด์ ์์ฑ ๋ ผ๋ฆฌ๋ฅผ ๋น๋๋ผ๊ณ ํ๋ ๋ณ๋์ ๊ฐ์ฒด๋ก ์บก์ํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ์ํํฉ๋๋ค. ๋น๋๋ ์ผ๋ จ์ ๋ฉ์๋ ํธ์ถ์ ํตํด ๋ณต์กํ ๊ฐ์ฒด๋ฅผ ์ ์ง์ ์ผ๋ก ๊ตฌ์ฑํ๊ณ ๋ง์ง๋ง์ ์์ ํ ๊ตฌ์ฑ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
๋น๋ ํจํด์ ๋ค ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Director: ์ด ๊ตฌ์ฑ ์์๋ ์ ์ ํ ์์๋ก Builder์ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๊ตฌ์ฑ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ๋ํฉ๋๋ค.
- ๋น๋: ๋ณตํฉ ๊ฐ์ฒด์ ์ผ๋ถ๋ฅผ ๋น๋ํ๊ณ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ์ธํฐํ์ด์ค์ ๋๋ค.
- Concrete Builder: ์ด๊ฒ์ Builder ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ํด๋์ค๋ก, ๋ณต์กํ ๊ฐ์ฒด์ ํน์ ํํ์ ๋ํ ์ค์ ๊ตฌ์ฑ ๋ ผ๋ฆฌ๋ฅผ ์ ์ํฉ๋๋ค.
- ์ ํ(Product): ์ด๋ ์ฌ๋ฌ ๋ถ๋ถ๊ณผ ๋ค์ํ ๊ฐ๋ฅํ ํํ์ ํฌํจํ๋ ๊ตฌ์ฑ๋๋ ๋ณต์กํ ๊ฐ์ฒด๋ฅผ ๋ํ๋ ๋๋ค.
์คํ ์ค์ธ ๋น๋ ํจํด์ ํ๋ฅญํ ์๋ ํ ์คํธ ํธ์ง๊ธฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฌธ์ ํํ์ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋๋ค. ๋ฌธ์์๋ ์ผ๋ฐ ํ ์คํธ, ์์ ์๋ ํ ์คํธ, HTML ๋ฑ ๋ค์ํ ํ์์ด ์์ ์ ์์ต๋๋ค. ๋น๋ ํจํด์ ์ฌ์ฉํ๋ฉด ๊ตฌ์ฑ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ๊ณ PlainTextBuilder, RichTextBuilder ๋๋ HtmlBuilder์ ๊ฐ์ ๋ค์ํ Concrete Builder์ ๋์์ ์์ฒญํ๋ Director๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ฝํฌ๋ฆฌํธ ๋น๋๋ ํด๋น ํ์์ ๋ํ ๋น๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ฐ๋ฉด ๋๋ ํฐ๋ ๊ฑด์ค ํ๋ก์ธ์ค๋ฅผ ์ ์ดํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋จธ์ง ๋ถ๋ถ์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ๋ฉด์ ์๋ก์ด ํ์์ ์ถ๊ฐํ๊ณ ๊ธฐ์กด ํ์์ ์์ ํ ์ ์์ต๋๋ค.
๋ํ AppMasterno-code ํ๋ซํผ์ ๋น๋ ํจํด์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์์ ์ ๋จ์ํํฉ๋๋ค. AppMaster ์ฌ์ฉํ๋ฉด ๊ณ ๊ฐ์ ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋น์ฆ๋์ค ๋ก์ง, REST API ๋ฐ ์น ์๋น์ค(WSS) endpoints ์๊ฐ์ ์ผ๋ก ๋์์ธํ ๋ค์ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ (Go, Vue3, Kotlin ๋ฐ SwiftUI ์ ๊ฐ์ ์ธ์ด ์ฌ์ฉ)์ ์ํ ์์ค ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ ํ๋ซํผ์ ์ฌ์ ๊ตฌ์ถ๋ ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์์์ ์ฌ์ฌ์ฉ์ฑ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋์ ์์ค์ ์ ์ด๋ก ๋ ๋น ๋ฅธ ์๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
AppMaster ๊ณ ๊ฐ์๊ฒ ์ง๊ด์ ์ด๊ณ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ ๊ณตํ๊ณ , ๊ธฐ์ ๋ถ์ฑ๋ฅผ ๋ํญ ์ค์ด๊ณ , ์ ์ํ ํ๋ก์ ํธ ๋ฐ๋ณต์ ์คํํ๊ณ , ์ต์ ์ ํ์ฅ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ํ๋ซํผ์ ๋ชจ๋์ ์ ๊ทผ ๋ฐฉ์์ ๋น๋ ํจํด์ ์ ์ฉ์ด ์ด๋ป๊ฒ ๋ณต์กํ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ์ ๋ฐ ๊ฒ์ฌํ์ฌ ๊ด๋ฆฌ ๋ฐ ์ ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค. AppMaster Builder ํจํด ์ ๊ทผ ๋ฐฉ์์ ์ฝ๋ฉ, ๋๋ฒ๊น ๋ฐ ํ ์คํธ ์์ ์ ์์๋๋ ์๋ง์ ์๊ฐ์ ์ค์ฌ ๊ฐ๋ฐ์๊ฐ ํ๋ก์ ํธ์ ๋ณด๋ค ๋ณต์กํ ์ธก๋ฉด์ ์๊ฐ์ ํ ์ ํ ์ ์๋๋ก ํด์ค๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ๋น๋ ํจํด์ ์ฌ๋ฌ ํํ์ด ์๋ ๋ณต์กํ ๊ฐ์ฒด์ ๊ตฌ์ฑ์ ํ๋ฅญํ๊ฒ ๋ค๋ฃจ๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ์ํํธ์จ์ด ๋์์ธ ํจํด์ ๋๋ค. ๊ตฌ์ฑ ๋ฐ ํํ ๋ ผ๋ฆฌ๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋ชจ๋์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ์ด์งํ๋ ๋์์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋จ์ํํ๊ณ ํฉ๋ฆฌํํฉ๋๋ค. AppMasterno-code ํ๋ซํผ์ ๋น๋ ํจํด์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉํ์ฌ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ ๊ฑฐํ๋ฉฐ ๊ฒฝ์์ด ์น์ดํ ์ํํธ์จ์ด ํ๊ฒฝ์์ ์ํํ ํ์ฅ์ฑ์ ๋ณด์ฅํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ํ๋ฅญํ ์์ ๋๋ค.