자바의 라이브러리 의존성 관리 및 빌드 도구 (Maven, Gradle)
2025. 6. 11. 12:53ㆍBackend/기타
Maven, Gradle?
: 라이브러리 설치부터 빌드/실행까지 자동으로 도와주는 관리자
1. 왜 필요한 걸까?
- 자바로 프로젝트 만들다 보면 외부 라이브러리(예: Hibernate, MySQL 드라이버 등)를 써야 함
- 그런데 그걸 직접 다운로드하고 연결하면 너무 귀찮고 비효율적
- 또한, 자바 파일이 .class로 컴파일되고, .jar로 묶여야 배포 가능한데, 그걸 매번 수동으로 하면 실수도 많고 시간이 오래 걸림
- 그래서 “라이브러리 의존성 관리 + 빌드(컴파일하고 실행 파일로 만드는 것) 자동화” 를 해주는 도구가 필요해짐
2. Maven과 Gradle의 역할
기능 | 설명 |
1. 의존성 관리 | 필요한 라이브러리를 pom.xml(Maven) 또는 build.gradle(Gradle)에 선언만 하면 자동 다운로드됨 |
2. 컴파일 및 빌드 | 소스코드를 .class, .jar 파일로 자동 변환 |
3. 테스트 실행 | JUnit 같은 테스트 프레임워크도 자동으로 연동해서 실행 가능 |
4. 패키징/배포 | 빌드한 결과물을 .jar나 .war로 묶어 배포용으로 만듦 |
3. Maven과 Gradle 차이
항목 | Maven | Gradle |
설정 파일 | XML(pom.xml) | Groovy/Kotlin 기반 DSL(build.gradle) |
문법 | 좀 더 엄격하고 구조화됨 | 자유롭고 간결한 스타일 |
학습 난이도 | 익히기 쉬움 | 좀 더 유연하지만 배우는 데 약간 시간 필요 |
속도 | 느린 편 | 상대적으로 빠름 (특히 캐싱 덕분에) |
트렌드 | 오래된 시스템에서 여전히 널리 사용 | 요즘은 Gradle을 더 많이 씀 (안드로이드도 Gradle 씀) |
4. 실무에서 어떻게 쓰일까?
- 기업/팀마다 사용하는 빌드 도구가 정해져 있음
- 예전부터 쓰던 시스템은 Maven이 많고
- 요즘 새로 만드는 프로젝트는 대부분 Gradle을 사용
- Spring Boot 공식 문서나 스타터 템플릿도 Gradle 기본으로 제공하는 경우 많음