๋ฐ์ํ
Maven๊ณผ Gradle์ ๋ ๋ค ๋น๋ ๋๊ตฌ๋ก, Java ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํจํ ๋ค์ํ ํ๋ก์ ํธ์์ ์์กด์ฑ ๊ด๋ฆฌ, ๋น๋ ์๋ํ, ๋ฐฐํฌ, ํ ์คํธ ๋ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ๋ ๋๊ตฌ๋ ์ค๊ณ ์ฒ ํ, ์ฌ์ฉ๋ฒ, ์ฑ๋ฅ ๋ฑ์ ์์ด ๋ช ๊ฐ์ง ์ค์ํ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
์๋์์ Maven๊ณผ Gradle์ ์ฃผ์ ์ฐจ์ด์ ๋ค์ ๋น๊ตํ๊ฒ ์ต๋๋ค.
1. ๋น๋ ์คํฌ๋ฆฝํธ ์ธ์ด
- Maven:
- XML์ ์ฌ์ฉํ์ฌ ๋น๋ ์ค์ ์ ์ ์ํฉ๋๋ค.
- pom.xml ํ์ผ์ ํตํด ์์กด์ฑ, ํ๋ฌ๊ทธ์ธ, ๋น๋ ๊ตฌ์ฑ ๋ฑ์ ์ค์ ํฉ๋๋ค.
- XML์ ์ ์ธ์ ์ธ ๋ฐฉ์์ด์ง๋ง ๋ค์ ์ฅํฉํ๊ณ ์ฝ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.0</version> </dependency>
- Gradle:
- **DSL (Domain Specific Language)**์ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Groovy ๋๋ Kotlin์ ์ฌ์ฉํ์ฌ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- Groovy ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ๋ ๋ ์ง๊ด์ ์ด๊ณ ๊ฐ๊ฒฐํ๋ฉฐ, ํ๋ก๊ทธ๋๋ฐ์ ์ธ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
- dependencies { implementation 'org.springframework:spring-webmvc:5.3.0' }
2. ๋น๋ ์๋
- Maven:
- XML ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๋น๋ ์๊ฐ์ด ์๋์ ์ผ๋ก ๋๋ฆฌ๊ฒ ๋๊ปด์ง ์ ์์ต๋๋ค.
- ๋งค๋ฒ ๋์ผํ ๋น๋๊ฐ ์ด๋ฃจ์ด์ง ๋๋ง๋ค ์ ํต์ ์ธ ๋ฐฉ์์ผ๋ก ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ํํฉ๋๋ค.
- ๋ณ๋ ฌ ๋น๋๋ ์บ์ฑ ๊ฐ์ ์ต์ ํ ๊ธฐ๋ฅ์ด ๋ถ์กฑํฉ๋๋ค.
- Gradle:
- Gradle์ ๋น๋ ์บ์์ ๋ณ๋ ฌ ๋น๋๋ฅผ ์ง์ํ์ฌ ๋น๋ ์ฑ๋ฅ์ด ๋ฐ์ด๋ฉ๋๋ค.
- ํฅ์๋ ์ฑ๋ฅ์ ์ํด ์ธํฌ๋ฆฌ๋ฉํ ๋น๋(๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋น๋)์ ๋น๋ ์บ์(์ด์ ์ ๋น๋ํ ๋ด์ฉ์ ์ฌ์ฌ์ฉ) ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก Gradle์ Maven๋ณด๋ค ๋ ๋น ๋ฅธ ๋น๋ ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
3. ์์กด์ฑ ๊ด๋ฆฌ
- Maven:
- ์ค์ ์ ์ฅ์(Maven Central Repository)์์ ์์กด์ฑ์ ๊ฐ์ ธ์ต๋๋ค.
- ์์กด์ฑ ๋ฒ์, ๋ฒ์ ๊ด๋ฆฌ, ์ ํ ์ค์ ๋ฑ์ ๋ช ์์ ์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
- ์ ํต์ ์ธ ๋ฐฉ์์ผ๋ก ์์กด์ฑ์ ์ ์ธํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
- Gradle:
- Gradle์ Maven Central๋ฟ๋ง ์๋๋ผ ๋ค์ํ ์ ์ฅ์๋ฅผ ์ง์ํ๋ฉฐ, ์์กด์ฑ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ์ ์ฐํฉ๋๋ค.
- implementation, api, compileOnly ๋ฑ ์์กด์ฑ ๋ฒ์๋ฅผ ๋ ์ธ๋ถํํ์ฌ ์ค์ ํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ์ ์ธ ์์กด์ฑ ๊ด๋ฆฌ ์ธ์๋, ๋ฉํ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ์์กด์ฑ ๊ด๋ฆฌ์ ๋ณต์กํ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
4. ํ๋ฌ๊ทธ์ธ ์์คํ
- Maven:
- ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, ๊ฐ ํ๋ฌ๊ทธ์ธ์ ํน์ ์์ (์ปดํ์ผ, ํ ์คํธ, ๋ฐฐํฌ ๋ฑ)์ ์ํํฉ๋๋ค.
- ํ๋ฌ๊ทธ์ธ ์ค์ ์ pom.xml์ ๋ช ์์ ์ผ๋ก ์ ์ธ๋์ด์ผ ํฉ๋๋ค.
- ๋ค์ํ ํ๋ฌ๊ทธ์ธ์ ์ ๊ณตํ์ง๋ง, ํ๋ฌ๊ทธ์ธ ๊ฐ์ ์์กด์ฑ์ด ๋ณต์กํด์ง ์ ์์ต๋๋ค.
- Gradle:
- Gradle๋ ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ์ง๋ง, ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ๋ฒ์ด ๋ ์ ์ฐํ๊ณ ์ง๊ด์ ์ ๋๋ค.
- Gradle์ ๋์ ํ๋ฌ๊ทธ์ธ์ ์ง์ํ๋ฉฐ, ํ๋ฌ๊ทธ์ธ ์ค์ ๋ ๋น๋ ์คํฌ๋ฆฝํธ ๋ด์์ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ์ ์ ํ๋ฌ๊ทธ์ธ์ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
5. ์ ์ฐ์ฑ ๋ฐ ํ์ฅ์ฑ
- Maven:
- Maven์ ๋ช ์์ ์ด๊ณ ์ ํด์ง ๊ท์น์ ๋ฐ๋ฅด๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ์ค์ ์ด ์ผ์ ํ์ง๋ง, ํน์ ์๊ตฌ์ฌํญ์ ์ฒ๋ฆฌํ๋ ค๋ฉด ์ค์ ์ด ๋ณต์กํด์ง ์ ์์ต๋๋ค.
- ์ปค์คํฐ๋ง์ด์ง์ด ์ ํ์ ์ด๊ณ , ์ถ๊ฐ์ ์ธ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- Gradle:
- Gradle์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์, ๋งค์ฐ ์ ์ฐํ๊ณ ํ์ฅ์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค.
- Gradle์ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ๋น๋ ๋ ผ๋ฆฌ๋ ์ฌ์ฉ์ ์ ์ ์์ ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- build.gradle์์ Groovy ๋๋ Kotlin DSL์ ์ฌ์ฉํด ํ์ํ ๋ก์ง์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
6. ์ปค๋ฎค๋ํฐ์ ์ง์
- Maven:
- Maven์ ์ค๋๋ ๋๊ตฌ๋ก, ๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ์ ๋ฌธ์ํ๊ฐ ์ ๋์ด ์์ต๋๋ค.
- ๋ง์ ๊ธฐ์ ์์ Maven์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ, ๊ฑฐ์ ๋ชจ๋ Java ๊ธฐ๋ฐ ํ๋ก์ ํธ์ ์ ์ฉํ ์ ์๋ ํ์ค ๋น๋ ๋๊ตฌ๋ก ์๋ฆฌ์ก๊ณ ์์ต๋๋ค.
- Gradle:
- Gradle์ ๋น๊ต์ ์๋ก์ด ๋๊ตฌ์ด์ง๋ง, ๋น ๋ฅด๊ฒ ์ธ๊ธฐ๋ฅผ ๋๊ณ ์์ผ๋ฉฐ Android ํ๋ก์ ํธ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
- Gradle์ ๋ฌธ์ํ์ ์ปค๋ฎค๋ํฐ ์ง์๋ ํ๋ฐํ ์ด๋ฃจ์ด์ง๊ณ ์์ง๋ง, Maven๋ณด๋ค๋ ์ฝ๊ฐ ๋ถ์กฑํ ์ ์์ต๋๋ค.
7. ์ฌ์ฉ์ฑ
- Maven:
- ์ค์ ํ์ผ์ด ์ ์ธ์ ์ด๋ฉฐ, ๊ท์น๊ณผ ํ์ค์ ๋ง์ถฐ์ ์์ ์ด ์ด๋ฃจ์ด์ง๋๋ค.
- XML ๊ธฐ๋ฐ์ด๋ฏ๋ก ๊ตฌ๋ฌธ์ด ๋ค์ ๋ฒ๊ฑฐ๋กญ๊ณ ๊ธธ์ด์ง ์ ์์ง๋ง, ๋ง์ ๊ฐ๋ฐ์๋ค์ด ์ต์ํด์ ธ ์์ต๋๋ค.
- Gradle:
- ๋์ ์ด๊ณ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ด๋ฏ๋ก ์ฌ์ฉ๋ฒ์ด ์ง๊ด์ ์ด๊ณ ๊ฐ๊ฒฐํฉ๋๋ค.
- Groovy ๋๋ Kotlin DSL์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ฒ๋ผ ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ ๋ณต์กํ ๋น๋ ๋ก์ง์ ์์ฑํ ์ ์์ต๋๋ค.
8. ๊ฒฐ๋ก : ์ด๋ค ์ํฉ์์ ์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น?
- Maven์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ:
- ํ์คํ๋ ๋น๋ ๋๊ตฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ
- ์ด๋ฏธ Maven ๊ธฐ๋ฐ์ผ๋ก ์ค์ ๋ ๊ธฐ์กด ํ๋ก์ ํธ์์ ์์ ํ๋ ๊ฒฝ์ฐ
- ๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ ์ง์๊ณผ ์์ ์ ์ธ ๋ฌธ์๊ฐ ์ค์ํ ๊ฒฝ์ฐ
- Gradle์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ:
- ๋น๋ ์๋์ ์ ์ฐ์ฑ์ด ์ค์ํ ๊ฒฝ์ฐ
- ๋ณต์กํ ๋น๋๋ ์ฌ์ฉ์ ์ ์ ๋ก์ง์ ๋ง์ด ์์ฑํด์ผ ํ๋ ๊ฒฝ์ฐ
- Android ํ๋ก์ ํธ์ ๊ฐ์ ์ต์ ํ๋ ์์ํฌ์์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ
- ๋ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ธ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ ํธํ๋ ๊ฒฝ์ฐ
์ ๋ฆฌ
| ํน์ฑ | Maven | Gradle | |
| ๋น๋ ์คํฌ๋ฆฝํธ ์ธ์ด | XML | Groovy / Kotlin DSL | |
| ๋น๋ ์๋ | ์๋์ ์ผ๋ก ๋๋ฆผ | ๋น ๋ฅด๋ฉฐ ๋น๋ ์บ์ ๋ฐ ๋ณ๋ ฌ ๋น๋ ์ง์ | |
| ์์กด์ฑ ๊ด๋ฆฌ | ์ค์ ์ ์ฅ์์์ ์์กด์ฑ ๊ด๋ฆฌ | ์ ์ฐํ ์์กด์ฑ ๊ด๋ฆฌ, ๋ค์ํ ์ ์ฅ์ ์ง์ | |
| ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ | ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ๋ฒ์ด ๋ค์ ๋ณต์ก | ํ๋ฌ๊ทธ์ธ ์ค์ ์ด ๊ฐ๊ฒฐํ๊ณ ์ ์ฐ | |
| ์ ์ฐ์ฑ | ์ ํ์ | ๋งค์ฐ ์ ์ฐํ๊ณ ํ๋ก๊ทธ๋๋ฐ์ | |
| ์ฌ์ฉ์ฑ | ๊ท๊ฒฉํ๋ ์ค์ ๋ฐฉ์ | ๋์ ์ด๊ณ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ์ค์ | |
| ๊ธฐํ | ์ค๋ ์ญ์ฌ์ ์์ ์ฑ | ์ต์ ๊ธฐ์ ์ ๋ํ ๋น ๋ฅธ ์ง์ |
๊ฒฐ๊ตญ, Maven๊ณผ Gradle์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ฅ๋จ์ ์ด ์์ผ๋ฉฐ, ํ๋ก์ ํธ ์๊ตฌ์ฌํญ์ ๋ง๋ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋ฐ์ํ
'SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SpringBoot] ์ฟผ๋ฆฌ์คํธ๋ง(Query String)๊ณผ ์ฃผ์๋ณ์๋งคํ(Path variable) (0) | 2025.01.14 |
|---|---|
| [SpringBoot] DI(Dependency injection) (0) | 2025.01.12 |
| [SpringBoot] servlet-context.xml, root-context.xml, pom.xml, web.xml ์ฐจ์ด์ (0) | 2025.01.12 |
| [SpringBoot] @LoginUser ์ด๋ ธํ ์ด์ (0) | 2024.10.10 |
| [SpringBoot] Spring Security์ /login ์์ฒญ ์ ์ฒ๋ฆฌ ๊ณผ์ (์ธ์ ์ ์ฅ) (5) | 2024.10.09 |