๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Environment·Tool

IntelliJ JAVA ์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐฉ๋ฒ• (+ Maven, Tomcat)

by Leica 2020. 4. 7.
๋ฐ˜์‘ํ˜•

IntelliJ JAVA ์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐฉ๋ฒ• (+ Maven, Tomcat)

์ด์ „์— ์ž‘์„ฑํ–ˆ๋˜ [JAVA ์›น ๊ฐœ๋ฐœํ™˜๊ฒฝ] IntelliJ + Tomcat ์—ฐ๋™ ๋ฐฉ๋ฒ• ๊ธ€์„ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ๋ถ„๋“ค์ด ๋ด์ฃผ์…”์„œ ์ด๋ฒˆ ๊ธ€์—์„œ ๋‚ด์šฉ์„ ๋ณด๊ฐ•ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. IntelliJ๋กœ JAVA ์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด์„œ Maven ๊ธฐ๋ฐ˜์˜ ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ๋‹ค๋ฃจ์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ค€๋น„ํ•ด์•ผ ํ•  ๊ฒƒ๋“ค

JAVA๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์‚ผ์•„ ํ•ญ๋ชฉ ๋ณ„๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์˜ ๋งํฌ๋ฅผ ๋‹ฌ์•„๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์ฐฝ์œผ๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

 

๋ณธ ๊ธ€์—์„œ๋Š” IntelliJ IDEA๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์ฐธ๊ณ ๋กœ JAVA IDE๋กœ๋Š” Eclipse, IntelliJ IDEA, Net Beans์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.)

๋”ฐ๋ผ์„œ IDE๋Š” IntelliJ๋ฅผ ์ค€๋น„ํ•˜์‹œ๋ฉด ๋˜๋Š”๋ฐ์š”, IntelliJ๋Š” ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋Š” Community ๋ฒ„์ „๊ณผ ์œ ๋ฃŒ์ธ Ultimate ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” Ultimate ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

๊ต์œก ๋ผ์ด์„ผ์Šค๋กœ Ultimate ๋ฒ„์ „์„ ๋Œ€๋žต 1๋…„์ •๋„ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋‹น์žฅ ๊ตฌ๋งคํ•  ์ƒ๊ฐ์ด ์—†๊ฑฐ๋‚˜ ๊ตฌ๋งค๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ถ„๋“ค์€ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์ค€๋น„ํ•ด์ฃผ์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ต์œก ๋ผ์ด์„ผ์Šค๋ฅผ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์€ ์ด ๊ธ€(IntelliJ IDEA - ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ต์œก ๋ผ์ด์„ผ์Šค ๋ฐ›๋Š” ๋ฐฉ๋ฒ•)์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

 

์ด ๊ธ€์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐฉ๋ฒ•, ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ๋‹ค๋ฃจ์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. IntelliJ์— ์„ธํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃฐ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜น์‹œ๋‚˜ ํ–ฅํ›„ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ์ถ”๊ฐ€๋กœ ๋งํฌ ๊ฑธ์–ด๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋ง์”€๋“œ๋ฆฌ์ž๋ฉด ์œˆ๋„์šฐ ์‚ฌ์šฉ์ž ๋ถ„๋“ค์€ ์œ„์— ๊ฑธ์–ด๋‘” ๋‹ค์šด๋กœ๋“œ ๋งํฌ์—์„œ ๋ฐ›์•„์„œ ์„ค์น˜ํ•˜์‹œ๋ฉด ๋˜๊ณ  ๋งฅOS ์‚ฌ์šฉ์ž ๋ถ„๋“ค์€ homebrew ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

IntelliJ, JDK, Maven, Tomcat์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ณ  ์„ค์น˜๋ฅผ ๋งˆ์น˜์…จ์œผ๋ฉด ์ด์ œ ํ•˜๋‚˜์”ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด ๋ด…์‹œ๋‹ค.

์ฐธ๊ณ ๋กœ ์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ„์ „์€ IntelliJ Ultimate 2019, JDK11, Maven 3.6.3, Tomcat 9 ์ž…๋‹ˆ๋‹ค.

 

IntelliJ JDK ์„ค์ •

๋จผ์ € IntelliJ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

IntelliJ Weblcom Page

 

์šฐ์ธก ํ•˜๋‹จ์˜ Configure๋ฅผ ํด๋ฆญํ•˜๊ณ  Structure for New Projects๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

์ƒ๋‹จ์˜ [+] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์šฐ์ธก์— JDK์˜ ์ด๋ฆ„๊ณผ home path๋ฅผ ์„ค์ •ํ•˜๋Š” ์ฐฝ์ด ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.

Name์— JDK ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  JDK home path์— ์„ค์น˜ํ•œ JDK์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

JDK ์ด๋ฆ„์€ ์ž์‹ ์ด ์•Œ์•„๋ณด๊ธฐ ํŽธํ•œ ๊ฑธ๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๋‹ค ์ž…๋ ฅํ–ˆ์œผ๋ฉด [OK]๋ฅผ ํด๋ฆญํ•ด์„œ JDK ์„ค์ •์„ ๋งˆ์นฉ๋‹ˆ๋‹ค.

 

 

IntelliJ Maven ์„ค์ •

IntelliJ์—๋Š” Maven์ด ๋‚ด์žฅ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์•„๋„ Maven ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด์žฅ๋œ ๋ฒ„์ „๊ณผ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

IntelliJ ์ดˆ๊ธฐ ํ™”๋ฉด(Welcom Page)์—์„œ ์ด๋ฒˆ์—๋Š” Preferences(์œˆ๋„์šฐ์˜ ๊ฒฝ์šฐ Settings)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

์ขŒ์ธก ๋ฉ”๋‰ด์—์„œ Build, Execution, Deployment - Build Tools - Maven์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Maven home directory์— ๋ณด์‹œ๋ฉด ์ด๋ฏธ IntelliJ ๋‚ด์žฅ Maven์ด ์„ค์ •๋ผ์žˆ๋Š”๊ฒŒ ๋ณด์ด์‹œ์ฃ ?

IntelliJ IDEA 2019.3.4 ๋ฒ„์ „์—๋Š” Maven 3.6.1 ๋ฒ„์ „์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ฅผ OS์— ์„ค์น˜ํ•œ ๋ฒ„์ „์œผ๋กœ ๋ฐ”๊พธ๋ ค๋ฉด Bundled (Maven 3) ์šฐ์ธก์˜ ๋“œ๋กญ๋‹ค์šด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์ด์™€ ๊ฐ™์ด IntelliJ์—์„œ ์ž๋™์œผ๋กœ Maven ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ธ์‹ํ•ด์„œ ์„ ํƒ ํ•ญ๋ชฉ์— ๋œน๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ฒ„์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

OS ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ์‹๋˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ๋œจ์ง€ ์•Š๋Š”๋‹ค๋ฉด ์šฐ์ธก [...] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์„œ path๋ฅผ ์ง์ ‘ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ง์ ‘ ์„ค์น˜ํ•œ Maven 3.6.3 ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜์ž ์•„๋ž˜์— Version์ด 3.6.3์œผ๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ Maven ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

[Apply]๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

Preferences(Settings)์—์„œ ํ†ฐ์บฃ ์„ค์ •๋„ ํ•ด์ค„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฐฝ์„ ๋‹ซ์ง€ ๋ง๊ณ  ๋‹ค์Œ ์Šคํ…์œผ๋กœ ์ด๋™ํ•ฉ์‹œ๋‹ค.

 

 

IntelliJ Tomcat ์„ค์ •

์ด๋ฒˆ์—” ์ขŒ์ธก ๋ฉ”๋‰ด์—์„œ Build, Execution, Deployment - Application Servers ํด๋ฆญํ•˜๊ณ  [+] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

Tomcat Server๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

 

Tomcat Home์— ์„ค์น˜ํ•œ ํ†ฐ์บฃ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ •์ƒ์ ์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ๋‚˜๋ฉด ์•„๋ž˜์— Tomcat Version: 9.0.33๊ณผ ๊ฐ™์ด ๋ฒ„์ „์ด ๊ฐ์ง€๋˜์„œ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

[OK]๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

ํ†ฐ์บฃ ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ Preferences(Settings)์—์„œ ํ•  ์„ธํŒ…์€ ๋ชจ๋‘ ๋๋‚ฌ์œผ๋‹ˆ [OK]๋ฅผ ํด๋ฆญํ•ด์„œ ์ €์žฅํ•˜๊ณ  ๋‹ซ์Šต๋‹ˆ๋‹ค.

 

 

์ฒซ ๋ฒˆ์งธ ์›น ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ

Maven ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ๋กœ ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ˜น์‹œ ๋นŒ๋“œ ํˆด ์—†์ด ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ์„ธํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์‹œ๋ ค๋ฉด ์ด์ „ ๊ธ€์„ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

IntelliJ ์ฒซ ํ™”๋ฉด์—์„œ Create New Project๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

์ขŒ์ธก์—์„œ Maven์„ ์„ ํƒํ•˜๊ณ  ์ƒ๋‹จ์— Create from archetype์— ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.

Apache(Maven)์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๋ชฉ๋ก์—์„œ org.apache.maven.archetypes:maven-archetype-webapp์„ ์„ ํƒํ•˜๊ณ  Next๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

Name, ArtifactId์—๋Š” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

Location์—๋Š” ํ”„๋กœ์ ํŠธ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

GroupId์—๋Š” ํŒจํ‚ค์ง€ ์ด๋ฆ„๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๊ฐœ์ธ, ๋‹จ์ฒด, ๊ธฐ์—…์˜ ๋„๋ฉ”์ธ์„ ๊ฑฐ๊พธ๋กœ ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‹ค ์ž…๋ ฅํ•˜์…จ์œผ๋ฉด Next๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉํ•  Maven์„ ์„ ํƒํ•˜๊ณ  Finish๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

Maven webapp ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ํ™”๋ฉด

Maven ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™” ์ž‘์—…์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

์™„๋ฃŒ๋˜๋ฉด ์ฝ˜์†”์— BUILD SUCCESS๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

archetype์„ ์‚ฌ์šฉํ•ด์„œ ๋งŒ๋“ค์—ˆ์œผ๋ฏ€๋กœ pom.xml ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜๋Š”๋ฐ ๊ทธ์— ๋”ฐ๋ผ ์šฐ์ธก ํ•˜๋‹จ์— Maven projects need to be imported ๋ฉ”์‹œ์ง€๊ฐ€ ๋œน๋‹ˆ๋‹ค.

์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์œผ๋กœ Import Changes์™€ Enable Auto-Import๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ ๋ณดํ†ต Enable Auto-Import๋ฅผ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

pom.xml์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•ด์„œ ์ ์šฉํ•˜๋„๋ก ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

Import Changes๋ฅผ ์„ ํƒํ•˜๋ฉด pom.xml์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์ˆ˜๋™์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋„๋ก ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. (๊ต‰์žฅํžˆ ๊ท€์ฐฎ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ต)

 

Enable Auto-Import๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‚˜๋ฉด ์ž ์‹œ ํ›„ ์ด์ „์— pom.xml์— ์„ค์ •๋ผ์žˆ๋˜ ์˜์กด์„ฑ์ด ์—†์–ด์„œ ๋ฐœ์ƒํ–ˆ๋˜ ์˜ค๋ฅ˜ ํ‘œ์‹œ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

JAVA ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•œ๋‹ค๋Š” ๊ฒƒ์€ Servlet/JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Servlet API ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

pom.xml์˜ <dependencies> ์•ˆ์— ๋‹ค์Œ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

 

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0.1</version>
  <scope>provided</scope>
</dependency>

์—ฌ๊ธฐ์„œ <version> ํ•ญ๋ชฉ์€ ํ†ฐ์บฃ ๋ฒ„์ „ ๋ณ„ ์„œ๋ธ”๋ฆฟ ์ŠคํŽ™์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ†ฐ์บฃ ๋ฒ„์ „์— ๋งž์ถฐ์„œ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ํ†ฐ์บฃ 9๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํ†ฐ์บฃ 9๋Š” ์„œ๋ธ”๋ฆฟ 4.0์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์ด ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฒ„์ „์€ ๋‹ค์Œ ํ‘œ์˜ Servlet Spec ํ•ญ๋ชฉ๊ณผ Apache Tomcat Version ํ•ญ๋ชฉ์„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

ํ‘œ - Tomcat Spec

 

์›น ํ”„๋กœ์ ํŠธ์— ํ†ฐ์บฃ ์—ฐ๋™ํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ

๊ฐ„๋‹จํžˆ Servlet๊ณผ JSP๋ฅผ ํ•˜๋‚˜์”ฉ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋œ index.jsp ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ์ธก๊ณผ ๊ฐ™์ด Hello JSP! ๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํŽธ์ง‘ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ด ํ”„๋กœ์ ํŠธ์— ํ†ฐ์บฃ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์šฐ์ธก ์ƒ๋‹จ์˜ Add Configuration...์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

์ขŒ์ธก ์ƒ๋‹จ์— [+] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  Tomcat Server - Local์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ, ์•„๊นŒ Preferences์— ์„ค์ •ํ•œ ํ†ฐ์บฃ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ์„ ๋ณด์‹œ๋ฉด Application Server์— Tomcat 9.0.33์ด ์ž๋™์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”๊ฒŒ ๋ณด์ด์‹œ์ฃ ?

IntelliJ์— ์„ค์ •๋˜์–ด ์žˆ๋Š” ํ†ฐ์บฃ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ ์ด ๊ณณ์˜ ๋“œ๋กญ๋‹ค์šด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์•„๋ž˜ ํฌ๋กฌ ์•„์ด์ฝ˜์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์‹œ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•  ๋ธŒ๋ผ์šฐ์ €์ž…๋‹ˆ๋‹ค.

์›ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

URL, VM options, HTTP port ๋“ฑ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ๋”ฐ๋กœ ๋ณ€๊ฒฝํ•  ๊ฒƒ์€ ์—†๊ณ , ํ•˜๋‹จ์— ๋ณด๋ฉด ๐ŸšจWarning: No artifacts marked for deployment ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด ํ†ฐ์บฃ์— deployํ•  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์ •๋ผ์žˆ์ง€ ์•Š๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

์šฐ์ธก์˜ Fix ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฌ๋ฉด ์œ„์™€ ๊ฐ™์ด :war์™€ :war exploded ๋‘ ๊ฐ€์ง€ ์„ ํƒ ๋ฉ”๋‰ด๊ฐ€ ๋œน๋‹ˆ๋‹ค.

:war๋Š” first-web-app์„ war๋กœ ๋ง์•„์„œ ์ด ํ†ฐ์บฃ์— ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด๊ณ  :war exploded๋Š” ํ’€์–ด์„œ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

:war exploded๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

 

์„ ํƒํ•œ ์˜ต์…˜์œผ๋กœ artifact๊ฐ€ ๋ฐฐํฌ ์„ค์ • ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‹จ Application context์— ์ž๋™์œผ๋กœ /first_web_app_war_exploded๋ผ๊ณ  ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌ๋ฉด http://localhost:8080/first_web_app_war_exploded๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ๊ท€์ฐฎ์œผ๋ฏ€๋กœ /first_web_app์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Application context์— /first_web_app ๋˜๋Š” ์›ํ•˜๋Š” context ๋ช…์„ ์ž…๋ ฅํ•˜๊ณ  [OK]๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

ํ•˜๋‹จ์— Services ์ฐฝ์— ์ƒˆ๋กœ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

์ด์ œ Tomcat ์—ฐ๋™์ด ์™„๋ฃŒ๋์Šต๋‹ˆ๋‹ค.

์šฐ์ธก ์ƒ๋‹จ์˜ Run ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Run์„ ์‹คํ–‰ํ•˜๋ฉด ์ž๋™์œผ๋กœ build๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

 

์‹คํ–‰ ๊ฒฐ๊ณผ

ํ†ฐ์บฃ ์‹คํ–‰ ํ™˜๊ฒฝ ์„ค์ • ์‹œ Open browser - After launch์— ์ฒดํฌํ•˜๋ฉด ์‹คํ–‰ ์‹œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €์— http://localhost:8080/first-web-app๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค.

 

[์ฐธ๊ณ ] ํ†ฐ์บฃ ์„œ๋ฒ„ ๋กœ๊ทธ์˜ ํ•œ๊ธ€์ด ๊นจ์งˆ ๊ฒฝ์šฐ

์•„๋งˆ OS์˜ ์–ธ์–ด ์„ค์ •์ด ํ•œ๊ตญ์–ด์ด๋ฉด ํ†ฐ์บฃ ์‹คํ–‰ ์‹œ ์ถœ๋ ฅ๋˜๋Š” ๋กœ๊ทธ์˜ ํ•œ๊ธ€์ด ๊นจ์งˆ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ†ฐ์บฃ ๋กœ๊ทธ๊ฐ€ ์˜์–ด๋กœ ์ถœ๋ ฅ๋˜๋„๋ก ์„ค์ •ํ•˜๋˜์ง€, ์ธ์ฝ”๋”ฉ์„ UTF-8๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ์„œ ์ด๊ณณ์— ๋”ฐ๋กœ ์จ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€