- Gradle๊ณผ Maven ๋ชจ๋ ๋น๋ ์๋ํ ๋๊ตฌ๋ค.
- Maven์ Apache์์ ๋ฐฐํฌํ์์ผ๋ฉฐ, ํ๋ก์ ํธ ํ๊ฒฝ ์ค์ ์ ์ํด pom.xml ์ด๋ผ๋ XML ํ์ผ์ ์ฌ์ฉํ๋ค.
- Gradle์ Google์์ ์๋๋ก์ด๋ ํ๋ก์ ํธ๋ฅผ ์ํ ๋น๋ ์๋ํ ๋๊ตฌ๋ก 2007๋
์ฒ์ ๋ฐฐํฌํ์๋ค.
- gradle.build๋ผ๋ ํ์ผ์ ํ๋ก์ ํธ ํ๊ฒฝ ์ ๋ณด๊ฐ ๋ค์ด์๋ค.
๊ฒฐ๋ก
Gradle | Maven |
๋๋ฉ์ธ ํนํ ์ธ์ด ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋๋ฐ ๊ธฐ๋ฐ | ์๋ฐ๋ก ๋ง๋ค์ด์ง๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ธฐ๋ฐ |
Groovy ๊ธฐ๋ฐ์ ๋๋ฉ์ธ ํนํ ์ธ์ด ์ฌ์ฉ (๋น๋๋ฅผ ์๋ํํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์์ฑ) * Groovy: Java ๊ฐ์๋จธ์ ์์ ์คํ๋๋ ๋์ ํ์ ์คํฌ๋ฆฝํธ ์ธ์ด |
ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด XML ์ฌ์ฉ |
ํ๋ก์ ํธ์ ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฑ์ ์ฃผ์ ํ๋ ๊ฒ์ด ์ฌ์ | ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฃผ์ ์ ์ํด์๋ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ์ฒ์๋ถํฐ ๊ตฌ์ฑ |
ํ์ฌ ์งํ์ค์ธ ์์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ต์ ํ๋ฅผ ์งํํ๊ธฐ ๋๋ฌธ์ ์ํ์๋ ์ธก๋ฉด์์ ๋น ๋ฅด๋ค. | ๋ถ๋ถ์ ์ผ๋ก ๋น๋๋ฅผ ์งํํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ๋ค. |
์ปดํ์ผ์ ํผํ๋ค. (Groovy ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ ์ธ์ด) | XML ํ์ผ์ด๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ์ด ํ์ํ๋ค. (= ํ์ผ ํด์์ด ํ์ํ๋ค) |
์ฌ์ฉ์๊ฐ ์ต์ํด์ง๋๋ฐ ์๊ฐ์ด ํ์ํ๋ค. | ์ค๋ ๊ธฐ๊ฐ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ตํ๋ค. |
Java, C, C++, Groovy ์์์ ๊ฐ๋ฐ์ ์ง์ ์ง์ํ๋ IDE์ ์ข ๋ฅ๊ฐ ๋ค์ํ๋ค. |
Java, Scala, C#, Ruby ์์์ ๊ฐ๋ฐ ์ง์ |
* ๋๋ฉ์ธ ํนํ ์ธ์ด (Domain Specific Language, DSL):
- ํน์ ๋ถ์ผ์ ์ต์ ํ๋ ์ปดํจํฐ ์ธ์ด, ๋ฒ์ฉ ์ธ์ด์ ๋ฌ๋ฆฌ ํน์ ๋ชฉ์ ๋ฐ ๋ถ์ผ์ ๊ตญํ๋์ด ์ฌ์ฉํ ์ ์๋ค.
- Java - Ant, Maven ๋ฑ
- Ruby - Rails Validations, Rails ActiveRecord ๋ฑ
- SQL, CSS, Regular Expression ๋ฑ
Gradle
- JCenter๋ผ๋ ์์กด์ฑ์ ๊ฐ์ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ค์ด๋ฐ์ ์ ์๋ ์ ์ฅ์๊ฐ ์๋ค.
- Maven Central์ด๋ผ๋ ์ ์ฅ์ ์ฌ์ฉ๋ ๊ฐ๋ฅํ๋ค.
- ์ ๋ฌด์ ์์กด์ฑ์ ๊ทธ๋ํ์ ๊ธฐ๋ฐํ์ฌ ๊ด๋ฆฌํ๋ค.
- ๋ชจ๋ ํ๋ก์ ํธ๊ฐ ์ผ๊ด๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ์ ๋ฌด๋ฅผ ์คํํ๋๋ฐ ์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ์ง ์ฒดํฌํ์ฌ ์ ์ง์ ๋น๋๋ฅผ ์งํํ๋ค.
- gradle.build ํ์ผ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ if, else, for ๋ฑ์ ๋ก์ง ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
- ๋์ ์ผ๋ก ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ฐ๋๋ค.
- ๋จ์ํ ์คํธ ์ ์์กด์ฑ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
Maven
- Maven Centeral์ด๋ผ๋ ์์กด์ฑ์ ๊ฐ์ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ค์ด๋ฐ์ ์ ์๋ ์ ์ฅ์๊ฐ ์๋ค.
- ๊ณ ์ ๋ ์ ํ ๋ชจ๋ธ์ ๊ธฐ๋ฐํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
- ๋ฏธ๋ฆฌ ์ ์ํ๊ณ ์๋ ๋น๋ ์์๊ฐ ์๊ณ , ๋ผ์ดํ์ฌ์ดํด์ ๊ฐ๊ฐ์ ๋จ๊ณ๋ฅผ Phase๋ผ๊ณ ํ๋ค.
- (= ๊ฐ Phase๊ฐ ์คํ๋๊ธฐ ์ํด์๋ ์ด์ ๋จ๊ณ์ Phase๊ฐ ๋ชจ๋ ์ํ๋์ด์ผ ํ๋ค.)
- ํ๋์ ํ๋ฌ๊ทธ์ธ์์ ์ฌ๋ฌ ๊ฐ์ง ์์ ์ ์ํํ ์ ์๋๋ก ์ง์ - ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ goal์ด๋ผ๊ณ ํ๋ค. (= ํ๋ฌ๊ทธ์ธ์ goal์ด๋ผ๊ณ ํ๋ค.)
- ๋ฏธ๋ฆฌ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ค์ด๋ฐ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ก์ธ์คํ์ฌ ์ฐ๊ฒฐ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๋ค.
- Pom.xml (=Project Object Model)
- ํ๋ก์ ํธ ์ ๋ณด: ์ด๋ฆ, ๊ฐ๋ฐ์ ๋ชฉ๋ก, ๋ผ์ด์ผ์ค
- ๋น๋ ์ค์ : ์์ค, ๋ฆฌ์์ค, ๋ผ์ดํ ์ฌ์ดํด๋ณ ์คํํ ํ๋ฌ๊ทธ์ธ(goal) ๋ฑ ๋น๋ ๊ด๋ จ๋ ์ค์
- ๋น๋ ํ๊ฒฝ: ์ฌ์ฉ์ ํ๊ฒฝ ์ ๋ณด
- POM๊ณผ ์ฐ๊ด๋ ์ ๋ณด: ์์กด ๋ชจ๋, ํฌํจํ๋ ํ์ ๋ชจ๋, ์์ ํ๋ก์ ํธ ๋ฑ
๊ทธ๋์ ์ด๋จ ๋ ์ฌ์ฉํ๋๋ฐ?
- ๋ณธ ๊ธ์ ๋ชฉ์ ์ Gradle๊ณผ Maven์ ์ฐจ์ด์ ์ด ๋ฌด์์ธ์ง ์๊ณ ์ ์ฌ์ ์์ ์ฌ์ฉํ๊ธฐ ์ํจ์ด๋ค.
- Maven์ xmlํ์ผ์ ๋น๋์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์์ ๊ด๊ณ๋ ์์กด ๊ด๊ณ์ ๊ฐ์ ์ฐ๊ด๊ด๊ณ๋ฅผ ๋ช ์ํ๋ค.
- ๋น๋ ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์ ์์ํ๊ฑฐ๋ ์์กดํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋น๋ ๋์ง ์์ผ๋ฉด ๋ค์ ๋น๋๊ฐ ์ด๋ฃจ์ด์ง ์ ์๋ค.
- Gradle์ gradle.build๋ผ๋ ์คํฌ๋ฆฝํธ ํ์ผ๋ก ์์ฑํ๋ค.
- ์คํฌ๋ฆฝํธ ํ์ผ์ ํ๋ก์ ํธ ๋น๋์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ฐ๊ด๊ด๊ณ๋ฅผ ๋ช ์ํ๋ค.
- Maven์์ ๊ฐ ํ๋ฌ๊ทธ์ธ ๋น ์์กด ๊ด๊ณ ์ ๋ณด๋ฅผ ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ ๋ณต์กํ๊ฒ ํ์ํด์ฃผ์๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ,
- ๋ก์ง์ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์๋ค๋ ์ ์ด ์ฅ์ ์ด๋ค.
- Maven๋ณด๋ค ์ต๋ 100๋ฐฐ ๊ฐ๋ ๋น ๋ฅด๋ค.
- ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์์ง๋ฉด Gradle๋ก ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ฑ๋ฅ๋ฉด์์ ์ฐ์ํ๋ค.
์ฐธ๊ณ ์๋ฃ
https://www.geeksforgeeks.org/introduction-to-gradle/
Introduction to Gradle - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
https://dev-coco.tistory.com/65
๋ฉ์ด๋ธ(Maven)๊ณผ ๊ทธ๋๋ค(Gradle)์ ๊ฐ๋ ๋ฐ ๋น๊ต
์คํ๋ง๊ณผ ์คํ๋ง๋ถํธ๋ฅผ ๊ณต๋ถ ํ๋ ค๋ ์ค maven๊ณผ gradle์ ์๊ฒ๋์์ต๋๋ค. maven๊ณผ gradle์ด ๋น๋๊ด๋ฆฌ๋๊ตฌ์ธ ๊ฒ์ ์๊ณ ์์ง๋ง ์์ธํ ๊ฐ๋ ์ ๋ชจ๋ฅด๊ธฐ์ maven๊ณผ gradle ๊ฐ๊ฐ์ ๊ฐ๋ ๊ณผ ์ ํํ ์ฐจ์ด์ ์ ์
dev-coco.tistory.com
'TIL > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Error] IllegalStateException: @Order on WebSecurityConfigurers must be unique ์๋ฌ (0) | 2022.07.28 |
---|---|
[Error] application.yml ์ ์ ์ํ ๊ฐ ์ธ์ํ์ง ๋ชปํ ๊ฒฝ์ฐ (0) | 2022.07.23 |
.properties์ .yml ์ฐจ์ด (0) | 2022.07.19 |
SpringBoot - build.gradle์ ์ดํด (0) | 2022.06.23 |
๋๊ธ