[REST API 및 프로젝트 소개]_04_Project 만들기
스프링 부트 프로젝트 만들기
추가할 의존성
- Web
- JPA
- HATEOAS
- REST Docs
- H2 → test scope로 변경 “테스트용 DB로 사용”
- PostgreSQL → runtime scope 삭제 (compile scope) “서비스 DB로 사용”
- Lombok → optional : true 다른 프로젝트에서 이 프로젝트를 참조할 때 이 의존성이 같이 들어가지 않는다.
자바 버전 11로 시작
스프링 부트 핵심 원리
- 의존성 설정 (pom.xml)
- 자동 설정 (@EnableAutoConfiguration)
- 내장 웹 서버 (의존성과 자동 설정의 일부)
- 독립적으로 실행 가능한 JAR (pom.xml의 플러그인)
프로젝트 셋팅 후, 애플리케이션이 잘 동작하는지 확인하기 위해 잠시 h2의 test scope을 주석처리하고 실행해보자
H2 test scope을 셋팅한 채로 실행하면 h2는 애플리케이션을 실행할 때 사용되지 않으므로 postgreSQL을 사용하게 되는데 별다른 DB 설정을 해주지 않아서 실행되지 않는다.
H2를 test scope으로 두지 않으면 두 가지 DB 설정이 있을 때, postreSQL의 설정이 없다면 인메모리 DB인 H2를 사용해서 실행하게되므로 정상적으로 띄워진다.
-
JAR 로 실행
-
패키징
※ 로컬의 java 버전을 11로 맞춰줘야함
mvn package
→
/target
에 jar파일 생성됨 -
jar 파일 실행
java -jar target/demo-inflearn-rest-api-0.0.1-SNAPSHOT.jar
-
- 로컬의 java 버전을 11로 변경
java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (Zulu 8.42.0.23-CA-macosx) (build 1.8.0_232-b18)
OpenJDK 64-Bit Server VM (Zulu 8.42.0.23-CA-macosx) (build 25.232-b18, mixed mode)
jenv versions
system
1.8
1.8.0.232
11.0
11.0.6
openjdk64-13.0.1
oracle64-9
* zulu64-1.8.0.232 (set by /Users/ssun/.jenv/version)
zulu64-11.0.6
jenv local zulu64-11.0.6
java -version
openjdk version "11.0.6" 2020-01-14 LTS
OpenJDK Runtime Environment Zulu11.37+17-CA (build 11.0.6+10-LTS)
OpenJDK 64-Bit Server VM Zulu11.37+17-CA (build 11.0.6+10-LTS, mixed mode)