해당 글은
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 파일을 이용해 플러그인을 설치해야 한다.
'Drawing note' 카테고리의 다른 글
[웹 개발/스터디] 이클립스에서 lombok 라이브러리 설치 방법 (0) | 2022.04.03 |
---|---|
[웹 개발/스터디] 스프링부트 시작하기 (0) | 2022.04.03 |
[웹 개발/스터디] 스프링 프레임워크와 의존성 주입 (0) | 2022.04.01 |
[웹 개발/스터디] 서버(Server) / 자바 서블릿(Servlet) 엔진 (0) | 2022.03.07 |
[웹 개발/스터디] 자바스크립트 오브젝트 노테이션 JSON (0) | 2022.03.07 |
댓글