스프링 부트 개발환경 구축

박찬미·2021년 4월 10일
0

Spring Boot

목록 보기
1/17

JetBrains 툴박스 및 인텔리제이 설치

젯브레인의 제품 전체를 관리해주는 데스크톱 앱
모든 제품의 버전 관리와 JVM 옵션 등 조정 가능

JetBrains 툴박스 다운

이렇게 하면 하단의 작업표시줄에 젯브레인 툴박스 아이콘이 생성된다.


전에 설치해놓은 여러 개발도구가 보인다.
이미 인텔리제이를 설치해서 떠 있지만, 설치되어있지 않은 경우 Available의 Install를 눌러 설치한다.

이렇게 툴박스를 이용하면 버전 관리가 쉬워진다.(나중에 업데이트를 툴박스를 통해 관리할 수 있기 때문)

이외에도 툴박스 인텔리제이 세팅을 보면 다양한 설정 가능

Maximum Heap Size란 인텔리제이 실행시 얼마 만큼의 메모리를 할당할지 결정하는 값을 의미한다.
여기서 내 메모리는 16GB 때문에 2048MB로 변경하였다.



프로젝트 생성

이제 인텔리제이에서 프로젝트를 생성하겠다.

잠깐!!
인텔리제이는 이클립스처럼 워크스페이스 개념이 없다.
프로젝트와 모듈 개념만 존재한다.
그렇기 때문에 인텔리제이를 실행할 때 모든 프로젝트를 한 번에 불러올 수 없고, 한 화면에서는 하나의 프로젝트만 열린다.
자세한 개념은 다음 글에서...

툴박스에서 인텔리제이를 클릭한다.
뭐 책에서는 테마 설정에 대해 나오지만, 나는 이전에 이미 설치했기 때문에 넘어가겠다.

인텔리제이 단축키는 디폴트 버전을 추천한다.
런처 스크립트, 기본/추가 플로그인 선택 설정은 기본으로 한다.

이제 모든 설정이 끝났다.



  • Create New Project

  • 프로젝트 유형 Gradle 선택

  • 프로젝트 GroupId, ArtifactId 등록

    GroupId : 프로젝트 식별 값
    ArtifactId : 프로젝트 이름
    Project Location은 기본적으로 ArtifactId에 따라 잡히지만 원하는 위치가 있다면 수정하면 된다.(난 잘 모르니 걍 기본으로 했다.)

Finish를 누르면 gradle 기반의 자바 프로젝트가 생성된다.



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

  • build.gradle 원래 소스
plugins {
    id 'java'
}

group 'com.springboot.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}

test {
    useJUnitPlatform()
}

위 코드는 자바 개발에 필요한 기본적인 설정만 되어있는 상태이기 때문에 스프링부트에 필요한 설정을 추가해야 한다.


  • build.gradle 수정
buildscript { // 플러그인 의존성 관리 설정
    ext{ // 전역변수를 설정하겠다.
        // springBootVersion 전역변수 설정 -> 값 : 2.1.7.RELEASE
        // spring-boot-gradle-plugin이라는 스프링부트 그레이들 프로그인의 2.1.7.RELEASE를 의존성으로 받겠다.
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories { // 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지 설정
        // 기본
        mavenCentral()
        // 최근에는 라이브러리 업로드 난이도 때문에 jcenter도 많이 사용
        // 이 저장소에 자신이 생성한 라이브러리를 업로드하기 위해서는 많은 과정과 설정이 필요(문제) ->
        // jcenter로 인해 라이브러리 업로드 간단해짐(해결)
        // jcenter 라이브러리를 업로드하면 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.springboot.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies { // 프로젝트 개발에 필요한 의존성 선언
//    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
//    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    
    // 특정 버전을 명시하면 안 된다!!
    // 버전을 명시하지 않아야 맨 위 ${springBootVersion}을 알아서 따라간다.
    // 이렇게 해야 버전 관리가 쉽고 충돌 문제가 해결된다.
}

test {
    useJUnitPlatform()
}

위 코드로 변경했다.

인텔리제이는 메이븐 저장소의 데이터를 인덱싱해서 관리하기 때문에 의존성 자동완성이 가능하다.
compile 메소드 안에 라이브러리 이름 앞부분만 추가하고 [Ctrl+Space]하면 해당 라이브러리 목록을 볼 수 있다.

그러면 intellJ가 변경한 내용을 반영하라는 알림을 준다. 아래 버튼을 클릭하여 반영한다.(enable auto-import 이용하면 편하다.)


  • 프로젝트 의존성 확인

    compile은 spring-boot-starter-web
    test는 spring-boot-starter-test


	그레이들 빌드 후 성공적으로 빌드했다는 알림이 떴지만, 
    	Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
	Use '--warning-mode all' to show the individual deprecation warnings.
	See 		
	https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings
    	이런 알림도 떴다. 근데 걍 버전 업데이트 안 한다..

0개의 댓글