반응형

인텔리제이에 강점

 - 강력한 추천 기능

 - 훨씬 더 다양한 리팩토링과 디버깅 기능

 - 이클립스의 깃(Git)에 비해 훨씬 높은 자유도

 - 프로젝트 시작할 때 인덱싱을 하여 파일을 비롯한 자원들에 대한 빠른 검색 속도

 - HTML과 CSS, JS, XML에 대한 강력한 기능 지원

 - 자바, 스프링 부트 버전업에 맞춘 빠른 업데이트

 

인텔리제이에 버전

 - 얼티메이트 (유료버전) - 개인은 1년에 149달러(약 15만 원) , 회사는 1년에 499달러 (50만 원)

 - 커뮤니티 (무료 버전)

 

커뮤니티 버전의 기능

 - 자바 개발에 대한 모든 기능 지원

 - Maven, Gradle과 같은 빌드 도구 기능 지원

 - 깃&깃허브와 같은 VCS(버전 관리 시스템) 기능 지원

- 스프링 부트의 경우 톰캣과 같은 별도의 외장 서버 없이 실행 가능

 

커뮤니티 버전의 단점

 - HTML과 CSS, 자바스크립트에 대한 지원이 없음

 - 이들에 대한 개발은 VS code를 비롯한 다른 무료 개발 도구를 사용할 것을 추천

 

인텔리제이 설치하기

http://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

 - Download를 눌러서 설치 진행.

 - 설치되었다면 Mac에서는 화면 상단, windows에서는 화면 아래쪽에 아이콘이 생긴다.

ToolBox
ToolBox 실행

 - 도구에서 IntelliJ IDEA Community Edition 설치. (이미 설치되어 있어서 업데이트가 뜸)

 - 툴박스를 통해서 설치하게 되면 도구의 버전 관리가 쉬워진다.

 

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

 - 인텔리제이에는 이클립스의 workspace와 같은 개념이 없음.

 - Project와 Module의 개념만 있다. -> 그래서 인텔리제이는 모든 프로젝트를 한 번에 불러올 수 없다.

    한 화면에는 하나의 프로젝트만 열린다.

 - 기본적인 설정을 마치면 프로젝트 생성 화면이 나옴.

 - 새로운 프로젝트를 생성할 것이기 때문에 Create New Project 클릭

 - 프로젝트 유형에서 Gradle - Java를선택해 프로젝트 생성.

 - 다음은 GroupId와 ArtifactId를 등록. 특히 ArtifactId는 프로젝트의 이름이 되기 때문에 원하는 이름으로 작성.

 

Gradle Project를 SpringBoot Project로 변경하기

 - build.gradle 파일을 연다.

Plugins {
	id 'Java'
}

group 'com.jojoldu.book'
version '1.0-SNAPSHOP'

sourceCompatibility = 1.8

repositories {
	mavenCentral()
}

dependencies {
	testCompile group: 'junit', name: 'junit', version: '4.12'
}

 - 앞의 코드들은 가장 기초적인 설정만 되어있는 상태. 여기서 SpringBoot에 필요한 설정들을 하나씩 추가.

 - 스프링 이니셜 라이저를 이니셜 라이저를 통해서 진행이 가능하나 스프링 이니셜 라이저를 사용하게 되면 build.gradle의 코드가 무슨 역할을 하는지,

   이니셜 라이저 외에 추가로 의존성 추가가 필요하면 어떻게 해야 하는지 등을 모르는 상태로 개발을 하는 경우가 있음.

 - 스프링 부트와 그레이들을 충분히 이해하고 있으면 스프링 이니셜 라이저를 사용하고, 완전히 처음이면 하나씩 코드를 작성하면서

    어떤 역할을 하는지 이해하는 것을 추천.

https://start.spring.io/ <- 스프링 이니셜 라이저 사이트

 - bulid.gradle 맨 위에 위치할 코드

buildscript {
	ext {
    	springBootVersion = '2.1.7.RELEASE'
    }
    repositories {
    	mavenCentral()
        jcenter()
   	}
    dependencies {
    	classpath("org.springframework.boot:spring-boot-gradel-plugin:$
        {springBootVersion}")
        }
   }
   
   // ext 라는 키워드는 build.gradl에서 사용하는 전역변수를 설정하겠다는 의미.
   // 여기서는 springBootVersion 전역변수를 선언하고 그 값을
   // 2.1.7.RELEASE로 하겠다는 의미이다.
   // 즉 spring-boot-gradle-plugin라는 스프링부트 그레이들 플러그인의 
   // 2.1.7.RELEASE를 의존성으로 받겠다는 의미이다.

 - 다음은 앞서 선언한 플러그인 의존성들을 적용할 것인지를 결정하는 코드

apply plugin: 'Java'
apply plugin: 'eclipes'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

// io.spring.dependency-management 플러그인은 스프링부트의 의존성들을
// 관리해 주는 플러그인이라 꼭 추가해야 한다.
// 앞의 4개의 플러그인은 자바와 스프링 부트를 사용하기 위해서는 필수 플러그인들이니
// 항상 추가하면 된다.

 - 나머지 코드는 다음과 같다.

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

// repositories는 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지를 정한다.
// 기본적으로 mavenCentral을 많이 사용하지만, 최근에는 라이브러리 업로드 난이도 때문에
// jcenter도 많이 사용한다.
// mavenCentral은 이전부터 많이 사용하는 저장소이지만, 본인이 만든 라이브러리를 업로드
// 하는 것이 힘들어 점점 공유가 안 되는 상황이 발생했다.
// 최근에 나온 jcenter는 이런 문제점을 개선하여 라이브러리 업로드를 간단하게 하였다.
// 또한 jcenter에 라이브러리를 업로드 하면 mavenCentral에도 자동으로 업로드될 수 있도록
// 자동화를 할 수 있다. 그러다보니 점점 jcenter로 이동하고 있다.

// dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳.
// 여기서는 
// org.springframewokr.boot:spring-boot-starter-web 와
// org.springframework.boot:spring-boot-starter-test를 받도록 선언되어 있다.
// 인텔리제이는 메이븐 저장소의 데이터를 인덴싱해서 관리하기 때문에 커뮤니티 버전을 사용해도 의존성
// 자동완성이 가능하다.
// compile 메소드 안에 라이브러리의 이름의 앞부분만 추가한 뒤 
// 자동완성(windows&mac : ctrl+space)을 사용하면 라이브러리 목록을 볼 수 있다.

여기서 jcenter()라고 표시가 되어서 찾아보았더니

금년 2021년 5월 1일에 Bintray (JCenter 포함), GoCenter 및 ChartCenter 서비스를 중단할 예정이었으나 JCenter 저장소에서 패키지를 1년 연장된 2022년 2월 11일까지 제공하게 되었습니다.

장점이 많은 거 같은데 사용해보지도 못하고 넘어가게 되었다.

 

// 모두 작성한 코드

buildscript {
	ext {
		springBootVersion = '2.1.7.RELEASE'
	}
	repositories {
		mavenCentral()
	}
	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 = 'gi828282'
version = '1.0-SNAPSHOT'
sourceCompatibility = '11'

repositories {
	mavenCentral()
}

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

다 작성하고 보니 

compile과 testCompile이 회색으로 표현된다

그리고 오류도 같이 떴다.

생초보 입장에서 이런 문구는 무슨 말인지 모르니 구글링을 찾아보았다.

오류!!ㅠ
구글링은 언제나 옳다.

compile과 testCompile을 implementation과 testImplementation으로 변경!

 

최종 코드는 

buildscript {
	ext {
		springBootVersion = '2.1.7.RELEASE'
	}
	repositories {
		mavenCentral()
	}
	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 = 'gi828282'
version = '1.0-SNAPSHOT'
sourceCompatibility = '11'

repositories {
	mavenCentral()
}

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

코드 작성이 다 되었다면 'build.gradle에 변경이 있으니 반영하라'는 알람이 뜬다. 

변경이 있을 때마다 자동으로 변경되게 [Enable Auto-import] 버튼 클릭!

Buile successful

빌드가 잘 됐다는 문구가 뜨고 

의존성이 잘 받아졌는지 확인을 한다.

의존성이 잘 받아있나 확인!

 

반응형
복사했습니다!