ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toDevOps
์๋ฌธ ์ฝ๊ธฐ
ํ์คํ ์ค์ฌ์ Maven๊ณผ ํ์ฅ์ฑ ์ค์ฌ์ Gradle ์ค๊ณ ์ฒ ํ ๋น๊ต ๋ถ์
Some differences between Gradle and Maven ๐
AI ์์ฝ
Context
ํ๋ก์ ํธ ๋น๋ ์๋ํ๋ฅผ ์ํ ๋๊ตฌ ์ ํ ๊ณผ์ ์์ Convention over Configuration ๊ธฐ๋ฐ์ ํ์คํ ์๊ตฌ์ Programmable Build System์ ํตํ ์ ์ฐ์ฑ ํ๋ณด ์ฌ์ด์ ๊ธฐ์ ์ ์ถฉ๋ ๋ฐ์.
Technical Solution
- XML ๊ธฐ๋ฐ์ ์ ์ ์ค์ ๋ฐฉ์์ ์ฑํํ์ฌ ์ํฐํ๋ผ์ด์ฆ ์์ค์ ํ์ค ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ์ผ๊ด๋ ๊ด๋ฆฌ ์ฒด๊ณ ๊ตฌ์ถ
- DSL ๊ธฐ๋ฐ์ Groovy ๋ฐ Kotlin ์คํฌ๋ฆฝํธ ๋์ ์ผ๋ก ๋น๋ ํ๋ก์ธ์ค ๋ด ์กฐ๊ฑด๋ถ ๋ก์ง ๋ฐ ๋์ Task ์คํ ๊ฐ๋ฅ ๊ตฌ์กฐ ์ค๊ณ
- Incremental Build ๋ฐ ๊ฐ๋ ฅํ Caching Mechanism ์ ์ฉ์ ํตํ ๋น๋ ์ํ ์๊ฐ ์ต์ ํ
- ๋ค์ค ๋ชจ๋ ํ๋ก์ ํธ์ ๋ณต์ก๋ ํด๊ฒฐ์ ์ํด ์ธ๋ถํ๋ ๋น๋ ํ๋ก์ธ์ค์ ๋ชจ๋ํฐ๋ง ํ์คํฌ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ
- ์ ์ ์ ์ธ ๋ฐฉ์์ ๋จ์ํจ๊ณผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ํ์ฅ์ฑ ์ฌ์ด์ Trade-off๋ฅผ ๊ณ ๋ คํ ๋น๋ ํ๊ฒฝ ๊ตฌ์ฑ
์ค์ฒ ํฌ์ธํธ
1. ์ ํํ๋ ๊ตฌ์กฐ์ ์ ์ง๋ณด์ ํธ์์ฑ์ด ์ฐ์ ์ธ ์ ํต์ ๊ธฐ์ ํ๋ก์ ํธ๋ผ๋ฉด Maven ๊ฒํ
2. Android, Kotlin ๊ธฐ๋ฐ์ ๋๊ท๋ชจ ๋ฉํฐ ๋ชจ๋ MSA ํ๋ก์ ํธ๋ผ๋ฉด Gradle ๋์ ๊ณ ๋ ค
3. ํ ๋ด ๊ตฌ์ฑ์์ DSL ์๋ จ๋ ๋ฐ ๋น๋ ์คํฌ๋ฆฝํธ ๊ด๋ฆฌ ์ญ๋ ์์ค ํ์ธ
4. ๋จ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ๋์ด์ ๋ณต์กํ ๋น๋ ํ์ดํ๋ผ์ธ ํ์ ์ฌ๋ถ ํ๋จ