서적 공부/스프링부트와 AWS로 혼자 구현하는 웹 서비스

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

요는 2022. 3. 30. 14:28

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의 내용을 이렇게 설명해주는 책은 처음본다. 이동욱님께 정말 감사하다.