2021.05.29 - [๐ Language/โ JAVA] - [ํผ๊ณต][Spring] 1. ์ค๋น
- ์ ํ๋ธ ๊ฐ์
- IDE: ์ดํด๋ฆฝ์ค
- ๋น๋ ๋๊ตฌ: ๋ฉ์ด๋ธ
์์ ํ๋ก์ ํธ
1. ์ดํด๋ณด๊ธฐ
1) ์ค๋น
์์ ํ๋ก์ ํธ Pet Clinic
https://github.com/spring-projects/spring-petclinic
- ์คํ๋ง ๊ณต์ ํ๋ก์ ํธ ์ค ํ๋๋ก ์คํ๋ง์ ํตํด ๋ง๋ ๊ฐ๋จํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค.
- ์ด ํ๋ก์ ํธ๋ ๋๋ฌผ ๋ณ์์ ์์ ๋ก ๋ง๋ ๊ฒ์ผ๋ก ์ฃผ์ธ๊ณผ ๋๋ฌผ ๋ฑ๋ก, ์์ฝ ๋ฑ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๋ค.
2) ๋น๋ ๋ฐ ์คํ ํ ์คํธ
- ์ ์์ ํ๋ก์ ํธ๋ฅผ Git Clone ๋ฐ์ ํ ์ดํด๋ฆฝ์ค๋ฅผ ํตํด ๋ถ๋ฌ์จ๋ค.
- ์ดํด๋ฆฝ์ค ํฐ๋ฏธ๋ ์ฐฝ์ ์ด์ด ํ๋ก์ ํธ๋ฅผ ๋ฉ์ด๋ธ์ผ๋ก ๋น๋ํ๋ค. (./mvnw package)
- ๋น๋๋ ํ๋ก์ ํธ๋ฅผ ์คํํ๋ค. (java -jar target/*.jar ๋๋ ๋ฉ์ธ ๋ฉ์๋ ์คํ)
- ํฐ์บฃ์ด 8080 ํฌํธ์ ๋ฌ ๊ฒ์ ๋ก๊ทธ๋ก ํ์ธํ ์ ์๊ณ localhost:8080๋ก ์ ์ํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ธํ ์ ์๋ค.
- ์คํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ Ctrl+C๋ฅผ ๋์์ ๋๋ฌ ์ข ๋ฃ์ํจ๋ค. (ํฐ๋ฏธ๋๋ก ์คํ ์)
3) ๊ตฌ์กฐ
- ์ผ๋ฐ์ ์ธ ๋ฉ์ด๋ธ ํ๋ก์ ํธ ๊ตฌ์กฐ
- ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ ๊ธฐ๋ฐ: ์น ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ถ๊ตฌํ๊ณ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ธ ์ ์๋ค.
๋ฉ์ด๋ธ ํ๋ก์ ํธ ๊ตฌ์กฐ
- src/main/java: ์๋ฐ ์์ค ์์น ํด๋๋ก ํ์์ org์ ๊ฐ์ ํจํค์ง๋ฅผ ๋ฐฐ์นํ๋ค.
- src/main/resources: ํ๋กํผํฐ๋ XML ๋ฑ ๋ฆฌ์์ค ํ์ผ์ด ์์นํ๋ค.
- src/main/webapp: ์น ํ๋ก์ ํธ์ธ ๊ฒฝ์ฐ WEB-INF ๋ฑ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฆฌ์์ค๋ฅผ ์์นํ๋ค.
- src/test/java: JUnit ๋ฑ ํ ์คํธ ํ์ผ์ด ์์นํ๋ค.
- src/test/resources: ํ ์คํธ์ ํ์ํ ๋ฆฌ์์ค ํ์ผ์ด ์์นํ๋ค.
https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
4) ๋ก๊ทธ
๋ก๊ทธ ์ค์ ํ์ผ์์ ๋ก๊น ๋ ๋ฒจ์ ๋ณ๊ฒฝํ ์ ์๋๋ฐ, ๋ก๊น ๋ ๋ฒจ์ ๋ฐ๋ผ ์ด๋ค ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ค์ง ๊ฒฐ์ ๋๋ค.
๊ธฐ๋ณธ ๊ฐ์ INFO๋ก ์ค์ ๋์ด ์๋ค.
๋ก๊ทธ ๋ฉ์์ง๋ฅผ ํตํด ํ๋ก์ ํธ๊ฐ ์คํ๋๋ ํ๋ฆ๊ณผ ์ด๋ค ๋ฉ์๋๊ฐ ์คํ๋์๋์ง ์ ์ ์๋ค.
5) ๋๋ฒ๊น
- ๋๋ฒ๊ทธ๋ฅผ ํตํด ํ์ธํ๊ณ ์ถ์ ๋ผ์ธ์ ํ๋ก์ธ์ค๊ฐ ๋ฉ์ถ๊ฒ ๋๋ค.
- Variables ์ฐฝ์ ํตํด ์ฐธ์กฐํ ์ ์๋ ๊ฐ์ฒด์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ค.