1. 그레이들(Gradle)이란 무엇일까?

2026. 2. 9. 20:21·BackEnd/내일배움캠프

Gradle이란?

Gradle은 Java, Spring, Android 등에서 널리 사용되는 빌드 자동화 도구이자 의존성 관리 도구다.
프로젝트의 소스 코드를 컴파일하고, 테스트하고, 패키징하는 과정뿐 아니라 필요한 외부 라이브러리들을 자동으로 관리해준다.


build.gradle이란?

build.gradle은 Gradle 기반의 빌드 스크립트 파일이다.
이 파일 안에 프로젝트를 어떻게 빌드할지, 어떤 라이브러리를 사용할지 등을 정의한다.

주요 역할은 다음과 같다.

  • 소스 코드 빌드 설정
  • 라이브러리(의존성) 관리
  • 플러그인 설정
  • 프로젝트 전반의 빌드 규칙 정의

Gradle 스크립트 언어

Gradle 빌드 스크립트는 다음 두 가지 언어로 작성할 수 있다.

  • Groovy DSL → build.gradle
  • Kotlin DSL → build.gradle.kts

Spring 기반 프로젝트에서는 아직까지 Groovy DSL을 가장 많이 사용한다.


Gradle과 의존성 관리

Gradle의 가장 중요한 역할 중 하나는 라이브러리 의존성 관리다.

라이브러리란?

  • 특정 기능들이 묶여 있는 코드 집합
  • 예: 로그 처리, JSON 파싱, 웹 서버 기능 등

프로젝트에서는 수많은 라이브러리를 사용하게 되는데, 이때 문제가 되는 것이 버전 차이와 충돌이다.

Gradle은 이를 자동으로 해결해준다.


dependencies 블록

외부 라이브러리는 dependencies 블록에 작성한다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

이렇게 작성하면 Gradle은 다음 과정을 수행한다.

  1. Maven Repository(외부 저장소)에서
  2. 해당 라이브러리를 자동으로 다운로드
  3. 프로젝트에 연결

Maven Repository란?

  • 외부 라이브러리들이 저장되어 있는 중앙 저장소
  • Gradle은 기본적으로 Maven Central을 사용
  • 개발자가 직접 JAR 파일을 다운받을 필요가 없음

External Libraries

Gradle이 다운로드한 외부 라이브러리들은 IDE(IntelliJ 기준)에서

External Libraries 항목을 통해 직접 확인할 수 있다.

여기에는:

  • 직접 추가한 라이브러리
  • 해당 라이브러리가 의존하는 다른 라이브러리들(전이 의존성)

까지 모두 포함된다.


의존성 충돌을 Gradle이 해결해주는 방식

라이브러리들은 또 다른 라이브러리에 의존하는 경우가 많다.

  • A 라이브러리 → B 라이브러리 1.0 필요
  • C 라이브러리 → B 라이브러리 2.0 필요

이런 상황에서 의존성 충돌이 발생할 수 있다.

Gradle은:

  • 버전 규칙을 기반으로
  • 가장 적절한 버전을 선택하거나
  • 개발자가 명시한 버전을 우선 적용

하여 충돌을 최소화한다.

덕분에 개발자는 라이브러리 충돌 걱정 없이 비즈니스 로직 개발에 집중할 수 있다.


라이브러리 버전 관리

라이브러리는 버전에 따라 내부 코드가 달라질 수 있다.

  • 메서드 추가/삭제
  • 동작 방식 변경
  • 호환성 문제 발생

그래서 버전 관리가 매우 중요하다.

버전 변경 방법 (IntelliJ 기준)

  1. build.gradle에서 라이브러리 버전 수정
  2. 우측 상단에 나타나는 코끼리 아이콘(Gradle Sync) 클릭
  3. Gradle이 다시 빌드하면서
  4. 수정한 버전으로 라이브러리를 재다운로드 및 적용

한 줄 요약

  • Gradle은 빌드 자동화 + 의존성 관리 도구다
  • build.gradle은 Gradle 설정의 중심 파일이다
  • dependencies에 라이브러리를 선언하면 자동으로 다운로드된다
  • 외부 라이브러리와 버전 관리를 Gradle이 대신 처리해준다

정리하면, Gradle은 "라이브러리를 관리해주면서 빌드까지 책임지는 도구"라고 이해하면 가장 쉽다.

'BackEnd > 내일배움캠프' 카테고리의 다른 글

6. MVC 디자인 패턴이란?  (0) 2026.02.09
5. Lombok이란?  (0) 2026.02.09
4. 테스트코드  (0) 2026.02.09
3. HTTP란 무엇일까?  (0) 2026.02.09
2. 서버란 무엇일까?  (0) 2026.02.09
'BackEnd/내일배움캠프' 카테고리의 다른 글
  • 5. Lombok이란?
  • 4. 테스트코드
  • 3. HTTP란 무엇일까?
  • 2. 서버란 무엇일까?
JK-LEE98
JK-LEE98
백엔드 개발자
  • JK-LEE98
    JK-LEE98
    JK-LEE98
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 나의 지식 공유 (4)
      • SQL (4)
      • PS (10)
      • BackEnd (32)
        • Java (3)
        • Spring (4)
        • 내일배움캠프 (20)
        • 프로그래머스 데브코스 (5)
      • 건강한 나 되기🍀 (10)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
JK-LEE98
1. 그레이들(Gradle)이란 무엇일까?
상단으로

티스토리툴바