본문으로 바로가기
더보기

<스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 이동욱> 책을 활용해

공부한 내용을 정리할 예정입니다.

 

1. 인텔리제이 설치하기

툴박스는 인텔리제이를 만든 젯브레인의 제품 전체를 관리해 주는 데스크톱 앱 입니다.

툴 박스를 설치하고 인텔리제이 커뮤니티 버전을 설치해서 활용하면 됩니다.

https://www.jetbrains.com/toolbox-app/

 

JetBrains Toolbox App: Manage Your Tools with Ease

Open any of your projects in any of the IDEs with one click.

www.jetbrains.com

혹시 대학생이라면 에듀케이션을 활용할 수 있습니다. 1년간 얼티메이트 버전과 동일하게 사용 가능합니다.

https://www.jetbrains.com/ko-kr/student/

 

For Students: Free Professional Developer Tools by JetBrains

JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, and the Kotlin programming language.

www.jetbrains.com

 

2. 프로젝트 생성

>Create New Project

프로젝트 생성 화면

프로젝트 유형은 그레이들(Gradle)을 선택해 프로젝트를 생성합니다.

프로젝트 그룹명과 아티펙트명 등록

ArtifactId프로젝트 이름이 됩니다. 원하는 프로젝트명을 작성합니다.

원하는 위치에 프로젝트를 생성해주면 끝.

 

3. 그레이들 프로젝트를 스프링 부트 프로젝트로 변경

생성된 프로젝트의 build.gradle파일을 수정해야합니다.

처음 생성된 코드는 기초적인 설정만 되어 있기 때문에 스프링 부트에 필요한 설정들을 추가합니다.

스프링 이니셜라이저(https://start.spring.io/)를 사용해도 무관하지만
build.gradle의 코드의 역할을 이해하기 위해 사용하지 않겠습니다.

 

  • 코드 최상단

플러그인 의존성 관리를 위한 코드이다.

ext 키워드는 build.gradle에서 사용하는 전역변수를 설정하겠다는 의미이다.

따라서, spring-boot-gradle-plougin라는 스프링 부트 그레이들 플러그인의 2.1.7.REALEASE를 의존성으로 받겠다는 의미이다.

buildscript {
    ext {
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}
  • 코드 중간

앞서 선언한 플러그인 의존성들을 적용할 것인지를 결정하는 코드이다.

io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해야한다.

아래 네가지 플러그인은 자바와 스프링 부트 사용에 필수적이므로 항상 추가하면 된다.

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
  • 나머지 코드

repositories는 각종 의존성들을 어떤 원격 저장소에서 받을지를 정한다.

기본적으로 mavenCentral을 많이 사용한다.

 

dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳이다.

의존성 코드는 직접 작성해도 되고, 자동완성으로 만들어도 된다.

단, 특정 버전을 명시하면 안된다. 버전을 명시하지 않아야 맨 위에 선언한 버전을 따라간다.

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
  • 전체 코드

buildscript {
    ext {
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group 'com.hyemcomi'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

코드 작성이 다 되었다면 변경 사항을 반영하도록 Import change 해주면 완료