관리 메뉴

Rootable의 개발일기

Chapter 1. 스프링 부트 기본 셋팅 및 설정 본문

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

Chapter 1. 스프링 부트 기본 셋팅 및 설정

dev-rootable 2023. 5. 31. 10:55

[본 글은 프로젝트 과정을 기록할 목적으로 작성되었으며 아래 교재에 기반하여 작성됨]

 

스프링 부트와 AWS로 혼자 개발하는 웹 서비스 by 이동욱

 

📌 젯브레인 툴박스 설치

 

JetBrain Toolbox 설치 화면

 

젯브레인의 제품 전체를 관리해 주는 데스크톱 앱이다. 원래 IntelliJ를 쓰고 있어 설치를 해야 되나 고민했지만, 모든 제품군의 버전 관리와 JVM 옵션 등을 조정할 수 있다고 하여 설치 해놓기로 했다.

 

https://www.jetbrains.com/toolbox-app/

 

JetBrains Toolbox App: Manage Your Tools with Ease

Open any of your projects in any of the IDEs with one click.

www.jetbrains.com

 

설치 진행 화면

 

간단히 설치 버튼을 누르면 설치가 완료된다.

 

설치 완료

 

나의 경우 IntelliJ와 PyCharm을 쓰고 있어 해당 제품이 위에 표시된다.
이 tool을 보면서 느낀 장점은 3가지 정도인 것 같다.

 

  1. 업데이트 관리가 수월하다.
  2. 프로젝트 버튼을 누르면 최근에 사용한 모든 Jetbrains 프로젝트를 한 눈에 볼 수 있다.
  3. IntelliJ의 JVM 옵션 설정이 가능하다.

 

📌 IntelliJ JVM 옵션 설정

 

인텔리제이를 실행하는데, 할당할 메모리를 결정할 수 있다.

 

메모리 4G 이하 ➡ 750MB
메모리 8G ➡ 1024 ~ 2048
메모리 16G ➡ 2048 ~ 4096

 

JVM 메모리 할당

 

나의 PC는 8G이므로, 1024 정도로 하겠다.

 

📌 Spring 프로젝트 생성

 

Spring Initializr (자동) 대신 수동으로 프로젝트를 생성하는 과정이다.

 

프로젝트 생성 SDK, Gradle 선택

 

IntelliJ를 실행한 후, Java 버전과 Gradle을 선택했다.

 

프로젝트명 및 그룹 지정

 

다음으로 프로젝트명과 GroupId 등을 정하는데, Name과 ArtifactId는 함께 수정되는 것을 보아 동일하게 정해지는 것 같다. GroupId는 자신의 웹 URL의 역순으로 작성하는 것이 관례인 것 같다.

 

참고로 bbs는 Bulletin Board Service로 사전에 나오는 줄임말 이었고 단순한 것이 좋아서 이것으로 했다.

 

🔎 프로젝트 Gradle 버전 점검

 

프로젝트 환경 점검으로 gradle 버전을 확인해야 한다. 확인해보니 7.x 대 버전으로 해당 프로젝트에서 요구하는 4.x 버전과 맞지 않아 버전 변경이 필요하다.

 

gradle/wrapper/gradle-wrapper.properties 에서 확인 후 변경

 

./gradlew wrapper --gradle-version 4.10.2

 

🔎 build.gradle

 

buildscript {
    ext{
        springBootVersion = '2.1.9.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.bbs.projects'
version '1.0-SNAPSHOT'+new Date().format("yyyyMMddHHmmss")

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

 

✔ buildscript

 

buildscript 블럭을 기준으로 repositories와 dependencies가 각각 존재하는 것을 볼 수 있다. buildscript는 gradle의 스크립트에서 바로 외부 라이브러리를 참조해야 할 경우 사용한다. 반면, buildscript 블럭 밖은 프로젝트가 컴파일하는데 필요한 라이브러리를 참조할 때 사용한다. 해당 소스에서 ext(전역 변수)에 springBootVersion에 선언한 버전으로 따라가도록 했다.

 

✔ dependencies

 

기본적으로 필요한 의존성으로 웹 개발을 위한 'spring-boot-starter-web'과 test를 위한 'spring-boot-starter-test'를 넣었다.

 

✔ plugins

 

여기서 'io.spring.dependency-management' 플러그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해야 한다.

 

✔ repositories

 

각종 의존성 (라이브러리)들을 어떤 원격 저장소에서 받을 지를 정한다. 기본적으로 mavenCentral을 많이 사용하지만, 라이브러리 업로드 과정 및 설정이 힘들어 jcenter도 많이 사용한다.

 

jcenter는 라이브러리 업로드가 간단하고, mavenCentral에도 업로드될 수 있도록 자동화를 할 수 있다. 현재 버전은 구글링 내용처럼 jcenter가 지원 중단되었지만 해당 버전에서는 사용이 되는 것 같다.

 

You will still be able to use JCenter as a repository, but Gradle will emit a deprecation warning. 
The jcenter() method will be removed in the next major release.
 Packages that are hosted on JCenter will need to find an alternative repository to provide updates after March 31 202

 

https://blog.gradle.org/jcenter-shutdown

 

JCenter Shutdown Impact on Gradle Builds

JCenter Shutdown Impact on Gradle Builds On February 3 2021, JFrog announced that they will be shutting down Bintray and JCenter. This post tells you what you need to know and do to avoid disruptions to your build pipelines. Your build may be affected by t

blog.gradle.org

 

📌 IntelliJ & Github

 

  • Action 검색창에서 share project on github 검색
  • github 로그인
  • share와 commit하면 끝

 

깃허브와 연동된 모습

 

이렇게 하면 깃허브에 리포지토리가 생기고 현재 작성한 코드가 업로드 된다! 정말 간단해서 다시 한번 인텔리제이의 기능에 감탄했다.

 

🔎 .gitignore

 

깃에서 특정 파일 혹은 디렉토리를 관리 대상에서 제외하기 위해 사용하는 파일

 

예를 들어, .idea 디렉토리는 IntelliJ에서 프로젝트 실행시 자동으로 생성되는 파일로 깃허브에 올릴 필요가 없다. 이러한 디렉토리 및 파일을 제외할 때 사용한다.

 

.gitignore

 

프로젝트에서 New를 선택하면 .gitignore 파일이 나온다. 이것을 선택하고 괄호 안에 Git이라고 적힌 것을 선택하면 .gitignore 파일이 생성된다. 여기에 해당 이미지처럼 제외할 디렉토리를 작성하고 커밋하도록 하겠다.

 

이렇게 기본적인 프로젝트 셋팅과 git 연동을 마쳤다. 다음 챕터에서 본격적으로 코드를 작성하고 테스트 해보도록 하겠다.

 

Reference:

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 by 이동욱

 

https://dev-rootable.tistory.com/48

 

1. Reference & Introduction

📌 Spring Boot를 이용한 웹 게시판 개발 Create Your Post Read Posts Update Your Post Delete Your Post 📌 Social Login Service Google Naver 📌 AWS를 통해 서비스 자동 빌드 및 테스트 CI/CD Git 주소: https://github.com/wndudrla10

dev-rootable.tistory.com