๋ฐฑ์๋๊ฐ ๋๋ฌด ์ซ๊ณ ๋งจ๋ ๋ฐฑ์๋๋ ์ซ์ด ์ ๋ ์ํ ๊ฑฐ์ผ ์ธ์ณค์ง๋ง ์ปจํผ๋ฐ์ค ๋ก๋ ์ ๋ถ ๋ค ๊ดํํด์ ๋ ์ฃผ๊ณ ๋ค์ ์ ์๋ ์ปจํผ๋ฐ์ค๋ ๋ฐฑ์๋๋ฟ์ด์๊ณ ์ฌ๊ธฐ์ ๊ธฐ ๋ค๋๋ค๋ณด๋ ๋ฐฑ์๋๋ ํ ๋งํ ๊ฒ๊ฐ๊ณ ๊ทธ์์ค์ ์ธ๋๋ค ๋ค ์คํ๋ง๋ถํธ ์คํฐ๋ ํ๋ค๋๋ฐ ๋๋ง ์ํ๋ฉด ์์ธ๊ฐ ๋ค๊ณ ๋๋ฌผ์ด ๋ ๊ฒ ๊ฐ์์ ์ด์ฉ๋ค๋ณด๋ ์์ํ๋ ์คํ๋ง๋ถํธ ๋์ ๊ธฐ
์คํ๋ง๋ถํธ๋ฅผ ์ํ ํ๊ฒฝ ์ค์
1. JDK ์ค์น
๋จผ์ JDK ๋ฒ์ ๋ถํฐ ํ์ธํด์ผ ํฉ๋๋ค.

์ง์ง ์์๋ถํฐ ์ด๋ฌ๊ธฐ ์๋...์ถ์๋๋ฐ JDK๊ฐ ์์ผ๋ฉด ์ด๋ ๊ฒ ๋์จ๋ค๋๋ผ๊ตฌ์..๋ถ๋ช ์๋ฐ ํ๋ก๊ทธ๋๋ฐ๋ ํ์ด์ JDK๊ฐ ์์ ์๊ฐ ์์ ํ ๋ฐ๐ง. ๋ง์ด ์์ํ์ง๋ง ์ผ๋จ ์๋ค๋๊น OpenJDK ์ค์น๋ฅผ ํด์ผํฉ๋๋ค. (์ค์น ๋งํฌ ์๋ ์์ฑ๋ ๋๋๋ฐ ์๋นํ ์์ํ๋ค)
21-LTS๊ฐ ์๊ณ , 17-LTS๊ฐ ์๋๋ฐ, ์ผ๋จ ๊ณต๋ถ์ ์ฌ์ฉํ๋ ๊ต์ฌ๋ 17-LTS ๋ฒ์ ์ ์ฌ์ฉํด์ 17-LTS๋ฅผ ์ค์นํ์ต๋๋ค. JDK ์ค์น ํ ๋ช ๋ น ํ๋กฌํํธ๋ฅผ ์ฌ์คํํ์ฌ java -version ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์ ๋๋ก ์ค์น๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.


2. IDE ์ค์น
๋ค์์ผ๋ก๋ IDE๋ฅผ ์ค์นํด์ฃผ์ด์ผ ํฉ๋๋ค. IntelliJ๋, Eclipse ์ค ์ ํํ๋ฉด ๋๋๋ฐ ํธ์์ฑ ๋๋ฌธ์ IntelliJ๋ฅผ ์ ํํ์์ต๋๋ค. C๋๋ผ์ด๋ธ ์ฉ๋ 30๊ธฐ๊ฐ ๋จ์ ๊ด๊ณ๋ก ๋ ์ด์ ๋ญ๊ฐ๋ฅผ ๋ ์ค์นํ๊ณ ์ถ์ง ์์ง๋ง-์ด๋ผ๊ณ ์ฐ๋ ์์ค์ IntelliJ๊ฐ ์ค์น๋์ด ์๋๊ฑธ ๋ฐ๊ฒฌํ์ต๋๋ค. JDK๋ ์๋๋ฐ IntelliJ๋ ์๋ ์ด ๋ฌด์จ ์ด์ํ ๊ด๊ฒฝ์ด์ง...์๋ฌดํผ ๋ฒ์ ์ ๊ทธ๋ ์ด๋ ํด์ฃผ์์ต๋๋ค. ์ต์ ์ค์น ํ๋ก๊ทธ๋จ ๋ค์ด ๋ฐ๊ณ ์ค์นํด์ฃผ๊ธฐ๋ง ํ๋ฉด ์ฝ๊ฒ ๋ฒ์ ์ ๊ทธ๋ ์ด๋ ๋ฉ๋๋ค.

์คํ๋ง๋ถํธ ํ๋ก์ ํธ ์์ฑ
์คํ๋ง๋ถํธ๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํ๊ธฐ ์ํด์ ๋จผ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ํ๋ก์ ํธ ์์ฑ์ Spring Initializr ํ์ด์ง์์ ์์ฑ ๊ฐ๋ฅํฉ๋๋ค.

1. Project: Gradle-Groovy
2. Language: Java
3. Spring Boot: ๊ธฐ๋ณธ๊ฐ
4. Packaging: Jar
5. Java: ๋ฒ์ ์ ๋ง๊ฒ ์ ํ
6. Artifact: ํ๋ก์ ํธ๋ช
์ข์ธก Dependencies๋ ์คํ๋ง๋ถํธ์ ํ์ํ ๋๊ตฌ๋ฅผ ๊ฐ์ ธ์ค๋ ์์ญ์ ๋๋ค. [ADD DEPENDENCIES]๋ฅผ ๋๋ฅด๊ณ , ํ์ํ ๋๊ตฌ๋ฅผ ๊ฒ์ํ์ฌ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค.

1. Spring Web
2. H2 Database
3. Mustache
4. Spring Data JPA
์ 4๊ฐ ๋๊ตฌ๋ฅผ ์ถ๊ฐํ๊ณ , [GENERATE] ๋ฒํผ์ ๋๋ฅด๋ฉด ํ๋ก์ ํธ ์์ถ ํ์ผ์ด ๋ค์ด๋ก๋ ๋ฉ๋๋ค.
๋ค์ด๋ก๋ํ ํ์ผ์ ์์ถ ํด์ ํ๊ณ , IntelliJ์์ ์ด๋ฉด ์คํ๋ง๋ถํธ ์์์ ์ํ ์ค๋น๊ฐ ์๋ฃ๋์์ต๋๋ค.๐ป

์ด์
ํ๋ก์ ํธ๋ฅผ ์ด์๋๋ฐ ๋น๋ ์คํจ, ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋ง์ฝ ์ฒ์์ผ๋ก ์คํ๋ง๋ถํธ ํ๋ก์ ํธ๋ฅผ ์ด์์ ๋ ๋น๋ ์คํจ๊ฐ ๋ฌ๋ค๋ฉด ๋ค์ 2๊ฐ์ง๋ฅผ ํ์ธํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ 2๊ฐ ๋ชจ๋ ์์ ํ์ฌ ๋ฌธ์ ํด๊ฒฐํ์์ต๋๋ค.
1. ํ๊ฒฝ ๋ณ์
Java ์ค์น ๊ฒฝ๋ก๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค.
//์๋ฐ ๋ฒ์ ํ์ธ
java -version
//gradle ๋ฒ์ ํ์ธ
./gradlew -version
//์๋ฐ ์ค์น ๊ฒฝ๋ก ํ์ธ
where java
์ ๋ ์ ๋ช ๋ น์ด ์คํ ์ gradle ๋ฒ์ ํ์ธ์ด ์๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
์ ๋ช ๋ น์ด๋ฅผ ํตํด ํ์ธํ ๊ฒฝ๋ก๊ฐ, JAVA_HOME ํ๊ฒฝ๋ณ์ ๊ฒฝ๋ก๊ฐ ๋์ด์ผ ํฉ๋๋ค.
- ์์คํ ํ๊ฒฝ ๋ณ์ ์ค์ ์ด๊ธฐ:
- ์์คํ ์์ฑ > ๊ณ ๊ธ > ํ๊ฒฝ ๋ณ์๋ก ์ด๋
- ์์คํ ๋ณ์์์ JAVA_HOME ์ ํํ ๊ฒฝ๋ก ํธ์ง(๋ง์ฝ ์๋ค๋ฉด ์๋ก ๋ง๋ค๊ธฐ)
- PATH ๋ณ์์์ %JAVA_HOME%\bin์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ๊ณ , ์๋ค๋ฉด ์ถ๊ฐํ๊ธฐ
ํ๊ฒฝ ๋ณ์๋ฅผ ์ถ๊ฐํ ํ, ๋ช ๋ น ํ๋กฌํํธ์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
echo $JAVA_HOME
๋ช ๋ น์ด ์ ๋ ฅ ๊ฒฐ๊ณผ๊ฐ ์์คํ ๋ณ์์ ์ ๋ ฅํ JAVA_HOME ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ค๋ฉด ์ค์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋ ๊ฒ์ ๋๋ค. gradle ๋ฒ์ ํ์ธ ๋ช ๋ น์ด๋ ๋ค์ ์ ๋ ฅํด ๋ณด๋ฉด, ์ ์์ ์ผ๋ก ๋ฒ์ ์ ๋ณด๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.

2. gradle ๋ฒ์ ํ์ธ
ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์๋๋ฐ๋ ๋น๋ ์คํจ ์ค๋ฅ๊ฐ ๊ณ์ํด์ ๋ฐ์ํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ gradle ๋ฒ์ ์ ํ์ธํด๋ณด์์ผ ํฉ๋๋ค.

Settings > Build, Execution, Deployment > Build Tools > Gradle์์ Gradle JVM ๋ฒ์ ์ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ ๋ ๊ธฐ๋ณธ๊ฐ์ด java version "18.0.3" ์ผ๋ก ์ค์ ๋์ด ์์๋๋ฐ, 17๋ฒ์ ์ผ๋ก ์ค์ ํ๊ณ ์ฌ๋น๋ ํ์์ต๋๋ค.

๋น๋ ๊ฒฐ๊ณผ, BUILD SUCCESSFUL๋ก ์ค๋ฅ ํด๊ฒฐ!