Maven이란?
ChatGPT의 말:
좋은 질문입니다!
Maven(메이븐)은 Java 프로젝트를 관리하고 자동화하는 빌드 도구입니다.
특히 라이브러리(의존성) 관리, 빌드, 테스트, 배포를 일관된 방식으로 처리할 수 있게 해주는 도구입니다.
✅ Maven의 핵심 개념
개념 | 설명 |
---|---|
Build Tool (빌드 도구) | 컴파일, 테스트, 패키징(jar/war), 배포 등을 자동화 |
Dependency Management | 외부 라이브러리(jar)를 자동으로 다운로드 및 관리 |
Project Object Model (POM) | pom.xml 파일로 프로젝트 설정을 정의 |
✅ Maven이 하는 일
- 필요한 라이브러리 자동 다운로드
- 예: Spring, MyBatis, Gson 등의 라이브러리를 pom.xml에 적기만 하면 자동 설치
- 코드 컴파일
- src/main/java의 Java 소스를 컴파일
- 테스트 실행
- src/test/java에 있는 테스트 코드 자동 실행
- 패키징
- .jar, .war 같은 실행 파일로 패키징
- 배포
- 로컬 또는 원격 저장소(레포지토리)로 업로드 가능
✅ Maven 프로젝트 구조 예시
my-app/
├── pom.xml
└── src/
├── main/
│ ├── java/ (Java 소스)
│ └── resources/ (설정 파일 등)
└── test/
└── java/ (테스트 코드)
✅ pom.xml 예시
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<dependencies>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>
</project>
✅ Maven 명령어 예시
명령어 | 설명 |
---|---|
mvn compile | Java 코드 컴파일 |
mvn test | 테스트 실행 |
mvn package | .jar 또는 .war 파일로 패키징 |
mvn clean | 생성된 파일 삭제 |
mvn install | 로컬 저장소에 패키지 설치 |
✅ Maven의 장점
- 개발자가 라이브러리 관리에서 해방
- 프로젝트 구조 및 빌드 표준화
- CI/CD, Jenkins와 연계가 쉬움
- 대규모 팀 개발에 적합
Maven은 Spring, 전자정부 프레임워크, Android(Java 기반), Open API 연동 등 다양한 Java 프로젝트에서 널리 사용됩니다.
'전자정부 프레임워크 공부' 카테고리의 다른 글
Tomcat은? [전자정부 프레임워크] (0) | 2025.05.16 |
---|---|
Eclipse는? [전자정부 프레임워크] (0) | 2025.05.16 |
Spring, MyBatis 란? [전자정부 프레임워크] (0) | 2025.05.16 |
Java란? [전자정부 프레임워크] (1) | 2025.05.16 |
전자정부 프레임워크는? (0) | 2025.05.16 |