자바의 라이브러리 의존성 관리 및 빌드 도구 (Maven, Gradle)

2025. 6. 11. 12:53Backend/기타

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 기본으로 제공하는 경우 많음