1. ์๋ก
๊ทธ๋์ ๋ด๊ฐ ์๋ ์ดํด๋ฆฝ์ค์์ jsp ํ์ผ์ด ๋ค์ด๊ฐ๋ ํด๋๋ /src/main/webapp ์ธ๋ฐ ๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๋ค๊ฐ webContent๋ก ๋์ด ์๋ ๊ฑธ ๋ฐ๊ฒฌํด์ ์ฐจ์ด์ ์ด ๊ถ๊ธํด ์ฐพ์๋ณด๊ฒ ๋๋ค.
2. ๊ณตํต์
WebContent์ /src/main/webapp๋ ๋ ๊ฐ์ง ๋ค๋ฅธ ๊ตฌ์กฐ์์ ๊ฐ์ ์ญํ ์ ํ๋ ํด๋์ด๋ค.
3. ์ฐจ์ด์
๊ธฐ์กด Eclipse ๋ฐฉ์์์๋ WebContent ํด๋๊ฐ ์น ๋ฆฌ์์ค๋ฅผ ํฌํจํ๋ ํด๋์๊ณ ,
์ต์ Maven/Gradle ๋ฐฉ์์์๋ /src/main/webapp๊ฐ ํด๋น ์ญํ ์ ๋์ ํ๋ค.
Why?
Maven, Gradle ๊ตฌ์กฐ์์๋ ์์ค ์ฝ๋(src)์ ์น ๋ฆฌ์์ค(webapp)๊ฐ ๋๋์ด์ /src/main ์๋์ ๋ฐ๋ก ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค.
โถ WebContent
์์ ๋ฐฉ์์ Dynamic Web Project์์ ์ฌ์ฉ๋๋ ๋๋ ํฐ๋ฆฌ์ด๋ค.
ํ์ฌ์๋ ์ดํด๋ฆฝ์ค์ ์๋จ ๋ฉ๋ด์์ ํ์ผ > ์๋ก๋ง๋ค๊ธฐ > Dynamic Web Project๋ฅผ ์ ํํ์ฌ ๋ง๋ ๊ฒฝ์ฐ์ WebContent ๊ฐ ์์ฑ์ด ๋๋ค.
์์ ๋ฐฉ์์ WebContent ๊ตฌ์กฐ
ProjectName/
โโโ WebContent/
โ โโโ META-INF/ # ๋ฉํ ์ ๋ณด
โ โโโ WEB-INF/ # ์๋ธ๋ฆฟ ์ค์ ๋ฑ
โ โ โโโ web.xml # ์๋ธ๋ฆฟ ์ค์ ํ์ผ
โ โโโ index.jsp # JSP ํ์ผ
โ โโโ static/ # ์ ์ ํ์ผ (CSS, JS ๋ฑ)
โโโ src/ # ์๋ฐ ์์ค ์ฝ๋
โถ /src/main/webapp
Project๋ฅผ Maven ์ด๋ Gradle ๋ก ๋ง๋๋ ๊ฒฝ์ฐ `/src/main/webapp`๊ฐ ํ์ค ๋๋ ํฐ๋ฆฌ๋ก ์์ฑ๋๋ค.
์ฆ webapp ํด๋๋ Maven, Gradle ๋ฑ ๋ชจ๋ ๋น๋ ์์คํ
์์ ํ์คํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
๋ฆฌ์์ค ํด๋์ด๋ค.
webapp ํด๋์ ๋์ ๋ฐฐ๊ฒฝ
๊ธฐ์กด์ Dynamic Web Project์์๋ WebContent ํด๋ ์๋์ ์น ๋ฆฌ์์ค (JSP ํ์ผ, HTML ํ์ผ, ์ด๋ฏธ์ง, CSS ๋ฑ)์ WEB-INF ํด๋, web.xml ๋ฑ์ ๋ฐฐ์นํ๋ค.
๋ฐ๋ฉด, 2004๋
๋น๋ ๊ด๋ฆฌ์ ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํ๋ ค๋ ๋ชฉ์ ์ผ๋ก `Maven Project`๊ฐ ์ผ์ฌ์ฐจ๊ฒ ์ถ์๋์๊ณ , ์ดํ Maven์์๋ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ src/main/webapp/ ํด๋์ ๋ฐฐ์นํ๋ ๊ตฌ์กฐ๋ฅผ ์ฑํํ๋ฉด์ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ํ์คํ๋ฅผ ์ ๋ํ๋๋ฐ ํฌ๊ฒ ๊ธฐ์ฌํ๋ค. ์๋์์ ์์ธํ ์ดํด ๋ณด๊ฒ ์ง๋ง ๊ฒฐ๊ตญ ์น ๋ฆฌ์์ค๋ค, ์๋ฐ์ฝ๋, ์๋ฐ ํ
์คํธ ์ฝ๋๋ฅผ ๊ฐ๊ฐ ๋ค๋ฅธ ํด๋๋ก ๋ถ๋ฅํ์ฌ ๊ด๋ฆฌํ๋ ค๋ ๋ชฉ์ ์ด๋ค.
Maven/Gradle ๊ธฐ์ค ๊ตฌ์กฐ (ํ๋์ ๊ตฌ์กฐ)
ProjectName/
โโโ src/
โ โโโ main/
โ โ โโโ java/ # ์๋ฐ ์์ค ์ฝ๋
โ โ โโโ resources/ # ์ค์ ํ์ผ ๋ฑ
โ โ โโโ webapp/ # ์น ๋ฆฌ์์ค๋ค (JSP, HTML, ์ด๋ฏธ์ง, CSS)
โ โ โโโ WEB-INF/ # ์๋ธ๋ฆฟ ์ค์ ๋ฑ
โ โ โ โโโ web.xml # ์๋ธ๋ฆฟ ์ค์ ํ์ผ
โ โ โโโ index.jsp # JSP ํ์ผ
โ โ โโโ static/ # ์ ์ ํ์ผ (CSS, JS ๋ฑ)
โโโ pom.xml # Maven ํ๋ก์ ํธ ์ค์ ํ์ผ
Main ํด๋ ์์ชฝ โผ
โกsrc/main/webapp
- ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์น ๋ฆฌ์์ค๋ค์ ์ ์ฅํ๋ ํด๋. WEB-INF ํด๋, index.jsp, ์ ์ ํ์ผ๋ค์ด ๋ค์ด๊ฐ
โก src/main/java
- ์๋ฐ ์์ค ํ์ผ๋ค์ด ์์นํ๋ ํด๋
โก src/test/java
- ํ
์คํธ ์ฝ๋๊ฐ ์์นํ๋ ํด๋
J2EE(Java 2 Platform, Enterprise Edition)์ ์ดํ Java EE ํ์ค์์๋ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ฉด์, ์น ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ webapp ํด๋ ๊ฐ๋
์ด ๋์
๋์๋ค. J2EE๋ 1999๋
์ ๋ฑ์ฅํด์ ์๋ธ๋ฆฟ๊ณผ JSP ํ์ผ์ ํฌํจํ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์กฐ๋ฅผ ํ์คํํ๋ค. ์ดํ Java EE๋ก ๋ฐ์ ํ๋ฉด์ ์ง๊ธ์ ์ํฐํ๋ผ์ด์ฆ๊ธ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ค์ผ๋ก ์๋ฆฌ ์ก์๋ค.
2004๋
Maven์ด ์๋ํ๋ ๋น๋ ์์คํ
์ ๋์
ํ๋ฉด์ src/main/webapp ํด๋๋ฅผ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ก ์ค์ ํ๊ณ , ์ด๋ฅผ ํตํด ์น ๋ฆฌ์์ค(HTML, JSP, ์ด๋ฏธ์ง, JavaScript, CSS ๋ฑ)๋ฅผ ๊ด๋ฆฌํ๊ฒ ๋์๋ค. Maven์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํ์คํํ๊ณ , ๋น๋ ๋ฐ ๋ฐฐํฌ์ ํจ์จ์ฑ์ ๋์๋ค.
์ดํ 2007๋
์ ์ถ์๋ Gradle ๋ฑ ๋ค๋ฅธ ๋น๋ ๋๊ตฌ๋ Maven์ ์ํฅ์ ๋ฐ์ webapp ํด๋๋ฅผ ์ฑํํ์ผ๋ฉฐ, ์ดํ ๋๋ถ๋ถ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ์ด ๊ตฌ์กฐ๊ฐ ํ์ค์ผ๋ก ์๋ฆฌ ์ก์๋ค. ํ์ฌ ์ด ๊ตฌ์กฐ๋ ํ๋ก์ ํธ ํ์ผ๊ณผ ๋ฆฌ์์ค๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ํ์
์ ์ผ๊ด์ฑ์ ์ ๊ณตํ๋ ์ค์ํ ๊ธฐ์ค์ด๋ค.
๊ฒฐ๋ก
WebContent๋ ๊ณผ๊ฑฐ์ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฐฉ์์ด๋ฉฐ ํ์ฌ ์ต์ ๊ธฐ์ ๋ก๋ ๋๋ถ๋ถ /src/main/webapp ์๋ ๋ฆฌ์์ค๋ฅผ ๋๋ค. ์? Maven ๋น๋ ์์คํ ๊ณผ ํธํ๋๋ ๊ตฌ์กฐ์ด๋๊น
์ฐธ๊ณ ์๋ฃ
1. Maven ๊ณต์ ๋ฌธ์: Maven์ ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ฐ ํ์ค์ ๊ดํ ์ค๋ช
์ Maven Documentation ์์ ํ์ธํ ์ ์๋ค.
2. Java EE (Jakarta EE): Java EE์ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์กฐ์ ๋ํ ์ค๋ช
์ Jakarta EE official site์์ ํ์ธํ ์ ์๋ค.
๋ ์ฌ๋์๊ฒ ์์๋ณด๊ณ ์ถ์ ๋ถ๋ค์ โผ
[Web] web.xml ์ค์ ๋ด์ฉ, ์ญํ ๋ฐ ๊ฐ๋จํ ์์ ์ดํดํ๊ธฐ - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
์น ์ดํ๋ฆฌ์ผ์ด์ ํด๋ ๊ตฌ์ฑ๊ณผ URL ๋งคํ
JSP๋ฅผ ์ด์ฉํด์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ค๋ฉด ๊ธฐ์ด ๋ฌธ๋ฒ๋ฟ๋ง ์๋๋ผ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ํด๋ ๊ตฌ์กฐ์ ๋ํด์๋ ์์์ผ ํ๋ค. ์๋ธ๋ฆฟ/JSP ๊ท์ฝ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ํน์ ํด๋ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋๋ก ์
velog.io