🌱JAVA/Spring

[Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 01

뉴발자 2022. 10. 23.
728x90

 

 

 

 

 

 

 

 

 

 

 

교재

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 / 사진 출처 : 알라딘, 저자 : 이동욱

 

 

 

 

인텔리제이 프로젝트 생성

인텔리제이 새 프로젝트 생성 클릭시 나오는 화면

 

*젯브레인 툴박스 및 인텔리제이 설치 후에 인텔리제이 실행시 새 프로젝트 생성 버튼을 클릭시 나오는 화면이다.

 

우선 이름란에 프로젝트명을 입력하고 자신이 원하는 경로로 프로젝트 파일의 위치 설정이 가능하다.

 

Spring Boot 교재를 따라 언어는 Java시스템 빌드는 Gradle로 선택하여 생성했다.

 

*JDK는 교재를 따라 1.8버전으로 설치했고 다운받은 버전을 선택하면 JDK 파일이 목록에 알아서 생성된다.

 

Gradle DSLGroovy를 사용하여 실습을 진행했다.

 

그리고 마지막으로 생성버튼을 누르면 프로젝트 생성이 완료된다.

 

 

 

 

그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기

새 프로젝트 생성후 나오는 build.gradle 화면

 

프로젝트 생성을 완료하면 위와 같은 화면이 나온다.

 

화면이 안나온다면 왼쪽 메뉴에 있는 build.gradle 파일을 더블클릭하면 해당 화면이 표출된다.

 

그레이들로 생성된 프로젝트이기 때문에스프링 부트에 필요한 설정들을 직접 작성하여 추가해야된다.

 

* 스프링 이니셜라이저를 사용하게 되면빠르게 코드작성은 가능하지만

 

스프링 부트를 처음 사용하는 개발자는 각 코드가 어떤 역할을 하는지 이해할 수 없게 된다.

 

 

* 스프링 이니셜라이저 사이트

https://start.spring.io/ 

728x90

 

 

 

build.gradle 코드 작성 순서

1) 그래들 버전 다운 그레이드

우선 교재의 메소드들을 온전하게 사용하기 위해서 Gradle 버전을 다운 그레이드해주고 시작하겠다.

 

로컬창을 연 후 [단축키:ALT + F12] 아래의 명령어를 입력하면 Gradle 버전이 다운 그레이드 된다.

 


Gradle 버전 다운 그레이드 명령어

 

./gradlew wrapper --gradle-version 4.10.2

 


 

Gradle 다운그레이드 명령어 실행

 

 

2) 프로젝트의 플러그인 의존성 관리를 위한 설정 코드

프로젝트의 플러그인 의존성 관리를 위한 설정 코드

 

위 코드는 build.gradle의 맨 위에 위치하는 코드이다. 

 


ext

  • build.gradle에서 사용하는 전역 변수를 설정하는 코드
  • 위 코드에서는 springBootVersion 전역변수를 생성하고 그 value를 2.1.7.RELEASE로 하겠다는 의미이다.

 

* 즉, spring-boot-gradle-plugin이라는 플러그인의 2.1.7.RELEASE를 의존성으로 받겠다는 의미이다.


 

 

3) 앞서 선언한 플러그인 의존성들을 적용할 것인지 결정하는 코드

선언한 플러그인 의존성 적용 결정 코드

 

위 코드는 이전에 작성한 플로그인의 의존성들을 적용시키기 위해 작성하는 코드이다.

 


io.spring.dependency-management

  • 스프링 부트의 의존성을 관리해주는 플러그인이다.
  • 해당 플러그인은 반드시! 추가해야 한다.

 

* 위 4개의 플러그인은 자바와 스프링 부트를 사용하기 위해서는 필수 플러그인이고 항상 추가해주면 된다.


 

 

4) 나머지 의존성 코드 작성

원격 저장소 위치 설정(repositories) 및 개발에 필요한 의존성 선언(dependencies) 코드

 

의존성(라이브러리)의 원격 저장소 위치를 설정(repositories)하고

 

개발에 필요한 의존성을 선언(dependencies)하는 코드이다.

 


repositories

  • 각종 의존성(라이브러리)들을 어떤 원격 저장소에 받을지 설정하는 코드
  • jcentermavenCentral의 문제점을 개선하여 라이브러리 업로드를 간단하게 하고 더 나아가 jcenter에 업로드하면 mavenCentral에도 업로드될 수 있도록 자동화를 할 수 있다.

 

* 교재에는 jcenter를 많이 사용하는 추세라고 적혀있지만, 이미 jFrog에서 jcenter는 서비스가 종료됐고 read-only 상태로 유지되고 있다. 따라서, mavenCentral을 사용하여야 한다.

 

 

dependencies

  • 프로젝트 개발에 필요한 의존성을 선언하는 코드
  • IntelliJ는 메이븐 저장소의 데이터를 인덱싱해서 관리하기 떄문에 커뮤니티 버전을 사용해도 의존성 자동완성이 가능하다.

 

* 의존성 코드에 특정 버전을 명시하게 되면 맨 위에 작성한 buildscript의 dependencies과 버전 충돌이 날 수 있으며 각 라이브러리들의 버전 관리가 용이하지 못하다.


 

 

4) 코드 반영하기

위에 나열한 모든 코드를 작성하게 되면 아래와 같은 코드가 작성되었을 것이다.

buildscript {
    ext {
        springBootVersion = '2.1.7.RELEASE'
    }
    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.jojoIdu.book'
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')
}

 

이제 작성한 코드를 프로젝트에 반영하면 스프링 부트에 필요한 기본적인 세팅은 끝나게 된다.

 

변경된 코드를 반영해주는 버튼

 

빨간 네모 박스안의 코끼리 모양을 클릭하면 변경된 코드를 반영해준다.

 

단축키는 'Ctrl + Shift + O'이다.

 

 

함수를 변경한 후 코드를 반영하면 BUILD SUCCESSFUL in (seconds) 라는 문구가 코드 아래쪽에 뜨고

 

빨간 네모 박스 표시된 우측 사이드바에 Gradle을 클릭하면 의존성이 잘 받아진 것을 확인할 수 있다.

 

Gradle 의존성 설치 완료 후 반영된 의존성 확인

 

 

 

개발에서 가장 중요한 그레이들 프로젝트에서 스프링 부트 동작에 필요한 설정들을 작성해봤다.

 

게시글을 작성하면서 한 번 더 복습하고 각 기능들의 역할에 대해 이해하는데 큰 도움이 된 것같다.

 

필자같이 처음 Spring Boot를 접하는 모든 독자들에게 도움이 되었으면 좋겠다.

 

 

 

다음번에는 인텔리제이 내에서 Git과 연동하는 방법에 대해서 포스팅하겠다.

 

 

 

 

 

 

728x90

댓글