이 연재글은 SpringBoot2로 Rest api 만들기의 1번째 글입니다.

Intellij에서 SpringBoot2를 실습하기 위한 가장 기본적인 설정을 진행해보겠습니다. 프로젝트의 진행은 Intellij Community 버전으로 진행합니다. 다음 사이트에서 Intellij Community 버전을 다운로드하여 설치해 주십시오.

https://www.jetbrains.com/idea/download

Intellij - Create New Project

Create New Project를 선택합니다.

Intellij - Select Gradle Java

Gradle을 선택하고 SDK는 개발 PC에 깔려있는 JDK를 선택합니다. 혹시 개발 PC에 JDK가 깔려있지 않은 경우 먼저 아래 링크에서 JDK를 다운로드하여 설치합니다.
>> Adopted OpenJdk Downloads
오라클이 Java에 대해서 유료화 정책을 시행하고 있으므로 OpenJDK 사용을 권장드립니다.
Additional Libraries and Frameworks는 JAVA를 선택해 주십시오.

Intellij - Insert GroupId and ArtifactId

groupId는 프로젝트를 다른 모든 프로젝트 사이에서 고유하게 식별해 주는 값입니다.
artifactId는 프로젝트의 jar생성 시 버전 정보를 생략한 파일의 이름입니다.

Intellij - Set Use auto-import

Use auto-import 를 체크합니다.

Intellij - Insert Project name

Project name에 적당한 이름을 넣고 Project location의 변경이 필요하면 …을 눌러 경로를 변경하고 Finish를 눌러 주십시오.

Intellij - Execute gradle

기본으로 생성되는 프로젝트 구조입니다.
아래 내용으로 build.gradle내용을 변경하면 라이브러리가 자동으로 갱신됩니다.
혹시 갱신되지 않으면 오른쪽 Gradle탭을 누른 후 동그란 모양의 리프레시 버튼을 눌러주십시오. 처음에는 라이브러리 다운로드에 조금 시간이 걸릴 수 있습니다.
해당 프로젝트에서는 freemarker, lombok, h2, mysql을 사용하도록 설정하였습니다.

plugins {
    id 'org.springframework.boot' version '2.1.4.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'com.rest'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '9'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-freemarker'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'com.h2database:h2'
    runtimeOnly 'mysql:mysql-connector-java'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Lombok 사용을 활성화하기 위해 아래처럼 File – Settings – Plugins – Lombok을 검색하여 install 합니다. install이 완료되면 IDE를 restart 합니다.

Intellij - Install Lombok Plugins

Lombok은 Java에서 도메인 모델(VO, DTO, Entitiy…)을 간편하게 사용할 수 있게 해주는 라이브러리입니다. 예를 들면 DB에서 데이터를 주고받을 때 Table에 맵핑되는 모델 생성 시엔 각 필드에 대한 Setter, Getter 정의가 필요합니다.
Lombok은 어노테이션(@~~)만 설정하면 Setter, Getter 같은 추가적인 코딩이 필요하지 않게 해 줍니다. 해당 기능 이외에도 Lombok은 여러 가지 개발 편의성을 제공하므로 사용하는 것이 개발 생산성에도 좋습니다.

Intellij - Set Annotation Processors

File – Settings – Build. Execution, Deployment – Compiler – Annotation Processors 선택 후 오른쪽 상단의 Enable annotation processing을 체크합니다.
해당 내용을 체크해야 Lombok annotation을 소스에서 인식할 수 있습니다.

Intellij - Project Structure

최종 프로젝트 구조는 위와 같습니다.
대부분의 코드는 src/main/java 아래에 package를 구성하여 작성하게 됩니다.
다음 시간엔 실제로 서버를 실행하여 HelloWorld를 실행해 보도록 하겠습니다.

최신 소스는 GitHub 사이트를 참고해 주세요.
https://github.com/codej99/SpringRestApi

위의 프로젝트를 초기 구성하는데 어려움이 있다면 Spring initializr를 통해 간편하게 프로젝트를 생성할 수 있습니다. 다음 포스팅을 참고해 주세요.

GitHub Repository를 import하여 Intellij 프로젝트를 구성하는 방법은 다음 포스팅을 참고해주세요.

Docker로 개발 환경을 빠르게 구축하는 것도 가능합니다. 다음 블로그 내용을 읽어보세요!

스프링 api 서버를 이용하여 웹사이트를 만들어보고 싶으시면 아래 포스팅을 참고해 주세요.

연재글 이동
[다음글] SpringBoot2로 Rest api 만들기(2) – HelloWorld