Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

채채

01.인텔리제이로 스프링부트 시작하기 본문

spring boot

01.인텔리제이로 스프링부트 시작하기

HChaeEun 2022. 11. 7. 13:09
  1. 인텔리제이 소개
  2. 인텔리제이 커뮤니티에서 프로젝트 생성
  3. 그레이들 프로젝트를 스프링 부트 프로젝트로 변경
  4. 인텔리제이에서 깃과 깃허브 사용

 

  1. 인텔리제이 소개

자바 웹 개발을 할 때에 이클립스를 주로 사용하는데, 인텔리제이 개발 도구를 사용하는 이유는 다음과 같은 장점이 있기 때문이다.

  • 강력한 추천 기능
  • 훨씬 더 다양한 리팩토링*과 디버깅 기능
  • 이클립스의 깃에 비해 훨씬 높은 자유도
  • 프로젝트를 시작할 때 인덱싱을 하여 파일을 비롯한 자원들에 대한 빠른 검색 속도
  • HTML, CSS, JS, XML에 대한 강력한 기능 지원
  • 자바, 스프링 부트 버전업에 맞춘 빠른 업데이트

*리팩토링: 결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다.

2. 인텔리제이 커뮤니티에서 프로젝트 생성

인텔리제이는 이클립스의 워크스페이스와 같은 개념이 없고, 프로젝트와 모듈의 개념만 있다.

따라서 인텔리제이를 실행할 때 모든 프로젝트를 한 번에 불러올 수 없고, 한 화면에서 하나의 프로젝트만 열린다.

[File] - [New] - [Project]를 통해 새로운 파일을 생성할 수 있다.

프로젝트 생성

Gradle에 Java를 선택하고 Next를 눌러 Name: 에 프로젝트 명을 설정하고 Location:에 프로젝트가 저장될 위치를 설정하여 새파일을 생성한다.

 

3. 그레이들 프로젝트를 스프링 부트 프로젝트로 변경

인텔리제이에서 build.gradle 파일을 열어보면 자바 개발에 가장 기본적인 설정만 되어있음을 볼 수 있다. 여기에 스프링 부트에 필요한 설정 코드들을 하나씩 추가해 보도록 할 것이다.

우선 build.gradle파일은 무엇을 하는 공간인지 알아보도록 하자.

간단하게 build.gradle 파일빌드 정보를 정의하여 프로젝트에서 사용하는 환경 설정, 빌드 방법, 라이브러리 정보 등을 기술함으로서 빌드 및 프로젝트의 관리 환경을 구성한다.

첫 번째론 맨 위에 위치할 코드이다.

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' 값을 넣었다. 이 값은 아래의 dependencies에서 spring-boot-gradle-plugin이라는 스프링 부트 그레이들 플러그인의 '2.1.7.RELEASE'를 의존성으로 받도록 한다.

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

apply plugin: 이라는 것은 Gradle 플러그인을 사용하기 위함이다. apply plugin: 'java'라는 것은 Java 프로그램을 위한 기능을 제공하는 플러그인이며, 나머지도 각각의 기능을 제공하기 위한 플러그를 적용하는 것이다.

// 저장소
repositories {
    mavenCentral()
    jcenter()
}

// 의존 라이브러리
dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

Gradle에는 프로그램으로 필요한 라이브러리를 자동으로 다운로드하고 통합하는 기능이 있다. 따라서 '저장소'라는 개념이 중요해지는데, 저장소는 각종 프로그램들이 저장되는 위치이다. repositories에서 저장소를 설정하는 문장을 작성할 수 있으며 대체로 Gradle은 다음 두 개의 저장소 서비스를 이용한다.

1. maven 중앙 저장소

mavenCentral()

Apache Maven 중앙 저장소를 이용하기 위한 것으로. Gradle은 중앙 저장소를 그대로 사용할 수 있다.

2. jcenter 저장소

jcenter()

Maven과 Gradle 등 각종 빌드 도구에서 사용할 수 있는 공개 저장소이다.

의존 라이브러리란 저장소에서 필요한 라이브러리를 지정하는 것이다. 즉 프로젝트를 구성하기 위해 받아와야 할 라이브러리를 정의해놓는 공간이다.

공부를 진행하는 교재에서는 compile함수를 사용하였는데, 오류가 발생하여 찾아보았더니 다음과 같은 업데이트문을 확인할 수 있었다.

compile, runtime, testCompile, testRuntime 은 Gradle 4.10 (2018.8.27) 이래로 deprecate 되었다.

그리고 Gradle 7.0 (2021.4.9) 부터 삭제되었고,

삭제된 네 명령은 각각 implementation, runtimeOnly, testImplementation, testRuntimeOnly 으로 대체되었다.

https://stackoverflow.com/questions/23796404/could-not-find-method-compile-for-arguments-gradle

https://kotlinworld.com/316

라이브러리 앞에 붙은 implementation, testImplementation은 각 라이브러리들이 적용될 범위(scope)를 뜻한다. implementation은 전 범위에 걸쳐서 적용되며, testImplementation은 테스트 시에만 적용된다.

만약 라이브러리가 적용될 범위를 정하지 못한다면, 릴리즈를 위한 앱 번들에 테스트용 라이브러리, 디버그용 라이브러리들이 들어가 앱 번들의 크기가 매우 커진다. 이를 방지하기위해 범위별로 라이브러리를 넣는 것을 Gradle에서 미리 정해놓은 것이다.

그레이들의 설정이 변경되고 나서 윈도우 기준 [ctrl + shift + o] 단축키를 이용해 이를 반영할 수 있다.

spring-boot-starter-web:2.1.7.RELEASE가 잘 적용 됨을 볼 수 있다.

 

4. 인텔리제이에서 깃과 깃허브 사용

원격 저장소 역할을 하는 깃허브를 프로젝트와 연동하는 법을 알아보자.

인텔리제이에서 단축키 [ctrl + shift + a]를 통해 action 검색창을 열어 share project on github를 검색한다.

해당 action을 선택한 후 깃허브 계정으로 로그인을 하고, [Repository name]필드에 깃허브에 저장될 파일명을 작성한다. 대부분은 프로젝트 이름을 깃허브 저장소와 같은 이름을 사용하니, 같은 이름을 등록했다.

프로젝트에 첫 커밋창이 나오고, 첫 커밋을 등록할 때에는 .idea 디렉토리는 커밋하지 않는다. 이는 인텔리제이에서 프로젝트 실행시 자동으로 생성되는 파일들이기 때문에 깃허브에 올리는 것이 불필요하기 때문이다.

이러한 불필요한 파일들을 앞으로의 모든 커밋 대상에서 제외되도록 처리하는 방법을 알아보자.

깃에서 특정 파일 혹은 디렉토리를 관리 대상에서 제외할 때는 .gitignore파일을 사용한다. 이 파일에 기입된 내용들은 모두 깃에서 관리하지 않겠다는 것을 의미하는데, 인텔리제이에서는 .gitignore 파일에 대한 기본적인 지원이 없으므로 플러그인에서 .ignore을 설치해야한다.

이전처럼 action검색창에서 plugins를 검색하고, plugins를 action창에서 선택한다.

.ignore을 검색하거나 목록에서 찾아 다음과 같이 [.ignore] - [install]버튼을 차례로 클릭해 설치한다. 이때 반드시 인텔리제이를 다시 시작해야만 설치한 플러그인이 적용된다.

이그노어 파일을 생성해보도록하자.

단축키 alt + insert를 통해 생성 목록을 열어 .gitignore파일을 생성한다.

인텔리제이에서 자동으로 생성되는 파일들을 모두 이그노어 처리하려면 다음과 같이 제외하고 싶은 파일명을 작성하면 된다.

.gradle
.idea

이그노어 처리된 것을 깃허브에도 반영해보도록 하자.

윈도우에서 단축키 [ctrl + k]를 통해 커밋할 파일(.gitignore)을 선택하고, 메시지를 작성하여 commit버튼을 클릭한다.

commit후 푸시를 하기 위해 [Ctrl + shift + k]를 통해 [push]버튼을 눌러 깃에 푸시를 진행한다.

깃허브의 프로젝트로 이동하면 다음과 같이 커밋과 푸시가 성공적으로 반영된 것을 확인할 수 있다.