시작하기 앞서 1장의 부분을 좀 짚고 넘어가고싶음
인텔리J 프로젝트 생성시 프로젝트 유형을 선택하게되는데 이때 Gradle을 선택함 ⇒ Gradle이 뭐야? https://okky.tistory.com/179 빌드 자동화 시스템! 메이븐과 비교됨

그래서 Gradle기반의 자바 프로젝트를 생성하고 build.gradle 파일을 수정해서 그레이들 프로젝트를 스프링 부트 프로젝트로 변경하게됨. 이는 스프링이니셜라이져(http://start.spring.io/)를 통해 진행할수도 있음
plugins {
id 'java'
}
group 'com.jojoldu.book'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
// 프로젝트의 플러그인 의존성 관리를 위한 설정
buildscript {
ext { // build.gradle 에서 사용하는 전역변수 설정
springBootVersion = '2.1.7.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.example'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
// 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을 지 결정
repositories {
mavenCentral()
}
// 프로젝트 개발에 필요한 의존성들을 선언하는 곳
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
이후에 롬복, 데이터jpa, h2데이터베이스, mustache등을 프로젝트에서 사용하게 될때 dependencies쪽에 선언하게됨
테스트 코드를 먼저 작성하는 것부터가 개발의 시작
레드 그린 사이클

(Red) 항상 실패하는 테스트를 먼저 작성하고
(Green) 테스트가 통과하는 프로덕션 코드를 작성하고