01 인텔리제이로 스프링 부트 시작하기

vencott·2021년 6월 2일
0

1.1 인텔리제이 소개

현업에서 자바 웹 개발에 가장 많이 사용되는 IDE는 단연 이클립스일 것이다

하지만 최근 IntelliJ의 다음과 같은 장점이 주목받고 있으며 이 책에서는 인텔리제이를 사용해보고자 한다

  • 강력한 추천 기능
  • 다양한 리팩토링 / 디버깅 기능
  • 이클립스의 깃에 비해 높은 자유도
  • 프로젝트 시작 시 인덱싱을 통한 빠른 검색 지원
  • Java 외 HTML, CSS, JS, XML에 대한 강력한 지원
  • Java / Spring Boot의 업데이트에 대한 빠른 대응

1.2 인텔리제이 설치하기

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

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

인텔리제이 vs 이클립스

인텔리제이에는 이클립스의 워크스페이스와 같은 개념이 없고, 프로젝트(Project)와 모듈(Module)의 개념만 있다

한 화면에 다수의 프로젝트를 불러올 수 없고 각 프로젝트를 독립적으로 관리한다

1. 인텔리제이 실행 → Create New Project

2. Gradle → Java → OpenJDK 1.8 버전을 선택한다

3. 다음과 같이 GroupId와 ArtifactId를 기재한다

ArtifactId

  • 프로젝트의 이름

GroupId

  • com.회사이름.앱이름

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

스프링 이니셜라이저를 사용하면 간단히 스프링 부트 개발을 위한 환경을 세팅할 수 있지만, 그레이들의 역할과 의미를 알아보기 위해 build.gradle 파일을 직접 수정한다

buildscript {
    ext {
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories {
        mavenCentral()
        jcenter()
    }
    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.vencott.dev'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
    jcenter()
}

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

build.gradle은 프로젝트의 기본적인 환경 설정이나 의존성 등을 모아놓은 집합이다

각 부분을 자세히 알아보면,

1. 프로젝트의 플러그인 의존성 관리

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

ext 키워드는 build.gradle에서 사용하는 전역변수를 설정하겠다는 것을 의미하며, springBootVersion이라는 변수를 생성하고 그 값을 할당하였다

2. 플러그인 의존성들의 적용

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

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

특히, io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이다

3. 의존성을 다운받을 라이브러리

repositories {
    mavenCentral()
    jcenter()
}

mavenCentral

  • 이전부터 많이 사용하는 저장소
  • 본인이 개발한 라이브러리를 업로드 하기 위한 과정과 설정이 매우 복잡

jcenter

  • 라이브러리 업로드 난이도를 개선
  • 자동으로 mavenCentral에도 업로드

4. 프로젝트 개발에 필요한 의존성 선언

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

의존성 코드는 직접 또는 자동완성으로 작성한다

단, 특정 버전을 명시하지 않도록 주의한다

버전을 명시하지 않으면 상단에 기재한 springBootVersion의 버전을 따라가게 되며, 각 라이브러리들의 버전 관리가 한 곳에 집중되고, 버전 충돌 문제도 해결되는 장점이 있다

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

IntelliJ - Github 연동을 통해 저장소를 생성하고, 소스코드를 관리한다

gitignore 파일을 수정해 인텔리제이에서 자동으로 생성되는 파일들(.idea, .gradle)을 모두 무시해준다

# Project exclude paths
.gradle
.idea

책 후반부에서 Github에 푸시하면 바로 배포가 진행되는 환경을 구축할 예정이므로 반드시 Github과 연동한다


출처: 이동욱 저, 『스프링 부트와 AWS로 혼자 구현하는 웹 서비스』, 프리렉(2019)


profile
Backend Developer

0개의 댓글

관련 채용 정보