IntelliJ로 Spring Boot 시작하기

인텔리제이 설치하기

젯프레인 툴박스 페이지에서 Download를 클릭해서 설치한다. 툴박스는 인텔리제이를 만든 젯브레인의 제품 전체를 관리해 주는 데스크톱 앱이다.

인텔리제이는 유료 버전인 얼티메이트와 무료 버전인 커뮤니티 버전 두 가지가 있다. 이중 무료 버전인 커뮤니티를 설치한다.

설치된 커뮤니티 설정 화면 중 Configuration에서 Maximum heap size가 750MB로 되어 있다. 이 설정은 인텔리제이를 실행하는데 메모리를 어느 정도 할당할지를 결정하는 값이다.

일반적으로 개발 PC의 메모리가 8G라면 1024 ~ 2048을, 16G라면 2048 ~ 4096을 선택해서 사용한다.

인텔리제이 커뮤니티에서 프로젝트 생성하기

인텔리제이에는 이클립스의 워크스페이스와 같은 개념이 없다. 프로젝트와 모듈의 개념만 있다. 그래서 인텔리제이를 실행할 때 모든 프로젝트를 한 번에 불러올 수 없고, 한 화면에서 하나의 프로젝트만 열린다.

툴박스 앱에서 인텔리제이 커뮤니티 아이콘을 클릭한다.

New Project 버튼을 클릭한다.

프로젝트 유형은 그레이들을 선택한다.

프로젝트 이름과 디렉토리 위치를 선택하고 GroupId와 ArtifactId를 지정해야 한다.
ArtifactId는 프로젝트 이름이 된다.

그레이들 기반의 자바 프로젝트가 생성된다.

gradle > wrapper > gradle-wrapper.properties에서
현재 프로젝트의 그레이들 버전을 체크한다.

인텔리제이에서 alt+F12를 눌러 해당 프로젝트 기준으로 터미널을 열고

gradlew wrapper --gradle-version 4.10.2

해당 명령어를 입력한다.

그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기

여기서 스프링 이니셜라이저(https://start.spring.io)를 통해서 진행하지 않는다. 이유는 스프링 이니셜라이저를 사용하게 되면 build.gradle의 코드가 무슨 역할을 하는지, 이니셜라이저 외에 추가로 의존성 추가가 필요하면 어떻게 해야 할지 등을 모르는 상태로 개발하는 경우가 있다.

인텔리제이에서 build.gradle 파일을 수정한다.

plugins {
    id 'java'
}

대신

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

이 프로젝트의 플러그인 의존성 관리를 위한 설정이다.
ext라는 키워드는 build.gradle에서 사용하는 전역변수를 설정하겠다는 의미인데, 여기서는 springBootVersion 전역변수를 생성하고 그 값을 '2.1.9.RELEASE'로 하겠다는 의미이다. 즉, spring-boot-gradle-plugin라는 스프링 부트 그레이들 플러그인의 2.1.9.RELEASE를 의존성으로 받겠다는 의미이다.

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

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

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

4개의 플러그인은 자바와 스프링 부트를 사용하기 위해서는 필수 플러그인들이니 항상 추가하면 된다.

repositories {
    mavenCentral()
    jcenter()
}

repositories는 각종 의존성 들을 어떤 원격저장소에서 받을지 정한다. 기본적으로 mavenCentral을 많이 사용하지만, 최근에는 라이브러리 업로드 난이도 때문에 jcenter도 많이 사용한다.

mavenCentral은 이전부터 많이 사용하는 저장소지만, 본인이 만든 라이브러리를 업로드하기 위해서는 정말 많은 과정과 설정이 필요하다. 그러다 보니 개발자들이 직접 만든 라이브러리를 업로드하는 것이 힘들어 점점 공유가 안 되는 상황이 발생했다.

최근에 나온 jcenter는 이런 문제점을 개선하여 라이브러리 업로드를 간단하게 하였다. 또한, 여기서 한 걸음 더 나아가 jcenter에 라이브러리를 업로드하면 mavenCentral에도 업로드될 수 있도록 자동화를 할 수 있다. 그러다 보니 개발자들의 라이브러리가 점점 jcenter로 이동하고 있다. 여기서는 mavenCentral, jcenter 둘 다 등록해서 사용하겠다.

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

dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳이다.
여기서는 org.springframework.boot:spring-boot-starter-weborg.springframework.boot:spring-boot-starter-test를 받도록 선언되어 있다.

의존성 코드는 직접 작성해도 되고, 자동완성으로 만들어도 된다.
단, 특정 버전을 명시하면 안 된다. 버전을 명시하지 않아야만 맨 위에 작성한 'org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}'의 버전을 따라가게 된다.

이렇게 관리할 경우 각 라이브러리들을 버전 관리가 한 곳에 집중되고, 버전 충돌 문제도 해결되어 편하게 개발을 진행할 수 있다.

업데이트 아이콘을 클릭하면 spring-boot-starter-web과 spring-boot-starter-test와 관련된 라이브러리들을 받고 있는 것을 확인할 수 있다. 모두 받게 되면 화면 오른쪽 위의 Gradle 탭을 클릭해서 의존성들을 잘 받아졌는지 확인한다.

인텔리제이에서 깃과 깃허브 사용하기

https://github.com 에 계정이 없다면 가입을 먼저 해야 한다. 깃허브의 계정이 있으면 바로 인텔리제이 화면으로 이동한다.

인텔리제이에서 단축키로 윈도우에서는 Ctrl + Shift + A를 사용해 Action 검색창을 열어 share project on github을 검색한다.

해당 Action을 선택한 후 엔터를 누르면 깃허브 로그인 화면이 나온다.

본인 깃허브 계정으로 로그인을 한다. 그럼 다음과 같이 깃허브에 생성할 저장소 정보를 입력하는 화면이 나온다. Repository name 필드에 등록한 이름으로 깃허브에 저장소가 생성된다. 대부분은 프로젝트 이름을 깃허브 저장소와 같은 이름을 사용하니, 같은 이름을 등록한다.

Share 버튼을 클릭하면 깃허브 저장소와 동기화를 진행한다.

프로젝트의 첫 번재 커밋을 위한 팝업창이 등장한다.

.idea 디렉토리는 프로젝트 실행시 자동으로 생성되는 파일들이기 때문에 커밋하지 않는다. 체크되어 있는 파일들만 체크해서 커밋 메시지를 작성한다. 그리고 Add 버튼을 누르면 깃 커밋과 깃허브 푸시가 진행된다.

커밋과 푸시가 성공했다면 본인의 깃허브 계정으로 이동하면 인텔리제이로 만든 프로젝트가 그대로 깃허브에도 생성된 것을 확인할 수 있다.

깃허브와 동기화 되어 있어 커밋할 때 .idea 폴더가 계속 남아 있으므로 앞으로 모든 커밋 대상에서 제외되도록 처리를 해야한다.

깃에서 특정 파일 혹은 디렉토리를 관리 대상에서 제외할 때는 .gitignore 파일을 사용한다. 이 파일 안에 기입된 내용들은 모두 깃에서 관리하지 않겠다는 것을 의미한다.

인텔리제이에서 자동으로 생성되는 파일들을 모두 이그노어 처리한다.

.gradle
.idea

이그노어 처리된 것을 깃허브에도 반영한다. 깃 커밋 창(Ctrl + K)을 열어서 .gitignore 파일을 선택하고, 메시지를 작성했다면 Commit 버튼을 클릭한다.

깃허브 푸시는 Ctrl + Shift + K를 누르면 다음과 같이 푸시 화면이 나온다. Push 버튼을 클릭하면 바로 푸시가 진행된다.

푸시가 성공했다면 다시 깃허브의 프로젝트로 이동하면 커밋과 푸시가 성공적으로 반영된 것을 확인할 수 있다.

좋은 웹페이지 즐겨찾기