DOing
๋น๋ ๋๊ตฌ, Gradle vs Maven ๋ณธ๋ฌธ
๐ก ๋น๋?
Build๋ ์์ฑ๋ ์ฝ๋๋ฅผ ์ค์ ๊ธฐ๊ธฐ์์ ์คํ ๋ ์ ์๋ ์ํํธ์จ์ด๋ก ๋ณํํ๊ธฐ ์ํ ๊ณผ์ ์ ๋งํ๋ค.
๋ณดํต ์ปดํ์ผ์ ํฌํจํ ๋ฐฐํฌํ๊ธฐ ์ง์ ๊น์ง์ ๋ชจ๋ ๊ณผ์ ์ ‘๋น๋ ํ๋ค’ ๋ผ๊ณ ํํํ๋ค.
์ค์ ๋ก ํ์ฌ๋ ํ๋ก์ ํธ ํ๋ง๋ค ์ฉ์ด๋ฅผ ์กฐ๊ธ์ฉ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ ์ฐธ๊ณ ํด๋๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. ์ฌ์ง์ด๋ ์ฝ๋๊ฐ ์์ฑ๋ ์งํ, ์ปดํ์ผ๋ถํฐ ๋ฐฐํฌํ๋ ๋ชจ๋ ๊ณผ์ ์ ‘๋น๋ ํ๋ค’๊ณ ํํํ๋ ๊ฒฝ์ฐ๋ ์๋ค๊ณ ํ๋ค.
๐ก ๋น๋ ๋๊ตฌ?
์์ ํ๋ก์ ํธ๋ผ๋ฉด ๊ฐ๋ฐ์๊ฐ ์๋์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ์ ์ถ๊ฐํด์ฃผ๊ณ ๋น๋ ํ ์ ์์ ๊ฒ์ด๋ค. ํ์ง๋ง ํ๋ก์ ํธ๊ฐ ์ปค์ง๋ค๋ฉด ๋ง์์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ ์ถ๊ฐํ์ฌ ๋น๋ํ๋ ์ผ์ ๋ฒ๊ฑฐ๋ก์์ด ๋ฐ๋ฅธ๋ค. ์ฌ์ง์ด ์ฝ๋ ์์ ์ ํ ๋๋ง๋ค ์ด์ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๊ฒ๋๋ค๋ฉด ๊ต์ฅํ ๋นํจ์จ์ ์ด๋ฉฐ ์ค์๋ฅผ ์ ๋ฐํ๊ธฐ ์ฝ๋ค.
์ด ๋๋ฌธ์ ๋ฐ์ํ ๊ฒ์ด ๋ฐ๋ก ๋น๋ ์๋ํ์ด๋ฉฐ ๋น๋ ๋๊ตฌ๋ ๋น๋ ์๋ํ ์์ผ์ฃผ๋ ๋๊ตฌ(์ํํธ์จ์ด)์ด๋ค.
๋น๋ ๋๊ตฌ ์ข ๋ฅ์๋ Ant, Maven, Gradle์ด ์๋ค.
Ant
์๋ฐ ์ํํธ์จ์ด ๋น๋๋๊ตฌ
- Apache์์ ๊ฐ๋ฐํ์์ผ๋ฉฐ ์๋ฐ์ธ์ด๋ก ๊ตฌํ๋์ด์๋ค.
- XML ๊ธฐ๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉ
- ๊ท์น, ํ์ค์ด ์์ด ๋์ ์์ ๋ → ์ง์ ์ ์ํด์ผํ ๊ฒ์ด ๋ง์์ ธ ์คํ๋ ค ์ฌ์ฉ์ด ์ด๋ ค์์ง ์ ์๋ค.
Maven
์๋ฐ์ฉ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ
- Apache์์ Ant์ ๋์์ผ๋ก ๊ฐ๋ฐํ์๋ค.
- ์ ํด์ง ๋ผ์ดํ์ฌ์ดํด์ ์ํ์ฌ ์์ ์ํํ๋ฉฐ, ์ ๋ฐ์ ์ธ ํ๋ก์ ํธ ๊ด๋ฆฌ ๊ธฐ๋ฅ๊น์ง ํฌํจํ๋ค.
- ์์กด์ฑ์ ์ค์ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๋ ๊ด๋ฆฌ
- pom.xml์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ํด๋์ผ๋ฉด ์๋ ๊ด๋ฆฌํด์ค๋ค.
Gradle
Gradle์ Groovy๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํ์์ค ๋น๋ ๋๊ตฌ
- ์๋๋ก์ด๋ ์คํ๋์ค์ ๊ณต์ ๋น๋ ์์คํ
- Java, C/C++, ํ์ด์ฌ ๋ฑ๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ง ์ธ์ด๋ฅผ ์ง์
- Ant์ ์ ์ฐํ ๊ตฌ์กฐ์ ์ฅ์ + Maven์ ํธ๋ฆฌํ ์์กด์ฑ ๊ด๋ฆฌ ๊ธฐ๋ฅ
- XML์ด ์๋ ๋ณ๋์ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฑ ๊ด๋ฆฌ
- ์คํฌ๋ฆฝํธ ์ธ์ด๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ๋๋ฌธ์, XML๊ณผ ๋ฌ๋ฆฌ ๋ณ์์ ์ธ, if, else, for๋ฑ์ ๋ก์ง์ด ๊ตฌํ๊ฐ๋ฅํ์ฌ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌ์ฑ ๊ฐ๋ฅ
- Maven๋ณด๋ค ๋น ๋ฅธ ๋น๋ ํ์
- gradlew๋ผ๋ wrapperํ์ผ์ ์ฌ์ฉ
- gradlew์ผ๋ก Gradle์ด ์ค์น๋์ง ์์ ํ๊ฒฝ์์๋ ํด๋น ํ๋ก์ ํธ์ ํํด์ Gradle๋ค์ ์ฌ์ฉ๊ฐ๋ฅ
Groovy?
Groovy๋ Java ๊ฐ์ ๋จธ์ ์์ ์คํ๋๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ค. Java์ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ค ์ฝ๋๋ฅผ ์์ฑํ๊ณ Java ๊ฐ์ ๋จธ์ ์์ ๋์ํ์ง๋ง, Java์ ๋ฌ๋ฆฌ ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผ์ ํ ํ์๋ ์๋ค. Groovy๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ฉฐ, ์์ค ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์คํํ๋ค. ๋ํ Java์ ํธํ๋๊ณ , Java ํด๋์ค ํ์ผ์ ๊ทธ๋๋ก Groovy ํด๋์ค๋ก ์ฌ์ฉํ ์ ์๋ค. ๋ฌธ๋ฒ๋ Java์ ์์ฃผ ๊ฐ๊น์, Java๋ฅผ ๋ณด๋ค ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ํ ๊ฒ์ผ๋ก ๋๋ ์ ์๋ค.
"๊ฐํธํ๊ฒ ์ฌ์ฉํ๋ JAVA"๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
์ถ์ฒ: https://araikuma.tistory.com/460 [ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ์ง์ ๊ณต์ ]
๋ ์์ธํ ๋ด์ฉ์ Gradle ๊ณต์๋ฌธ์ ์ค Maven๊ณผ Gradle์ ๋น๊ตํ ๋ฌธ์์์ ํ์ธํ ์ ์ ์๋ค. ์์ง๊น์ง๋ Maven์ ๋ง์ด ์ฌ์ฉํ๊ณ ์์ง๋ง ์ ์ฐจ Gradle์ ์ฌ์ฉํ๋ ์ถ์ธ์ด๋ค. ๊ทธ๋๋ ์์ง๊น์ง๋ Maven์ ๋ ์ฌ์ฉํ๊ณ ์๊ณ ๋ด๊ฐ ์ง์ ์งํํ๋ Spring ํ๋ก์ ํธ์์๋ Maven์ ์ฌ์ฉํ๊ธฐ๋๋ฌธ์ Maven์ ๋ํด์๋ ๋ฐ๋ก ์์ธํ ํฌ์คํ ์ ํด๋ณด์๋ค.
๋ค์ ํฌ์คํ :
2021.05.08 - [spring] - [Maven] Maven์ ๋ํด ์๊ณ ์ฌ์ฉํด๋ณด์
์ฐธ๊ณ ์ถ์ฒ :
'WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[WEB] HTTP ์ธ์ฆ๋ฐฉ์2_ํ ํฐ๊ธฐ๋ฐ ์ธ์ฆ, JWT (1) | 2021.06.12 |
---|---|
[WEB] HTTP ์ธ์ฆ๋ฐฉ์1_์ธ์ /์ฟ ํค (0) | 2021.06.11 |
[WEB] JAR vs WAR ๊ทธ๋ฆฌ๊ณ ์คํ๋ง ๋ถํธ (0) | 2021.04.19 |
[WEB] Dyanmic IP์ DHCP (0) | 2021.04.14 |
[WEB] ๊ณต์ ๊ธฐ (Private IP, NAT) (0) | 2021.04.14 |