IntelliJ에서 Gradle 프로젝트를 생성하고 SpringMVC를 위한 설정을 할 수 있다.

Goal

  • IntelliJ에서 Gradle 프로젝트를 생성할 수 있다.
  • IntelliJ에서 SpringMVC를 위한 설정을 할 수 있다.
  • git과 연동 시 .gitignore을 설정한다.

IntelliJ에서 Gradle 프로젝트 생성

  1. Create New Project
  2. Gradle Tab에서 Java 선택 후 Next
  3. GroupId, ArtifactId, Version 설정 후 Next
    • 자신의 프로젝트에 대한 고유의 좌표를 설정하는 것이다.
    • GroupId?
      • 자신의 프로젝트를 고유하게 식별하게 해 주는 것으로, 최소한 내가 컨트롤하는 domain name이어야 한다.
      • package 명명 규칙을 따른다.
      • 하위 그룹은 얼마든지 추가할 수 있다.
    • ArtifactId?
      • 제품의 이름으로, 버전 정보를 생략한 jar 파일의 이름이다.
      • 프로젝트 이름과 동일하게 설정한다.
      • 소문자로만 작성하며 특수문자는 사용하지 않는다.
    • Version?
      • SNAPSHOT: 개발용, RELEASE: 배포용
      • 숫자와 점을 사용하여 버전 형태를 표현한다.(1.0, 1.1, 1.0.1, …)
  4. 본인이 원하는 설정 후 Next (위와 같이 시작해도 됨)
    • Use auto-import 선택
    • Create separate module per source set 선택 제거
  5. 프로젝트 이름과 저장할 위치 선택 후 Finish
  6. 생성이 완료되면 아래와 같은 프로젝트 구조 생성
  7. main 코드와 test 코드를 생성하기 위한 source root 필요 (기본 디렉터리가 자동으로 생성 되지 않는 경우)
    • 자동 설정
      • 1) Preferences에서 Build, Execution, Deployment Tab 선택
      • 2) Build Tools - Gradle에서
        -> Create directories for empty content roots automatically 체크 후 Apply
      • IntelliJ의 2018.01 이후 버전부터는 빈 내용인 root directory를 자동으로 만들지 않는다.
        -> 참고 내용
    • 수동 설정
      • 1) 프로젝트 우클릭
        -> Directory 선택 후 src/main/javasrc/test/java 입력하여 디렉터리 생성
      • 2) main의 source root는 파란색, test의 source root는 초록색으로 표기된다.
        만약 회색(일반 디렉터리)으로 표기 된다면 아래의 과정을 이어서 진행한다.
      • 3) src/main/java 우클릭 후 Mark Directory as -> Sources Root 선택
      • 4) src/main/resources 우클릭 후 Mark Directory as -> Resources Root 선택
      • 5) src/test/java 우클릭 후 Mark Directory as -> Test Sources Root 선택
      • 6) src/test/resources 우클릭 후 Mark Directory as -> Test Resources Root 선택
  8. Gradle 프로젝트 생성 완료 후 아래와 같은 프로젝트 구조 완성

간단한 테스트 코드 작성

  1. src/test/java 에 패키지 및 테스트 클래스 생성
    • main에도 동일한 패키지를 생성한다.
  2. test 코드 작성
    • 아직 main에 생성되지 않은 Class를 사용하기 때문에 빨간 경고창이 출력된다.
    • 이때, 해당 표기 위에 커서를 댄 상태에서 option + enter를 누르면 해당 Class를 생성할 수 있다.
    • 클래스 생성 위치를 main으로 변경한 후 Class를 생성한다.
    • 관련 클래스 자동 import
      • 마찬가지로 빨간 경고창이 뜨는 위치에 커서를 댄 상태에서 option + enter를 누르면 static import가 가능하다.
      • import static org.junit.Assert.assertThat;
      • import static org.hamcrest.CoreMatchers.is;
  3. main 코드 작성
    • 테스트 코드에 맞춰 메인 코드를 생성한다.

테스트 코드의 비교 종류

  1. assertEquals
    • assertEquals(new Integer(2), game.getLeastTryCount());
    • 첫 번째 인자: 기대값, 두 번째 인자: 실제값
    • 인자의 순서가 바뀌어도 테스트 목적에는 별 다른 지장을 주지 않는다.
  2. assertThat (추천)
    • assertThat(game.getLeastTryCount(), is(2));
    • is()와 같은 method들
      • JUnit이 처음으로 의존성을 가지고 사용하는 제 3자(‘Hamcrest’라는 프로젝트)의 클래스들
      • ‘Hamcrest’는 Matcher를 확장한 다양한 메소드들을 제공
    • 사용하는 method에 대한 static import 필요
      • import static org.hamcrest.CoreMatchers.*; 추가
    • 장점
      • assertEquals() 보다 가독성 높은 에러 메시지
      • Custom Matcher 사용 가능
      • 콤비네이션이 가능 (예시와 같은 조합이 가능) Ex. is(not(3)), eather(2).or(3)

SpringMVC 설정을 위한 Framework Support 추가

  1. 프로젝트 우클릭 -> Add Framework Support 클릭
  2. Java EE - Web Application 선택 후 아래로 드래그
  3. Spring - Spring MVC(ver. 4.3.18) 선택 후 OK
  4. 설정이 완료되면 아래와 같은 프로젝트 구조 생성

Tomcat Server를 통해 “Hello World” 띄우기

git과 연동 시 .gitignore 내용

### JAVA ###
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*


### Gradle ###
.DS_Store
.gradle
/build/
/out/
/target/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar
!gradle/wrapper/gradle-wrapper.jar

# Cache of project
.gradletasknamecache

# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# # gradle/wrapper/gradle-wrapper.properties


### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
bin/


### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

관련된 Post

References