Programming๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

MAVEN

Dodal 2021. 12. 3. 14:12

์šฉ์–ด๋งŒ ์ต์ˆ™ํ•œ ๊ฒƒ๋“ค์ด๋ผ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋‚ด๊ฐ€ ๋‚จ์—๊ฒŒ๋„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ์ตํ˜€๋ณด์ž.

 

MAVEN  ํ”„๋กœ์ ํŠธ ์ „์ฒด์ ์ธ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ, ์ž๋ฐ”์šฉ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œ๋ฅผ ์ž๋™ํ™” ํ•ด์ฃผ๋Š” build tool์ด๋‹ค.

Conversion over Configuration CoC ๊ฐœ๋…์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•  ๋•Œ ์†Œ์ŠคํŒŒ์ผ์€ ์–ด๋–ค ์œ„์น˜์— ์žˆ์–ด์•ผํ•˜๊ณ  ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ๋“ค์€ ์–ด๋–ค ์œ„์น˜์— ์žˆ์–ด์•ผํ•˜๋Š”์ง€ ๋ฏธ๋ฆฌ ์ •ํ•ด ๋†“๋Š” ๊ฒƒ์ด๋‹ค.

 

๋ฉ”์ด๋ธ..์ด๋ผ๊ณ  ํ•˜๋ฉด ํ™˜๊ฒฝ ์„ค์ •์„ ํ•  ๋•Œ, ๋ณต์žกํ•˜๊ณ  ๊นŒ๋‹ค๋กญ๊ฒŒ ... ๋Š๊ปด์ง€๋Š”๋ฐ, ๊ฒฐ๋ก ์ ์œผ๋กœ๋Š” ๋ฐฐํฌ๋ฅผ ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ด๋‹ค!

์ˆ˜๋™์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€๊ณผ ๊ทœ๋ชจ๊ฐ€ ํฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๋” ๋ณต์žกํ•ด์ง€๋Š” ๊ณผ์ •์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ๋‹ค์šด๋ฐ›๊ณ ์ž ๋‚˜์˜จ ๊ฒƒ์ด ๋ฉ”์ด๋ธ์ด๋‹ค.

 

ํ”„์  ์ƒ์„ฑ>๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์ •>์ฝ”๋“œ์ž‘์—…>์ปดํŒŒ์ผ>ํ…Œ์ŠคํŠธ>ํŒจํ‚ค์ง€ ์ƒ์„ฑ>๋ฐฐํฌ>๋ ˆํฌํŒ…(๋ฌธ์„œ์ž‘์—…) = ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—… ๊ณผ์ •์ด๋‹ค.๋ฉ”์ด๋ธ์€ ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๊ฒฝ๋Ÿ‰ํ™” ์‹œ์ผœ์ค„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค.

 

๊ทผ๋ฐ ์ดํด๋ฆฝ์Šค๊ฐ™์€ IDE์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ, ์ด๊ฒƒ๋„ ๋นŒ๋“œํˆด์ธ๊ฐ€? nope...!

IDE๋Š” ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ฐœ๋ฐœ ๋„๊ตฌ์ด๋‹ค.

 

๋นŒ๋“œ ๋„๊ตฌ(Maven/Gradle/Ant), ๋ฒ„์ „ํ˜•์„ฑ๊ด€๋ฆฌ ๋„๊ตฌ(git/cvs), ํ…Œ์ŠคํŠธ ๋„๊ตฌ(JUnit) ๋“ฑ์„ ํ†ต!ํ•ฉ!ํ™˜๊ฒฝ์ด IDE์ด๋‹ค.

 

๋ฉ”์ด๋ธ์œผ๋กœ jarํŒŒ์ผ์„ ๋ณ„๋„๋กœ ๊ณต์œ ํ•˜๊ณ  ์ถ”๊ฐ€ํ•  ์ผ์—†์ด  pom.xml์— ํ•„์š”ํ•œ ๊ฒƒ์„ ๋ช…์‹œํ•ด๋†“์œผ๋ฉด ์ง์ ‘ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์†์‰ฝ๊ฒŒ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

Maven์˜ ์žฅ์ 

1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ ์šฉ์ด

2. ํ”„๋กœ์ ํŠธ ํ…Œ์ŠคํŠธ๋ฅผ ์ง€์›ํ•ด ์ค€๋‹ค.

3. warํŒŒ์ผ ๊ธฐ๋ฐ˜์˜ ๋ฐฐํฌ์šฉ์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.

 

๋ฉ”์ด๋ธ์€ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋™์ž‘ ๋ฐฉ์‹์ด ์ •ํ•ด์ ธ์žˆ๋Š”๋ฐ ์ผ๋ จ์˜ ๋‹จ๊ณ„์— ์—ฐ๊ณ„๋œ goal์„ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์„ build๋ผ๊ณ  ํ•˜๋ฉฐ,

๋ฏธ๋ฆฌ ์ •์˜๋˜์–ด์žˆ๋Š” build๋“ค์˜ ์ˆœ์„œ๋ฅผ ๋ผ์ดํ”„์‚ฌ์ดํด์ด๋ผ ํ•œ๋‹ค.

 

๋ฏธ๋ฆฌ ์ •์˜๋œ ๋นŒ๋“œ ์ˆœ์„œ -> ๋ผ์ดํ”„์‚ฌ์ดํด

๋นŒ๋“œ ๋‹จ๊ณ„ -> phase

๋ชจ๋“  ๋นŒ๋“œ๋‹จ๊ณ„๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ -> Dependency

 

*๋นŒ๋“œ๋ž€ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์ž‘์„ฑํ•œ ์†Œ์Šค์ฝ”๋“œ๋‚˜ ์—ฌ๋Ÿฌ ์ž์›๋“ค(.xml, .jar, .properties)๋ฅผ JVM์ด๋‚˜ ํ†ฐ์บฃ๊ฐ™์€ WAS๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๊ณผ์ • ๋ฐ ๊ฒฐ๊ณผ๋ฌผ์ด๋‹ค.

๋‹จ์ˆœํžˆ ์ปดํŒŒ์ผ ์ž‘์—…์ด ์•„๋‹Œ ํ…Œ์ŠคํŒ…,๊ฒ€์‚ฌ,๋ฐฐํฌ๊นŒ์ง€ ์ผ๋ จ์˜ ์ž‘์—…๋“ค์„ ํ†ต๋“ค์–ด ๋นŒ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.


Maven์ด ์ฐธ์กฐํ•˜๋Š” ์„ค์ • ํŒŒ์ผ

pom.xml

- ์ตœ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ ์œ„์น˜์— ์žˆ๋‹ค. POM( Project Object Model)์„ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ํ”„๋กœ์ ํŠธ ๋‚ด ๋นŒ๋“œ ์˜ต์…˜์„ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

- ์•„ํŒŒ์น˜ ์žฌ๋‹จ์—์„œ ์šด์˜,๊ด€๋ฆฌํ•˜๋Š” ์ค‘์•™ ์ €์žฅ์†Œ(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณต์œ  ํŒŒ์ผ ์„œ๋ฒ„)๋ฅผ ํ†ตํ•ด ์ž๋™ ์˜์กด์„ฑ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ธฐ์—…๋งŒ์˜ ์ค‘์•™ ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

settings.xml : maven tool ์ž์ฒด์— ๊ด€๋ จ๋œ ์„ค์ •์„ ๋‹ด๋‹นํ•˜์—ฌ conf ํด๋” ์•„๋ž˜ ์œ„์น˜ํ•œ๋‹ค. maven ์ž์ฒด ์„ค์ •์„ ๋ฐ”๊พธ๋Š” ์ผ์€ ๋“œ๋ฌผ์–ด pom.xml์— ์กฐ์ž‘ํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•

'Programming๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Ajax (Asynchronous JavaScript and XML)  (0) 2020.10.27