1) Maven ์ด๋?
Maven์ด๋?
Maven์ ์ง๊ธ๊น์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํด ๋ฐ๋ณต์ ์ผ๋ก ์งํํด์๋ ์์ ๋ค์ ์ง์ํ๊ธฐ ์ํ์ฌ ๋ฑ์ฅํ ๋๊ตฌ์ ๋๋ค.
Maven์ ์ฌ์ฉํ๋ฉด ๋น๋(Build), ํจํค์ง, ๋ฌธ์ํ, ํ ์คํธ์ ํ ์คํธ ๋ฆฌํฌํ , git, ์์กด์ฑ๊ด๋ฆฌ, svn๋ฑ๊ณผ ๊ฐ์ ํ์๊ด๋ฆฌ์๋ฒ์ ์ฐ๋(SCMs), ๋ฐฐํฌ ๋ฑ์ ์์ ์ ์์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
Maven์ ์ดํดํ๋ ค๋ฉด CoC(Convention over Configuration)๋ผ๋ ๋จ์ด๋ฅผ ๋จผ์ ์ดํดํด์ผ ํฉ๋๋ค.
CoC๋ ์ผ์ข ์ ๊ด์ต์ ๋งํ๋๋ฐ, ์๋ฅผ ๋ค์๋ฉด ํ๋ก๊ทธ๋จ์ ์์คํ์ผ์ ์ด๋ค ์์น์ ์์ด์ผ ํ๊ณ , ์์ค๊ฐ ์ปดํ์ผ๋ ํ์ผ๋ค์ ์ด๋ค ์์น์ ์์ด์ผ ํ๊ณ ๋ฑ์ ๋ฏธ๋ฆฌ ์ ํด๋จ๋ค๋ ๊ฒ์ ๋๋ค.
์ด ๋ง์ ๊ด์ต์ ์ด๋ฏธ ์ต์ํ ์ฌ์ฉ์๋ ์ฝ๊ฒ Maven์ ์ฌ์ฉํ ์ ์๋๋ฐ, ๊ด์ต์ ์ต์ํ์ง ์์ ์ฌ์ฉ์๋ ์ด๋ฌํ ์ ์ฝ์ฌํญ์ ๋ํด์ ์ฌํ ๊ฑฐ๋ถ๊ฐ์ ๋๋ ์ ์์ต๋๋ค.
Maven์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ด์ฉ๋ฉด ์ด๋ฌํ ๊ด์ต ์ฆ CoC์ ๋ํด์ ์์๋๊ฐ๋ ๊ฒ์ด๋ผ๊ณ ๋ ๋งํ ์ ์์ต๋๋ค.
Maven์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ป๊ฒ ๋๋ ์ด์ ์?
Maven์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๊ต์ฅํ ํธ๋ฆฌํ ์ ๋ค์ด ๋ง์ต๋๋ค.
๋ง์ ์ฌ๋์ด ์๊ผฝ๋ ์ฅ์ ์ค์๋ ํธ๋ฆฌํ ์์กด์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ๊ฐ ์์ต๋๋ค.
์์์ JSTL์ ํ์ตํ ๋, ๋ช ๊ฐ์ง ํ์ผ์ ๋ค์ด๋ก๋ ํ์ฌ /WEB-INF/libํด๋์ ๋ณต์ฌํ์ฌ ์ฌ์ฉํ์์ต๋๋ค.
๊ด๋ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์์ง์๋ก ์ด๋ฌํ ๋ฐฉ์์ ์๋นํ ๋ถํธํด์ง๋๋ค.
Maven์ ์ฌ์ฉํ๋ฉด ์ค์ ํ์ผ์ ๋ช ์ค ์ ์ด์ค์ผ๋ก์จ ์ง์ ๋ค์ด๋ก๋ ๋ฐ๊ฑฐ๋ ํ๋ ๊ฒ์ ํ์ง ์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋ ๊ฐ๋ฐ์๊ฐ ๋ง์์ง๊ฒ ๋๋ฉด, ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํ์ฌ ๊ฐ์ด๋ํ๋ ๊ฒ๋ ์ฌ์ด ์ผ์ด ์๋๋๋ค.
Maven์ ์ฌ์ฉํ๊ฒ ๋๋ฉด Maven์ ์ค์ ํ ๋๋ก ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ๋น๋๋ฅผ ์ํํ ์ ์๊ฒ ๋ฉ๋๋ค.
Maven์ ๋ํ ๋ค์ํ ํ๋ฌ๊ทธ์ธ์ ์ ๊ณตํด์ค์, ๊ต์ฅํ ๋ง์ ์ผ๋ค์ ์๋ํ์ํฌ ์ ์์ต๋๋ค.
Maven ๊ธฐ๋ณธ
Archetype์ ์ด์ฉํ์ฌ Maven ๊ธฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๊ฒฝ์ฐ ์์ฑ๋ ํ๋ก์ ํธ ํ์์ pom.xml ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
pom.xml ํ์ผ์์ ๊ฐ๊ฐ์ ํ๊ทธ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
project : pom.xml ํ์ผ์ ์ต์์ ๋ฃจํธ ์๋ฆฌ๋จผํธ(Root Element)์ ๋๋ค.
-
modelVersion : POM model์ ๋ฒ์ ์ ๋๋ค.
-
groupId : ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ์กฐ์ง์ ๊ณ ์ ์์ด๋๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋๋ฉ์ธ ์ด๋ฆ์ ๊ฑฐ๊พธ๋ก ์ ์ต๋๋ค.
-
artifactId : ํด๋น ํ๋ก์ ํธ์ ์ํ์ฌ ์์ฑ๋๋ artifact์ ๊ณ ์ ์์ด๋๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. Maven์ ์ด์ฉํ์ฌ pom.xml์ ๋น๋ํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก artifact๊ฐ ์์ฑ๋ฉ๋๋ค. artifactid-version.packaging. ์ ์์ ๊ฒฝ์ฐ ๋น๋ํ ๊ฒฝ์ฐ examples-1.0-SNAPSHOT.jar ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
-
packaging : ํด๋น ํ๋ก์ ํธ๋ฅผ ์ด๋ค ํํ๋ก packaging ํ ๊ฒ์ธ์ง ๊ฒฐ์ ํฉ๋๋ค. jar, war, ear ๋ฑ์ด ํด๋น๋ฉ๋๋ค.
-
version : ํ๋ก์ ํธ์ ํ์ฌ ๋ฒ์ . ์ถํ ์ดํด๋ณด๊ฒ ์ง๋ง ํ๋ก์ ํธ๊ฐ ๊ฐ๋ฐ ์ค์ผ ๋๋ SNAPSHOT์ ์ ๋ฏธ์ฌ๋ก ์ฌ์ฉํฉ๋๋ค. Maven์ ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ํธํ๊ฒ ํฉ๋๋ค.
-
name : ํ๋ก์ ํธ์ ์ด๋ฆ์ ๋๋ค.
-
url : ํ๋ก์ ํธ ์ฌ์ดํธ๊ฐ ์๋ค๋ฉด ์ฌ์ดํธ URL์ ๋ฑ๋กํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
Maven ์ ์ด์ฉํ ๊ฒฝ์ฐ ์ป๊ฒ ๋๋ ํฐ ์ด์ ์ค์ ํ๋๋ Dependency Management ๊ธฐ๋ฅ์ ๋๋ค.
์ pom.xml ํ์ผ์์ ์๋ฆฌ๋จผํธ๊ฐ Dependency Management ๊ธฐ๋ฅ์ ํต์ฌ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
ํด๋น ์๋ฆฌ๋จผํธ ์์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ ํ๊ฒ ๋ฉ๋๋ค.
2) Maven์ ์ด์ฉํ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ค์ต
์ฝ๋ ์ค์ต ๋งํฌ: mavenweb01
Maven์ ์ด์ฉํด ์น ์ดํ๋ฆฌ์ผ์ด์
ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , ์คํํด๋ณด์๋ค.
๊ฒช์๋ ์ค๋ฅ
-
๋ค์ด๋๋ฏน ์น ๋ชจ๋์ 2.3์์ 3.1๋ก ๋ฐ๊ฟ์ง์ง ์๊ฑฐ๋ ์๋ฌ๊ฐ ๋ ๋
-
ํ๋ก์ ํธ ํ๋กํผํฐ๋ฅผ ์ ํํ ํ Maven๋ฉ๋ด ์๋์ Java EE Integration์ ์ ํํฉ๋๋ค.
๋ณด์ด๋ ๊ฒ์ฒ๋ผ Enable Project Specific Settings ์์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋์ Apply and Close๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. -
WEB-INF์ pom.xml ์์ ํ๊ธฐ
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Archetype Created Web Application</display-name> </web-app>
-
ํ๋ก์ ํธ์๋์ .settings/org.eclipse.wst.common.project.facet.core.xml ํ์ผ์ ์ฝ๋๋ค. ์ด๋ Windows > Show veiw > Navigator๋ก ํ์ผ์ ๋ณด๋ฉด .settings ํ์ผ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. ํ์ผ ์์์ 2.3 -> 3.1๋ก ๋ณ๊ฒฝํด์ค๋๋ค.
-
'Spring > Boost Course Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2.2 ์น ๊ฐ๋ฐํ๊ฒฝ ์ค์ (0) | 2020.11.19 |
---|---|
2.1 Web๊ฐ๋ฐ์ ์ดํด (0) | 2020.11.19 |
1.5 JDBC (0) | 2020.11.19 |
1.3 ๊ฐ๋ฐํ๊ฒฝ ์ค์ (0) | 2020.11.09 |
1.2 SQL (0) | 2020.11.09 |
1.1 MySQL (0) | 2020.11.09 |