전자정부 프레임워크 공부

Maven이란? [전자정부 프레임워크]

그랜파 개발자 2025. 5. 16. 21:04

Maven이란?

ChatGPT의 말:

좋은 질문입니다!

Maven(메이븐)Java 프로젝트를 관리하고 자동화하는 빌드 도구입니다.
특히 라이브러리(의존성) 관리, 빌드, 테스트, 배포를 일관된 방식으로 처리할 수 있게 해주는 도구입니다.


✅ Maven의 핵심 개념

개념 설명
Build Tool (빌드 도구) 컴파일, 테스트, 패키징(jar/war), 배포 등을 자동화
Dependency Management 외부 라이브러리(jar)를 자동으로 다운로드 및 관리
Project Object Model (POM) pom.xml 파일로 프로젝트 설정을 정의

✅ Maven이 하는 일

  1. 필요한 라이브러리 자동 다운로드
    • 예: Spring, MyBatis, Gson 등의 라이브러리를 pom.xml에 적기만 하면 자동 설치
  2. 코드 컴파일
    • src/main/java의 Java 소스를 컴파일
  3. 테스트 실행
    • src/test/java에 있는 테스트 코드 자동 실행
  4. 패키징
    • .jar, .war 같은 실행 파일로 패키징
  5. 배포
    • 로컬 또는 원격 저장소(레포지토리)로 업로드 가능

✅ 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 프로젝트에서 널리 사용됩니다.