1. Intellij Springboot start

allsser·2021년 3월 4일
1

이동욱 님의 스프링 부트와 "AWS로 혼자 구현하는 웹 서비스" 를 보면서 공부하였습니다.
Version

  • Spring Boot 2.4.1
  • java 8
  • Gradle 6.7.1
  • IntelliJ IDEA 2020.3
  • JUnit 5
  • MariaDB 10.4.8

1. Intellij Springboot start

1.1 Gradle 프로젝트를 Spring Boot 프로젝트로 변경하기

  • 스프링 이니셜라이저 를 통해서 진행하면 편하지만, build.gradle를 사용하는 이유는 코드의 역할과 이니셜라이저 외에 추가로 의존성을 추가하는 방법을 배우기 위해서이다.

  • Gradle5 -> Gradle6 로 바뀌면서 교재와는 달라진 부분이 있다. 참고 블로그

  • 버전 업데이트를 하기 위해서 CMD에서 기존 프로젝트가 있는 디렉토리로 이동한 후에 아래 명령어 입력

    • gradlew wrapper --gradle-version 6.7.1
    • 만약 'gradlew' 설치가 안되있다면 cmd에 들어가 프로젝트 파일에 들어간 후 gradlew build 입력

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

build.gradle

plugins { //(1)
	id 'org.springframework.boot' version '2.4.1'
	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
	id 'java'
}

group '그룹 id' // com.allsser.book
version '1.0.4-SNAPSHOT-'+new Date().format("yyyyMMddHHmmss)
sourceCompatibility = 1.8

repositories {
	mavenCentral()
	jcenter()
}

// for Junit5 가 되면서 추가 되었다.
test { //(2)
	useJUnitPlatform()
}

dependencies {
	// (3)
	implementation(org.springframework.book:spring-boot-starter-web')
	implementation(org.springframework.book:spring-boot-starter-mustache')
	
	// lombok
	implementation('org.projectlombok:lombok')
	annotationProcessor('org.projectlombok:lombok')
	testlmplementation('org.projectlombok:lombok')
	testAnnotationProcessor('org.projectlombok:lombok')
	
	implementation('org.stringframework.boot:spring-boot-starter-data-jpa')
	implementation("org.mariadb.jdbc:mariadb-java-client")
	implementation('com.h2database:h2')
	
	testlmplementation('org.springframework.boot:spring-boot-starter-test')
	
	// Spring Security 권한 부분이다.
	implementation('org.springframework.boot:spring-boot-starter-oauth2-client')
	implementation('org.springframework.session:spring-session-jdbc')
	
	testlmplementation("org.springframework.security:spring-security-test")
}

(1) plugins{ ... }

plugins {
	id 'org.springframework.boot' version '2.4.1' // Gradle6에서는 RELEASE 삭제
	
	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
	// 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해줘야 한다.
	
	id 'java'
}

repositories { // 각종 의존성 (라이브러리)들을 어떤 원격 저장소에서 받을지를 정한다.
    mavenCentral()
    jcenter() // 라이브러리 업로드 난이도 때문에 jcenter를 많이 쓴다.
    
    // 최근에 나온 jcenter 라이브러리는 업로드 하면 mavenCentral에도 업로드될 수 있도록 자동화를 할 수 있다.
    // mavenCentral, jcenter 둘 다 등록하여 사용
}

(2) test { ... }

  • JUnit5를 사용하기 위해서는 필수로 선언되어야 한다.

(3) implementation, testlmplementation

  • Gradle 6가 되면서 compile, testCompile은 Soft Deprecate 되었다.
  • 그대신 implementation, testlmplementation 가 추가되었다.
  • 이에 관련된 참고 블로그
dependencies { // 프로젝트 개발에 필요한 의존성들을 선언하는 곳이다.
	
	implementation(org.springframework.book:spring-boot-starter-web')
	// 기존 교재에서 사용한던 compile 메소드는 Gradle6 가 되면서 implementation으로 교체하여 사용
	// 하여야 한다.
	
	implementation(org.springframework.book:spring-boot-starter-mustache')
	...
	...
}

2.2 인텔리제이에서 깃과 깃허브 사용하기

  1. 인텔리제이에서 단축키(윈도우 : Ctrl + Shift + A, 맥 : Command + Shift + A)를 사용하여 Action 검색창을 열어 share project on github을 검색한다.

  2. 깃허브 로그인 화면이 나오면 깃허브 계정으로 로인한다. [Repository name] 필드에 생성할 저장소 정보를 입력하면 등록한 이름으로 깃허브 저장소가 생성된다. (대부분의 프로젝트 이름을 깃허브 저장소와 같은 이름을 사용하니, 같은 이름을 등록하는 것이 좋다.)

  3. 맨처음 동기화 과정에서 커밋 항목으로 추가할 것인지 묻는 안내문이 나올 경우 No을 선택한다. 그럼 프로젝트의 첫 번째 커밋을 위한 팝업창이 등장한다.

  4. 팝업창에서 .idea 디렉토리는 커밋하지 않는다. 이유는 인텔리제이에서 프로젝트 실행시 자동으로 생성되는 파일들이기 때문에 깃허브에 올리기에는 불필요 하다.

  5. .idea 폴더를 앞으로의 모든 커밋 대상에서 제외되도록 처리하는 방법.gitignore 파일을 사용한다. .gitignore 파일은 "이 파일 안에 기입된 내용들은 모두 깃에서 관리하지 않겠다."를 의미한다.

  6. .gitignore 플러그인을 설치하기 위해서 단축키(윈도우 : Ctrl + Shift + A, 맥 : Command + Shift + A)를 사용하여 Action 검색창을 열어 plugins을 검색해서 플러그인을 열어 Marketplace 탭에서 .ignore을 검색하여 설치해준다. (인텔리제이를 다시 시작해야만 설치한 플러그인이 적용된다.)

  7. 왼쪽 위의 프로젝트 오른쪽 클릭하거나 단축키(Alt + Insert)를 눌러 생성 목록을 열고나서 생성 목록 아래에 [.ignore file -> gitignore file(Git)]을 선택하여 .gitignore 파일을 생성시켜 준다.

  8. 생성된 .gitignore 파일에 깃 체크 대상에서 제외하고 싶은 이름을 작성하면 된다.

    .gradle

    .idea

  9. 깃 커밋 창을 여는 단축키(Ctrl + K)를 눌러 커밋 메시지를 작성 후 푸쉬(Ctrl + Shift + K)를 해주면 된다.

0개의 댓글