Coding Note

SpringBoot Chapter1. 인테리제이 프로젝트 생성 본문

SpringBoot

SpringBoot Chapter1. 인테리제이 프로젝트 생성

jinnkim 2022. 2. 25. 23:40

 

 

 

출처 - yes24

 

이 책을 기반으로 스프링 부트 스터디를 시작하게 되었다.

쉬운 게 없어요.... 그래도 파이팅!

 


 

 

1. 인테리제이 프로젝트 생성하기

 

New project 버튼 클릭 후  Gradle을 선택해 프로젝트를 생성한다.

 

 

 

다음으로 GroupId와 ArifactId를 등록한다.

 

 

ArifactId는 프로젝트 이름이 되기 때문에 원하는 이름으로 작성하면 된다.

finish 버튼을 누르면 gradle가 생성되는 걸 확인할 수 있다.

 

 

 

2. gralde 프로젝트를 스프링 부트 프로젝트로 변경하기

 

build.gradle 초기 화면은 이와 같다.

 

위 코드 기반으로 하나씩 코드를 추가할 예정이다.

(이후 코드 사진 프로젝트 명은 'first.SpringBoot-study'입니다. )

이에 앞서 gradle 버전을 먼저 확인해보자.

 

 

2-1. gradle 버전 확인 및 수정하기

 

책 속 gradle 버전과 달라 코드 작성에 애를 먹었다ㅠㅠ

먼저 gradle버전을 확인해보자

 

(gradle 폴더 - wrapper - gradle-wrapper.properties)

확인해보니  7.1 버전이였다.

책과 동일하게 4.10.2 버전으로 수정하였다!

 

 

alt+f12를 눌러 터미널을 열어 아래와 동일하게 입력하면 된다!

 

 

수정 결과 >

 

 

이와 같이 버전을 수정했으면 이어서 코드를 작성해볼게요!

 

 

 

 

추가한 코드 >

buildscript {
    ext{
        springBootVersion = '2.1.9.RELEASE'
        /*
        * 2.1.9.RELEASE의 값을 가진 springBootVersion 전역 변수 생성
        * 즉, 스프링 부트 그레이들 플러인의 2.1.9.RELEAS를 의존성으로 받는다.
        */
        
    }
    repositories {
        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.bs.book'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
  /* Q. compile과 implementation 차이점 비교
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    */
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

 

 

코드 간단히 정리하기 >

 

1. ext

- build.gradle에서 사용하는 전역 변수를 설정하는 키워드

 

 

2. repositories

- 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지를 정한다.

 

Q1. mavenCentral과 jcenter 차이점

mavenCentral jcenter 
- 이전부터 많이 사용한 저장소임
- 많은 과정과 설정이 요구됨
- mavenCentral 문제점을 개선하여 라이브러리 업로드를 간단하게 함.
- jcenter에 라이브러리를 업로드하면 mavenCentral에도 자동으로 업로드 가능함
- 요즘 자주 사용하는 추세

- 결론적으로 라이브러리 업로드 난이도 때문에 jcenter를 많이 사용하는 추세!!

 

 

 

3. 'io.spring.dependency-management'

- 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭! 필수로! 추가해야 한다.

- 코드 'apply plugin' 부분은 자바와 스프링 부트를 사용하기 위해 항상 추가해야 된다.

 

 

4. dependencies

- 프로젝트 개발에 필요한 의존성을 선언하는 코드 부분

 

위 코드를 작업하면서 문득 궁금한 게 생겨 메모해두었다 구글링을 해보았다.

 

 

Q2. compile과 implementation 차이점

compile implementation 
- 모든 프로젝트에 연결된 API가 노출됨
- 보안의 위험 있음
- 빌드 속도가 늦음
- 모든 프로젝트에 연결된 API가 노출되지 않음
- 보안성 좋음
- 빌드 속도가 빠름

 

더 궁금하면 링크 참고하기

https://docs.gradle.org/current/userguide/dependency_management_for_java_projects.html#sec:configurations_java_tutorial

 

 

 

 

3. 빌드 성공!

 

 

 

완료!

 

 

'SpringBoot' 카테고리의 다른 글

SpringBoot Chapter1. 인테리제이 깃 연동하기  (0) 2022.02.27
Comments