์คํ๋ง๋ถํธ์๋ Maven๊ณผ Gradle์ด ์๋ค. ๋ ๋ค ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก๊ฒจ์ค๊ณ ๋น๋ ๋ผ์ดํ์ฌ์ดํด์ ๊ด๋ฆฌํด์ฃผ๋ ์ญํ ์ ํ๋ค. ์์ฆ์ Gradle์ ์ฃผ๋ก ์ฌ์ฉํ๋ค. ์คํ๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฒด๋ Gradle๋ก ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋ค.
์ด ๊ธ์์๋ ์คํ๋ง๋ถํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ฃฌ๋ค.
โญ ํ๊ฒฝ
macOS, IntelliJ Untimate ๋ฒ์ ์์ ์งํ
1. ํ๋ก์ ํธ ์์ฑ
์ธํ ๋ฆฌ์ ์ด๋ฅผ ์ด๊ณ New Project๋ฒํผ์ ๋๋ฅธ๋ค. ์ดํ ์๋์ ๊ฐ์ด ์ค์ ํ๋ค.
Language, Type, JDK, Java, Packaging๋ถ๋ถ์ ์ ๋ง์ถฐ์ค์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ๋จํ๊ฒ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํด spring web๊ณผ Thymeleaf๋ฅผ ํ๋ก์ ํธ์ ์ถ๊ฐํด์ฃผ๋๋ก ํ์.
์ฐธ๊ณ ๋ก spring boot ์ดํ๋ฆฌ์ผ์ด์ ์๋ ๋ด๋ถ์ ํฐ์บฃ์ด๋ผ๋ ์น์๋ฒ๊ฐ ๋ด์ฅ๋์ด์๋ค. ๊ทธ ์๋ฒ๋ฅผ ๊ฐ์ด ๋์ฐ๋ฉด์ ์คํ์ด ๋๋ ๊ฒ์ด๋ค.
์คํํ์ ๋ ์๋์ ๊ฐ์ด ์ค๋ฅ ํ์ด์ง๊ฐ ๋์ค๋ฉด ์ฑ๊ณต์ด๋ค. ์์ง ์๋ฌด๋ฐ ์ฝ๋๋ ์์ฑํ์ง ์์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ํ์ด์ง๊ฐ ๋จ๋ ๊ฒ์ด๋ค.
์ถ๊ฐ ํ
setting(cmd+,)์์ gradle์ ๊ฒ์ํ ๋ค build and run๊ณผ run test using์ Intellij๋ก ๋ฐ๊พธ๋๊ฒ ์ข๋ค. gradle์ ํตํด ์คํํ๋ฉด ๋๋ฆด ์๊ฐ ์๋๋ฐ ์ด ์ค์ ์ ํ๋ฉด ๋ฐ๋ก ์ธํ ๋ฆฌ์ ์ด์์ ์๋ฐ๋ฅผ ๋์์ ๋๋ฆฐ๋ค.
์ข์ธก ํ๋จ ๋ฒํผ(cmd๋๋ฒ)์ ๋๋ฅด๋ฉด ์ฐ์ธก ์๋จ Notification Database Gradle๋ฑ์ ๋ฉ๋ด๊ฐ ๋ํ๋ฌ๋ค ์ฌ๋ผ์ก๋ค ํ๋ค. ํ๋ฉด์ ๋ ํฌ๊ฒ ๋ณด๊ธฐ ์ํ ์ต์ ์ด๋ค.
2. ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ด์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ดํด๋ณด๋๋ก ํ์. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฐ์ธก ์๋จ gradle๋ฒํผ์ ๋๋ฅด๋ฉด ์ดํด๋ณผ ์ ์๋ค.
์๋ ์ฌ์ง์์๋ logging์ slf4j์ logback์ด ์๋ค. slf4j๋ ์ธํฐํ์ด์ค, ์ค์ ๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ๋ ๊ตฌํ์ฒด๊ฐ logback์ด๋ค. ์ฌ๋๋ค์ด ๋๊ฐ์ง ์กฐํฉ์ ๋ง์ด ์ฐ๋๊น ์คํ๋ง ์ง์์์๋ ์ด๊ฒ์ ํ์ค์ผ๋ก ์ฑํํ๋ค๊ณ ํ๋ค. ๊ทธ๋์ ์คํ๋ง๋ถํธ ์คํํฐ ๋ก๊น ์ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ๋ก์ ํธ์ ์ ์ฉ๋๋ค.
๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ ์ ์ฉํ Spring Boot Starter Web์๋ Tomcat ์น์๋ฒ์ Spring Web MVC๊ฐ ๋ค์ด์๋ค๋ ์ . Thymeleaf๋ ํ ํ๋ฆฟ ์์ง, Spring Boot Starter๋ฅผ ํตํด ์คํ๋ง๋ถํธ์ ์คํ๋ง ์ฝ์ด, ๋ ์์ ์ดํด๋ณธ ๋ก๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ์ฉ๋๋ค. ํ ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ junit์ด ๊ธฐ๋ณธ์ธ๋ฐ ์์ฆ์ junit5๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
3. ํ๋ก์ ํธ ๋น๋
ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ๊ฒ์ ๊ฐ๋จํ๋ค. iterm์์ ํ๋ก์ ํธ ํด๋๋ก ์ด๋ํ ๋ค ./gradlew build๋ช ๋ น์ด๋ฅผ ์คํํด์ฃผ๋ฉด ๋๋ค. java -jar~๋ช ๋ น์ด๋ฅผ ์น๊ธฐ ์ ์ ์ธํ ๋ฆฌ์ ์ด์์ ์คํ์ค์ธ ์๋ฒ๋ฅผ ๊บผ์ค์ผํ๋ค. ๊ทธ๋ ์ง์์ผ๋ฉด ์ด๋ฏธ 8080ํฌํธ๋ฅผ ์ฐ๊ณ ์์ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
cd dev/hello
./gradlew build //build ํด๋๊ฐ ์์ฑ๋๋ค.
cd build/libs
java -jar hello-0.0.1-SNAPSHOT.jar
์ด์ ์๋ ์๋ฒ์ ๋ฐฐํฌํ ๋ ์๋ฒ์ tomcat์ ๊น๊ณ ์ด๋ฐ ์ ๋ฐ ์์ ๋ค์ ํด์ค์ผํ๋ค๋๋ฐ ์ง๊ธ์ jarํ์ผ๋ง ์ง์ด๋ฃ๊ณ ์คํํ๋ฉด ๋์ด๋ผ๊ณ ํ๋ค.
์ฑ๊ณต์ ์ผ๋ก ์๋ฒ๊ฐ ์คํ๋์๋ค. ๋ง์ฝ ์ ๋์ง ์์ผ๋ฉด ํ๋ก์ ํธ ํด๋์์ ./gradlew clean build์ ํตํด buildํด๋๋ฅผ ์ง์ฐ๊ณ ๋ค์ ๋น๋๋ฅผ ํ๋ฉด ๋๋ค.
'WEB > Server' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์คํ๋ง๋ถํธ ์ ๋ฌธ] 3. ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์์กด๊ด๊ณ ์ค์ (0) | 2024.04.25 |
---|---|
[์คํ๋ง๋ถํธ ์ ๋ฌธ] 2. ์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด (0) | 2024.04.25 |
[Airbridge] Api ํธ์ถ ์ ํธ๋ํน (0) | 2023.07.01 |
[Docker] mysql ์ปจํ ์ด๋์ iterm์ผ๋ก ์ ์ํ๊ธฐ (0) | 2023.05.07 |
GithubAction์ ์ด์ฉํ CD (feat: appleboy/ssh-actions@master) (0) | 2023.04.26 |
๋๊ธ