CH01 인텔리제이로 스프링부트 시작하기
이미 인텔리제이가 설치되어있기에 인텔리제이 설치하는 과정은 생략하도록 하겠다.
01. 인텔리제이 커뮤니티에서 프로젝트 생성하기
- 인텔리제이는 워크스페이스와 같은 개념이 없음 -> 프로젝트와 모듈의 개념만 존재
- create new project -> gradle 선택
02. gradle 프로젝트를 springboot 프로젝트로 변경하기
그레이들 프로젝트를 생성했다.
이 그레이들 프로젝트를 springboot 프로젝트로 변경해 보겠다.
<build.gradle 파일 열기>
처음 build.gradle을 열면 기초적인 설정만 되어있는 상태이다. 이제 스프링부트에 필요한 설정들을 하나씩 추가할 것.
스프링 이니셜라이저를 통해 진행하지 않음.
-> 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.1.7.RELEASE를 값으로 받음
2. 앞서 선언한 플러그인의 의존성을 적용할 것인지 결정
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
- io.spring.dependency-management 플러그인 : 스프링 부트 의존성 관리해주는 플러그인 => 꼭 추가!
- 네개의 플러그인 모두 자바와 스프링부트 사용 위한 필수 플러그인들. 항상추가
3. repositories와 dependencies
repositories{
mavenCentral()
jcenter()
}
dependencies{
//compile('org.springframework.boot:spring-boot-starter-web')
//testCompile('org.springframework.boot:spring-boot-starter-test')
//gradle 7버전에서는 compile, testComplie 대신 implementataion, testImplementation을 사용
implementation('org.springframework.boot:spring-boot-starter-web')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
책에는 compile()과 testCompile()함수를 사용했지만 에러가 나서 검색해보니 gradle 7에선 두개의 함수 대신 implementation과 testImplementation을 사용한다고 했다.
respositories
: 의존성(library)들을 어떤 원격 저장소에서 받을지 정함
기본적으로 mavenCentral 자주 사용 -> 최근엔 jcenter로 이동
1) mavenCentral
- 이전부터 많이 사용하던 저장소
- 라이브러리 업로드 위해 많은 과정과 설정 필요
- 직접 만든 라이브러리 업로드 힘들어 공유가 안됨
2) jcenter
- 라이브러리 업로드를 간단하게 함
- jcenter 라이브러리 업로드 하면 mavenCentral에서도 업로드 될 수 있게 자동화
- 개발자들이 점점 jcenter로 이동함
dependencies
프로젝트 개발에 필요한 의존성들 선언
- org.springframework.boot:spring-boot-starter-web
- org.springframework.boot:spring-boot-starter-test 받도록 선언
- 라이브러리 이름의 앞부부만 추가한 후 자동완성
- 버전을 명시하면 안됨 : 맨위의 springBootVersion의 버전 따라갈 수 있게 선언하지 말것.
- 라이브러리들 버전 관리 한 곳에서만 집중, 버전 충돌시 해결되어 편하게 개발 가능
4. build.gradle 전체코드
3. 인텔리제이에서 깃과 깃허브 사용하기
[깃 연결 후 commit]
- ctrl+shift+a : action 검색창 열기
- share project on github 검색 -> 깃허브 저장소 생성 후 share
- commit 시 .idea 디렉토리는 커밋하지 않음 -> 인텔리제이에서 프로젝트 실행시 자동으로 생성되는 파일들임
.idea 폴더를 앞으로 모든 커밋 대상에서 제외하기
1. .gitignore
- 깃에서 특정 파일, 디렉토리를 관리 대상에서 제외할 때 사용
- 기입된 내용은 모두 깃에서 관리 하지 않음
플러그인에서 .ignore 다운받기
ctrl+shit+a : .ignore 검색& 다운
2. .ignore
- 파일 위치 자동완성
- 이그노어 처링 여부 확인
- 다양한 ignore 파일 지원 (.gitignore, .npmignore, .dockerignore등등)
3. .gitignore 파일 사용하기
1) .ignore 플러그인 다운 후 intellij 재시작
2) 좌측 상단 프로젝트 명 우클릭 -> new -> .gitignore file 선택
3) Generator 화면 : 미리 만들어 놓은 이그노어 템플릿 선택
but 우리는 없으니 그냥 generate 하기
4) 좌측 .gitignore 파일에 다음 코드 작성
.gradle
.idea
4. 깃허브 반영
ctrl+k : 깃 커밋
ctrl+shift+k : 깃 푸시
그동안 유료, 무료 스프링 강의를 들었었는데 사실 강의를 들을 땐 제대로 이해하지 못했었다.
그래도 그동안 귀와 눈에 익은 단어들이 보여서 반갑다. 이 책에서는 자세하게 설명해줘서 만족스럽다. 비록 이제 1강을 본거지만 build.gradle의 내용을 이렇게 설명해주는 책은 처음본다. 이동욱님께 정말 감사하다.
'서적 공부 > 스프링부트와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
Annotation 정리 (0) | 2022.04.04 |
---|---|
2장 스프링부트에서 테스트 코드를 작성하자 (0) | 2022.04.01 |