개발을 하면서 대충 알고는 있지만 정확히 알지 못한다는 느낌이들어 정리를 해보려고 합니다.
🛠️ 빌드(Build), 컴파일(Compile), 및 실행(Run) 이해하기
자바 개발 과정에서 중요한 세 가지 단계인 빌드, 컴파일, 실행에 대해 알아보겠습니다.
🔨 컴파일(Compile)
컴파일은 자바 소스 코드(.java
파일)를 바이트코드(.class
파일)로 변환하는 과정입니다. 이는 javac
컴파일러를 사용하여 수행됩니다.
// Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
컴파일 명령어:
javac Hello.java
🏗️ 빌드(Build)
빌드 과정은 프로젝트의 소스 코드를 컴파일하는 것을 포함하여, 의존성을 관리하고, 코드를 테스트하며, 애플리케이션을 패키징하는 전체적인 과정을 말합니다. 빌드는 프로젝트를 최종적으로 실행 가능한 상태로 만들기 위한 일련의 단계를 포함합니다.
빌드 과정에 컴파일 포함
빌드 과정 중 컴파일 단계
는 첫 번째 주요 단계입니다. 컴파일이 성공적으로 완료된 후, 추가적인 빌드 단계가 진행될 수 있습니다:
의존성 관리: 프로젝트가 필요로 하는 외부 라이브러리나 프레임워크를 다운로드하고 관리합니다.
자동 테스트 실행: 단위 테스트나 통합 테스트를 실행하여 코드의 정확성을 검증합니다.
패키징: 컴파일된 바이트코드와 리소스 파일을 JAR 또는 WAR 파일과 같은 배포 가능한 형태로 패키징합니다.
🚀 실행(Run)
컴파일된 자바 프로그램을 실행하는 단계입니다. java 명령어를 사용하여 .class 파일을 JVM에서 실행합니다.
java Hello
📦 Maven, JAR, WAR 이해하기
자바 프로젝트 관리와 빌드를 위한 도구인 Maven과 패키징 형식인 JAR, WAR에 대해 알아보겠습니다.
🧰 Maven
Maven은 프로젝트 빌드, 의존성 관리, 플러그인을 통한 확장 기능을 제공하는 도구입니다. pom.xml 파일에서 프로젝트 설정을 관리합니다.
Maven 프로젝트 빌드 명령어:
mvn package
📦 JAR(Java Archive)
JAR 파일 형식은 자바 클래스, 메타데이터, 리소스 파일을 압축한 아카이브 파일입니다. 주로 라이브러리 배포나 독립 실행 가능한 애플리케이션으로 사용됩니다.
🌐 WAR(Web Application Archive)
WAR 파일 형식은 웹 애플리케이션의 자바 클래스, JSP, 리소스, 메타데이터 등을 포함합니다. 웹 서버나 애플리케이션 서버에 배포됩니다.
🔄 Maven 빌드 프로세스
Maven을 사용한 빌드 프로세스 예시입니다. 여기서는 Maven을 이용해 간단한 자바 애플리케이션을 컴파일하고, 패키징하는 과정을 보여줍니다.
<!-- pom.xml -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- 의존성 추가 예시 -->
</dependencies>
</project>
# Maven 빌드 및 패키징
mvn package
'Java' 카테고리의 다른 글
[JAVA]Java에서의 Deque 소개 (0) | 2024.04.30 |
---|---|
[JAVA] 컬렉션 정렬 방법 (1) | 2024.04.27 |
[JAVA] serialVersionUID 사용 이유와 예시 (0) | 2024.02.28 |
[JAVA] POI사용 MVC ExcelUpload 방법 (0) | 2023.04.21 |
Spring boot maven project 만들기 (0) | 2023.02.14 |