[Spring]스프링부트 초기설정

2 분 소요

이 게시물은 이동욱님의 “스프링 부트와 AWS로 혼자 구현하는 웹 서비스”를 읽고 공부하며 작성한 게시물입니다.

시작하며…

올해의 목표들을 이루고, 본질적으로 나의 실력을 키우기 위해서 자바 스프링으로 웹사이트를 구현해보려 한다.
뭐든지 가장 제일 빠르게 배우고 흥미있게 배우는 방법은 실제로 만들어 보는것이므로 직접 간단한 웹사이트를 만들어 가면서 숙달해보기로 했다.

아무래도 가장 좋은건 책을 따라 하는 것 같아서 책을 한권 구입해서 따라해가며 만들어 보고, 그 다음에는 혼자서 원하는 기능의 웹사이트를 하나 만들어가는 것을 목표로 해보려고 한다. 책은 최대한 이론서 보다는 따라하면서 직접 만드는 결과가 눈에보이며, 완독 후에는 내 힘으로 웹사이트를 만들 수 있는 기술을 배울 수 있고, 현직에서 사용하는 방식을 설명해주는 책을 원했는데, 고맙게도 딱 맞는 책이 있어 구입했다. 맨 처음에는 목차와 커리쿨럼을 보고 골랐는데 알고보니까 평소에 블로그도 많이 접하고 유튜브로도 많이 접했던 이동욱님이 쓰신 책이어서 구입 후 책을 펼치자마자 책 잘샀다는 생각이 들었다.

그럼 스프링푸트 초기설정부터 시작해보자.

스프링 부트 초기설정

스프링 프레임워크는 타 언어와 프레임워크, 예를들어 NodeJS와 Express, Python과 Django, Ruby와 Rails에 비해서 복잡하고 어렵다는 인식이 있는데, 현재에는 스프링부트가 나오면서 훨씬 편하게 설정을 할 수 있게 되었다.

먼저 gradle 프로젝트를 생성해서 이를 스프링 부트 프로젝트로 변경해보자.

스프링부트 이니셜라이즈를 사용하면 이 부분을 간단하게 설정할 수 있지만, 그래도 어떤 방식으로 스프링 부트 프로젝트를 생성할 수 있는지, 어떤 역할을 하는지 그 원리를 배우기 위해 직접 설정해보도록 한다.

build.gradle 파일을 열어 설정해주자.

1
2
3
4
5
6
7
8
9
10
11
12
buildscript {
    ext {
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

기본적인 코드 에다가 위와 같은 부분을 먼저 맨앞에 추가 해주는데, 먼저 ext 부분은 전역변수를 설정하는 부분으로 springBootVersiond르 전경변수로 생성하고 그 값을 “2.1.7.RELEASE”로 하겠다는 뜻이다. 이렇게 하면 각 라이브러리들의 버젼을 한 곳에 모아 관리할 수 있어 관리도 편하고, 충돌문제도 해결할 수 있다.

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

1
2
3
4
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

특히 io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해주는 플러그인이기 때문에 꼭 추가해주어야 한다.
위 플러그인들은 자바, 스프링부트를 사용할 떄 필수이기 떄문에 항상 추가해주면 된다.

그리고 나머지 코드들을 아래에 추가해주면 된다.

1
2
3
4
5
6
7
8
9
repositories {
    mavenCentral()
    jcenter()
}

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

rpositiories는 각종 의존성들을 어떤 원격 저장소에서 받을지를 정한다. 보통은 mavenCentral을 사용하지만, 라이브러리가 어려운 mavenCentral에 비해 라이브러리 관리가 간편한 jcenter도 많이 사용한다. 따라서 mavenCentralr과 jcenter둘다 등록해주도록 하자.

dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳으로, 여기서는 org.springframework.boot:spring-boot-starter-web과 org.springframework.boot:spring-boot-starter-test를 받도록 선언해준다.

단 의존성 코드를 선언할때 특정 버젼을 명시하지 않아야만 위에 선언했던 springBootVersion의 버젼을 따라가게 되기 때문에,
특정 버젼은 명시하지 않아야한다.

이렇게 하면 기본적인 스프링 부트 개발환경 구축을 완료할 수 있으며, 추가적인 의존성 선언이 필요할때도 헤메지 않고 build.gradle 파일에 의존성을 추가할 수 있게되었다.

카테고리:

업데이트:

댓글남기기