YunDaeHyeon
← Lab

πŸ‘¨πŸ»β€πŸ’»λ©”μ΄λΈ(Maven)이 뭘까?

μŠ€ν„°λ””2023.08.01
  • Maven

Maven(메이븐)μ΄λž€?

μ•„νŒŒμΉ˜ μ†Œν”„νŠΈμ›¨μ–΄ μž¬λ‹¨μ—μ„œ κ°œλ°œν•˜λŠ” Java 기반 ν”„λ‘œμ νŠΈμ˜ 라이프사이클 관리λ₯Ό μœ„ν•œ λΉŒλ“œ 도ꡬ이며 컴파일과 λΉŒλ“œλ₯Ό λ™μ‹œμ— μˆ˜ν–‰ν•˜κ±°λ‚˜ μ„œλ²„ Deploy μžμ›μ„ 관리할 수 μžˆλŠ” ν™˜κ²½μ„ μ œκ³΅ν•œλ‹€.
라이브러리 κΈ°λŠ₯을 λ‚΄ν¬ν•˜κ³  μžˆκΈ°μ— settings.xml / pom.xmlνŒŒμΌμ— ν•„μš”ν•œ 라이브러리만 λŒ€μž…ν•˜λ©΄ λ‹€μš΄λ‘œλ“œ 및 μ„€μΉ˜, κ²½λ‘œκΉŒμ§€ μ§€μ •ν•œλ‹€.

νŠΉμ§•

✏️ 1. ν•„μš”ν•œ 라이브러리λ₯Ό pom.xml에 μ •μ˜ν•˜λ©΄ μ‚¬μš©ν•  라이브러리 뿐만 μ•„λ‹ˆλΌ ν•΄λ‹Ή λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μž‘λ™ν•˜λŠ”λ°μ— ν•„μš”ν•œ λ‹€λ₯Έ λΌμ΄λΈŒλŸ¬λ¦¬λ“€κΉŒμ§€ λ‹€μš΄λ°›λŠ”λ‹€.
✏️ 2. 쀑앙 μ €μž₯μ†Œλ₯Ό ν†΅ν•œ μžλ™ μ˜μ‘΄μ„± 관리λ₯Ό 쀑앙 μ €μž₯μ†Œ(μ•„νŒŒμΉ˜ μž¬λ‹¨)λŠ” 라이브러리λ₯Ό κ³΅μœ ν•˜λŠ” File Server라고 λ³Ό 수 있으며 메이븐은 자기만의 쀑앙 μ €μž₯μ†Œλ₯Ό ꡬ좕할 수 μžˆλ‹€.
✏️ 3. κ°„λ‹¨ν•œ 섀정을 ν†΅ν•œ 배포 관리가 κ°€λŠ₯ν•˜λ‹€.

μ„€μ •νŒŒμΌ

  • settings.xml
  • 메이븐 λΉŒλ“œ 툴과 κ΄€λ ¨ν•œ μ„€μ • 파일
  • MAVEN_HOME/conf 디렉토리에 μœ„μΉ˜
  • μ»€μŠ€ν…€ μ„€μ •
  • POM(Project Object Model)
  • pom.xml을 λ§ν•˜λ©° 메이븐을 μ΄μš©ν•˜λŠ” ν”„λ‘œμ νŠΈ root에 μ‘΄μž¬ν•˜λŠ” xml 파일(ν”„λ‘œμ νŠΈ μ΅œμƒμœ„ 폴더에 ν•΄λ‹Ή 파일 생성)
  • ν•΄λ‹Ή κΈ°λŠ₯을 μ΄μš©ν•˜κΈ° μœ„ν•΄ POM이 μ‚¬μš©λ¨.
  • ν•΄λ‹Ή νŒŒμΌμ€ ν”„λ‘œμ νŠΈλ§ˆλ‹€ 1개이며 ν•΄λ‹Ή νŒŒμΌμ— ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  μ„€μ •, μ˜μ‘΄μ„± 등을 μ•Œ 수 μžˆλ‹€.

μž₯점

  1. 컴파일과 λΉŒλ“œλ₯Ό λ™μ‹œ μˆ˜ν–‰ κ°€λŠ₯
  2. μ„œλ²„μ˜ Deploy μžμ›μ„ 관리할 수 μžˆλŠ” ν™˜κ²½μ„ 제곡
  3. pom.xml νŒŒμΌμ„ 톡해 κ΄€λ¦¬ν•˜λ―€λ‘œ 개발, μœ μ§€λ³΄μˆ˜ μΈ‘λ©΄μ—μ„œ μ˜€ν”ˆμ†ŒμŠ€ 라이브러리, ν”„λ‘œμ νŠΈ λ“± 관리가 μš©μ΄ν•¨
  4. IDE에 μ’…μ†λœ 뢀뢄듀을 μ œκ±°ν•  수 있음
  5. Maven Profile κΈ°λŠ₯을 톡해 배포 섀정을 κ΄€λ¦¬ν•˜κ³  생성할 수 있음

단점

  1. Mavenμ—μ„œ 기본적으둜 μ§€μ›ν•˜μ§€ μ•ŠλŠ” λΉŒλ“œ 과정을 μΆ”κ°€ν•΄μ•Ό ν•˜λŠ” 경우 많이 λ³΅μž‘ν•¨
  2. νŠΉμ • ν”Œλ‘œκ·ΈμΈ 섀정이 쑰금만 달라도 ν•΄λ‹Ή 섀정을 λΆ„λ¦¬μ‹œμΌœλ²„λ € 쀑볡 κΈ°μˆ ν•  λ•Œκ°€ λ°œμƒν•¨. μ΄λŠ” λΆˆν•„μš”ν•˜κ²Œ 섀정이 κΈΈμ–΄μ§€κ³  쀑볡, 가독성 μ €ν•˜κ°€ λ°œμƒν•˜μ—¬ μœ μ§€λ³΄μˆ˜μ„±μ„ λ–¨μ–΄λœ¨λ¦Ό.
  3. λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ„œλ‘œ μ˜μ‘΄ν•˜λŠ” 경우 λ³΅μž‘ν•΄μ§„λ‹€.
  4. μƒλŒ€μ μœΌλ‘œ ν•™μŠ΅ μž₯벽이 λ†’λ‹€.
    μœ„μ™€ 같은 단점을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κ·Έλ ˆμ΄λ“€(Gradle)μ΄λΌλŠ” λΉŒλ“œ 툴이 λ“±μž₯ν•˜μ˜€λ‹€.

μ°Έκ³ 

goddaehee