스프링 부트 기본 셋팅 및 설정 - 루타블의 개발일기

김주영·2022년 7월 4일
0
post-thumbnail

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

🌱 젯브레인 툴박스 설치


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

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

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

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

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

🌱 IntelliJ JVM 옵션 설정


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

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

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

🌱 Spring 프로젝트 생성


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

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

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

🌿 프로젝트 Gradle 버전 점검

🔧 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 2021
ref : https://blog.gradle.org/jcenter-shutdown

🌱 IntelliJ & Github


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

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

🌿 .gitignore

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

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

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

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

0개의 댓글