ETL ํ๋ก์ธ์ค(์ถ์ถ, ๋ณํ, ๋ก๋)๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๋ฐ์ดํฐ ํตํฉ์ ๋งฅ๋ฝ์์ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ด ํ๋ก์ธ์ค๋ ๊ฐ๋ฐ์์ ๋ฐ์ดํฐ ๋ถ์๊ฐ๊ฐ ๋ค์ํ ์์ค์์ ์ ๋ณด๋ฅผ ์์งํ๊ณ ์ฒ๋ฆฌํ๋ฉฐ ์ถ๊ฐ ๋ถ์ ๋ฐ ๋ณด๊ณ ๋ฅผ ์ํด ๊ตฌ์กฐํ๋๊ณ ํตํฉ๋ ๋ฐฉ์์ผ๋ก ์ ์ฅํ ์ ์๋๋ก ํ๋ ์ธ ๊ฐ์ง ํ์ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ถ์ถ ๋จ๊ณ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ, API ๋๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ ๋ค์ํ ์์ค์์ ๋ฐ์ดํฐ๊ฐ ์์ง๋ฉ๋๋ค. ์ด ๋จ๊ณ๋ ์ ์ฒด ํ๋ก์ธ์ค์์ ์ ํํ๊ณ ๊ด๋ จ์ฑ์ด ๋์ ์ต์ ์ ๋ณด๊ฐ ์ฌ์ฉ๋๋๋ก ๋ณด์ฅํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ์ผ๋ถ ์ถ์ถ ์์ ์ ํน์ ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ๊ฐ๋จํ ์ฟผ๋ฆฌ์ผ ์ ์์ง๋ง ๋ค๋ฅธ ์์ ์๋ ๋ณต์กํ ๋ฐ์ดํฐ ํํฐ๋ง, ์ง๊ณ ๋๋ ๋ณํฉ์ด ํ์ํ ์ ์์ต๋๋ค. AppMaster ๊ด๋ฒ์ํ ๋ฐ์ดํฐ ์์ค ๋ชฉ๋ก์ ์ง์ํ๊ณ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ REST API ๋ฐ WebSocket ์๋น์ค๋ฅผ ํฌํจํ ์ฌ์ฉ์ ์ ์ endpoints ์ ์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ณํ ๋จ๊ณ์๋ ์ถ์ถ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ ๋ฐ ์กฐ์ํ์ฌ ๋์ ์คํ ๋ฆฌ์ง ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฝ๊ฒ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ ํ์์ผ๋ก ๋ณํํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ์ด ๋จ๊ณ์๋ ๋ฐ์ดํฐ ํ์ง๊ณผ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๋ฐ์ดํฐ ์ ๋ฆฌ, ์ ๊ทํ, ์ค๋ณต ์ ๊ฑฐ, ๋ณด๊ฐ ๋๋ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ ์ ์ฉ์ด ํฌํจ๋ ์ ์์ต๋๋ค. AppMaster ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋์์ด๋๋ ์ด๋ฌํ ๋ณํ ์์ ์ ์ํํ๋ ๋ฐ ํ์ํ ๋น์ฆ๋์ค ๋ก์ง์ ์ค๊ณํ๊ณ ๊ฐ๋ฐํ๊ธฐ ์ํ ์๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ ์ด ํ๋ซํผ์ ํตํด ์ฌ์ฉ์๋ JavaScript, TypeScript, Kotlin๊ณผ ๊ฐ์ด ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ธ์ด๋ก ๋ณํ ๋ ผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์์ผ๋ฏ๋ก ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ฉ Vue3๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ๋ ์์ํฌ์ ์ํํ๊ฒ ์๋ํ ์ ์์ต๋๋ค.
์ธ ๋ฒ์งธ์ด์ ๋ง์ง๋ง ๋จ๊ณ์ธ ๋ก๋์๋ ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ๋์ ์คํ ๋ฆฌ์ง ์์คํ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ์ ์งํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ์ด ๋จ๊ณ์์๋ ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ๋์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ ํ๊ฒ ์ฝ์ ํ์ฌ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํด์ผ ํฉ๋๋ค. Go(golang)๋ก ์์ฑ๋ AppMaster ์ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ธฐ ์ํ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ญํ ์ ํ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ ์์ฑ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค. ์ด ํ๋ซํผ์ PostgreSQL์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ง์ํ์ฌ ํจ์จ์ ์ด๊ณ ์์ ์ ์ธ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง๋ฅผ ๋ณด์ฅํฉ๋๋ค.
AppMaster ํ๋ซํผ์ ๋งฅ๋ฝ์์ ETL ํ๋ก์ธ์ค๋ ๊ณ ๊ฐ์ด ๋น ๋ฅด๊ณ ์์ ์ ์ด๋ฉฐ ๊ฐ๋ ฅํ ๋ฐ์ดํฐ ํตํฉ โโ์ํฌํ๋ก์ฐ๋ฅผ ๋ฌ์ฑํ ์ ์๊ฒ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ ์ค์ํด์ง๋๋ค. ETL ํ๋ก์ธ์ค์ ๋ง์ ๊ตฌ์ฑ ์์๋ฅผ ์๋ํํจ์ผ๋ก์จ ์ฌ์ฉ์๋ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ ์ ์, ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋์์ธ ๋ฐ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ ๊ตฌ์ฑ์ ํ์ ์ธก๋ฉด์ ์ง์คํ ์ ์์ต๋๋ค.
AppMaster ํ๋ซํผ์ ์ฃผ์ ์ด์ ์ค ํ๋๋ ๋ชจ๋ ์์ฒญ์ โโ๋ํด ์ฒ์๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ์ฌ ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ์ ๊ฑฐํ๊ณ ETL ํ๋ก์ธ์ค๋ฅผ ํฌํจํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ๊ฐ๋ฐ ์ค ๋ณ๊ฒฝ๋ ๋ด์ฉ๊ณผ ๋๊ธฐํ๋๋๋ก ๋ณด์ฅํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ค์๊ธฐ์ ๋ถํฐ ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ ํจ์จ์ ์ด๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ฉฐ ํ์ฅ ๊ฐ๋ฅํ ์๋ฃจ์ ์ด ๋ณด์ฅ๋ฉ๋๋ค.
๋ํ AppMaster ์ ์๋ํ๋ ๋ฌธ์ ์์ฑ ๊ธฐ๋ฅ์ ํตํด ๊ฐ๋ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฑ์๋ ํ๋ก์ธ์ค์ ๋ํ ์ต์ ์ ํฌ๊ด์ ์ธ ์ดํด๋ฅผ ์ ์งํ์ฌ ํ ๊ฐ์ ํ์ ์ ์ง์ํ๊ณ ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถํ ์ ์์ต๋๋ค. ํ๋ซํผ์ ์๋ฒ endpoints ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๋ํ Swagger(OpenAPI) ๋ฌธ์๋ฅผ ์์ฑํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ ํตํฉ โโ์ํฌํ๋ก์ฐ์ ๋ชจ๋ ์ธก๋ฉด์ ๋ํ ์ฒ ์ ํ ๊ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ETL ํ๋ก์ธ์ค(์ถ์ถ, ๋ณํ, ๋ก๋)๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์คํธ ๋ด ๋ฐ์ดํฐ ํตํฉ โโ์ํฌํ๋ก์ฐ์ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋๋ค. AppMaster ํ๋ซํผ์ ETL ํ๋ก์ธ์ค๋ฅผ ์ ๋ฌธ์ ์ผ๋ก ํตํฉํ๊ณ ์คํ์ ๊ฐ์ํํ์ฌ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ํตํฉ๊ณผ ๊ด๋ จ๋ ๋ณต์ก์ฑ์ ์ฒ๋ฆฌํ๋ ๋ถ๋ด์ ์์ ๋ฉด์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ค์ํ ์์์ ์ง์คํ ์ ์๋๋ก ํฉ๋๋ค. AppMaster ์ ๊ฐ๋ ฅํ๊ณ ํจ์จ์ ์ธ ETL ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ฐ๋ฐ์๋ ํ๋ ๋น์ฆ๋์ค์ ๋ค์ํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ๊ณ ํ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.