티스토리 뷰

Java

자바 - Maven(메이븐), pom.xml 이 뭐지??

Kodong's blog 2025. 10. 10. 09:46

자바 프로젝트를 생성할 때, 메이븐과 그레들과 같은 무언가(?)들을 선택하는 옵션창이 항상 있었다.

현재 내가 공부하고 있는 책에서 메이븐을 사용하길래, 별 생각없이 메이븐을 사용하고 있었는데, 오늘 메이븐과 관련된 문제를 만나서 메이븐이 뭔지에 대해서 간단하게 정리해보려한다.

 

메이븐이란,

Apache Maven is a software project management and comprehension tool. Based on the concept of a Project Object Model (POM), Maven can manage a project's build, reporting, and documentation from a central piece of information.

 

이다. 

좀 더 쉽게 써보자. ( 쉬운 설명이 최고다 ㅋㅋ)

Maven은 프로젝트의 생명주기 전반을 자동화하고, 의존성과 빌드 환경을 선언적으로 관리하는 자바 기반 프로젝트 관리 도구이다. 

 

간단하게 말해서, 우리가 프로젝트를 관리하기 위해서 해야하는 귀찮은(?) 일들을 메이븐이 해준다.

정확히 어떤 일을 하는지는 간단하게 GPT 형님께 표를 만들어 달라고 했다.

 

( 역할-설명-예시 순이다. )

📦 의존성 관리 외부 라이브러리 자동 다운로드 spring-boot-starter-web
⚙️ 빌드 자동화 코드 → JAR 자동 변환 mvn package
🧪 테스트 자동화 JUnit 테스트 자동 실행 mvn test
🚀 배포 결과물 서버에 올리기 mvn deploy
🔌 플러그인 시스템 기능 추가 spring-boot-maven-plugin
📁 표준 구조 폴더 체계 통일 src/main/java 구조

 

여기서 간단하게 의존성 관리 역할에 대해서 설명하겠다.

 

우리가 외부 라이브러리를 다운 받으려면, 그 라이브러리 소스 코드가 들어있는 폴더를 웹이든 어디서 다운받아, lib 폴더에 넣고, 클래스패스 설정같은 걸 해야한다.

→ 귀찮다!!!!

 

 

그래서 

"""
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
"""

이렇게 pom.xml에 한 줄만 적으면,

Maven이 알아서 인터넷 중앙 창고(= Maven Central Repository)에 가서
해당 라이브러리를 찾아 자동으로 다운로드하고 연결해준다!!

 

즉, 메이븐은 이런 작업들을 자동화 해주는 "도구"인 셈이다.

 

 

또, pom.xml 파일( Project Object Model (프로젝트 객체 모델) )은 

Maven이 프로젝트를 관리하기 위한 설정 파일(configuration file)이다.

 

쉽게 말하자면, 

"이 프로젝트가 어떤 건지, 어떤 라이브러리를 쓰는지, 어떻게 빌드할지"
를 Maven에게 알려주는 설명서 + 명령서이다. 

 

Maven의 모든 행동은 이 pom.xml 을 기반으로 이루어 진다고 하니, 매우 중요한 파일인 것은 확실하다,

 

 

----------------------------

while (alive) {
	if	(me.dead) {
    	break
    } else {
    	me.study();
    }
}

(= 공부쳐하자)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함