본문 바로가기
Drawing note

[웹 개발/스터디] 빌드 자동화 Gradle과 lombok 라이브러리

by 오늘이 내가 된다. 2022. 4. 1.

해당 글은
React.js, 스프링 부트, AWS로 배우는 웹 개발 101, 김다정, 에이콘

을 토대로 작성했습니다.


Gradle

gradle : 빌드 자동화 툴을 말한다.

빌드 자동화 툴을 이용하면 컴파일, 라이브러리 다운로드, 패키징, 테스팅 등을 자동화 할 수 있다.

 

빌드 자동화를 사용하는 이유

간단히 말하면 반복 작업을 쉽게 수행하기 위해서이다.

웹 애플리케이션을 만들려면 여러 가지 라이브러리가 필요하다.

빌드 자동화 툴이 없다면 라이브러리의 사용을 위해 라이브러리 사이트에서 jar 파일을 다운로드 받는다.

이후 이클립스의 Project Build Path에 이 라이브러리를 추가해야 한다.

 

프로젝트가 커지면 여러 가지 빌드를 나눠 작업해야 할 필요성을 느낀다.

프로젝트 프로덕션 릴리스 빌드 과정에서 개발자는 모든 라이브러리를 컴파일하여 빌드를 하고 유닛 테스트를 실행시키는 작업을 해야 한다. 이 과정에서 반복적으로 같은 작업을 하는 것은 자원의 낭비이므로 자동화를 하는 것이다.

 

 

스프링 프로젝트 실습(Gradle)

더보기
build.gradle

그래들 설정파일

내용은 주석으로 표시했다.

plugins {
	id 'org.springframework.boot' version '2.5.13-SNAPSHOT'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
}

group = 'com.example'		// dovmfflzpdltusdmf qovhgksms ep tkdyd
version = '0.0.1-SNAPSHOT' // 프로젝트의 버전
sourceCompatibility = '1.8'

// 롬복을 사용하기 위해 annotationProcessor가 필요
configurations {
	compileOnly {
		extendsFrom annotationProcessor // 컴파일 당시 annotationProcessor를 사용하도록 그래들에게 명시
	}
}

// 그래들이 라이브러리를 다운받는 곳 repositories
repositories {
	mavenCentral()
	maven { url 'https://repo.spring.io/milestone' }
	maven { url 'https://repo.spring.io/snapshot' }
}

// 이 프로젝트에서 사용할 라이브러리를 명시하면 그래들이 레포지토리에서 라이브러리를 설치한다.
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	// https://mvnrepository.com/artifact/com.google.guava/guava/30.1.1-jre (구글 구아바 그래들 라이브러리 추가)
	implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre'
	
}

// 유닛테스트를 할 수 있고 JUnit을 통해 빌드 테스트를 하도록 명시
tasks.named('test') {
	useJUnitPlatform()
}

lombok

lombok : 어노테이션을 추가하면 컴파일 시 그에 상응하는 코드를 만들어주는 라이브러리이다.

따라서 lombok 라이브러리를 사용하면 개발시간을 단축할 수 있다.

 

lombok은 getter, setter, builder, constructor 프로젝트 컴파일 시 관련 코드를 자동으로 작성해 주는 역할을 한다.

이클립스에서 롬복을 사용하려면 jar 파일을 이용해 플러그인을 설치해야 한다.

댓글