스프링 게시판 프로젝트 2일차
SpringbootBoard
이동욱(jojoldu)의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책과 제 이전 프로젝트 MiniMelon의 설정을 참고하여 제 지식과 적절히 편한대로 섞어 작성하였습니다.
build.gradle을 열어보면 코드는 다음과 같다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
plugins {
id 'java'
}
group 'com.seungsu'
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()
}
|
cs |
이 그레이들 프로젝트를 스프링 부트 프로젝트로 변경할 것이다.
두 가지 방법 중 하나를 사용하면 된다.
1. 스프링 이니셜라이저 사용
2. 직접 코드 작성
스프링 이니셜라이저 사용 전에 먼저 직접 한 줄씩 코드를 작성하고 어떤 역할인지 이해해 보겠다.
스프링 부트와 그레이들을 충분히 이해하고 스프링 이니셜라이저를 사용해도 될 것 같다.
제일 위에 작성할 코드는 다음과 같다.
|
1
2
3
4
5
6
7
8
9
10
11
12
|
buildscript {
ext {
springBootVersion = '2.1.9.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
|
cs |
플러그인 의존성 관리를 위한 설정 코드이다.
ext 키워드는 build.gradle에서 사용하는 전역변수를 설정하는 키워드이다.
이 코드에서는 springBootVersion 전역변수를 선언해서 그 값을 '2.1.9.RELASE'로 초기화한다.
즉, spring-boot-gradle-plugin의 2.1.9.REALSE를 의존성으로 받겠다는 뜻이다.
그 다음에 작성할 코드이다.
|
1
2
3
4
|
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
|
cs |
앞서 선언한 플러그인 의존성들을 적용할 것인지를 결정하는 코드이다.
io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해야 한다.
이렇게 4개의 플러그인은 자바와 스프링 부트를 사용하기 위한 필수 플러그인들이므로 항상 추가하도록 한다.
제일 마지막으로 작성할 코드이다.
|
1
2
3
4
5
6
7
8
9
|
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
|
cs |
repositories 키워드는 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지를 정하는 키워드이다.
기본적으로 mavenCentral을 많이 사용하나, 최근 라이브러리 업로드 난이도 때문에 jcenter도 많이 사용한다.
업로드를 위해 많은 과정과 설정이 필요한 mavenCentral의 문제점을 개선하여 라이브러리 업로드를 간단하게 한 것이 바로 jcenter이다.
jcenter에 라이브러리를 업로드하면 mavenCentral에도 업로드되게 자동화할 수도 있어서 개발자들의 라이브러리가 점점 jcenter로 이동하고 있다.
이 코드에서는 둘 다 등록해서 사용하도록 하겠다.
dependencies 키워드는 프로젝트 개발에 필요한 의존성들을 선언하는 키워드이다.
이 코드에서는 org.springframework.boot:spring-boot-starter-web와 org.springframework.boot:spring-boot-starter-test를 받도록 선언한다.
인텔리제이는 메이븐 저장소의 데이터를 인덱싱해서 관리하기 때문에 커뮤니티 버전으로도 의존성 자동완성이 가능하다.
dependencies 키워드 안에 compile() 메소드를 써준 뒤 Ctrl + Space 단축키를 써주면 자동완성 라이브러리 목록을 볼 수 있다.
'' 홑따옴표만 써줘도 볼 수 있지만 라이브러리 이름 앞부분을 써줄수록 찾기 쉽다.
이렇게 의존성 코드는 직접 작성해도 자동완성을 써도 상관없지만 특정 버전을 명시해선 안된다.
버전을 명시하지 않아야 맨 위에 작성한 'org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}'의 버전을 따라간다.
이렇게 관리할 경우 각 라이브러리들의 버전 관리가 한 곳에 집중되고, 버전 충돌 문제도 해결되어 편하게 개발을 진행할 수 있다.
전체 코드는 다음과 같다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
buildscript {
ext {
springBootVersion = '2.1.9.RELEASE'
}
repositories {
mavenCentral()
}
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.seungsu'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
|
cs |
코드 작성이 완료되면 오른쪽 위에 뜨는 코끼리 모양의 버튼을 클릭한다.
Load Gradle Changes로 Ctrl + Shift + O가 단축키이다.
build.gradle 변경에 따라 라이브러리들을 import해준다.
Gradle 탭을 누르면 받은 의존성을 확인할 수 있다.

의존성이 잘 받아진 것을 확인할 수 있다.
그리고 Show Dependencies를 클릭하면 현재 의존성 관계를 그림으로 볼 수 있다.

인텔리제이에 기본적인 스프링 부트 개발환경을 구축하였다.
'Java' 카테고리의 다른 글
| 스프링 게시판 프로젝트 4일차 6번의 프로젝트 이야기, 깃 브랜치 전략 (0) | 2022.01.05 |
|---|---|
| 스프링 게시판 프로젝트 3일차 .gitignore (0) | 2021.12.30 |
| 스프링 게시판 프로젝트 시작 1일차 프로젝트 생성, 깃, 깃허브 연동 (0) | 2021.12.24 |
| 스마트팩토리 13주 61일차 java 11일차 (0) | 2021.07.23 |
| 스마트팩토리 13주 60일차 java 10일차 (0) | 2021.07.22 |




최근댓글