상세 컨텐츠

본문 제목

[자바 CS지식] Java의 빌드와 컴파일러, 링크 차이점

JAVA

by 소란한소란 2024. 3. 13. 20:47

본문

728x90

JAVA 빌드 과정

Java의 빌드와 컴파일러의 차이점 이해

Java 개발 세계에서는 "빌드"와 "컴파일러"라는 용어가 자주 사용되며 종종 같은 의미로 사용됩니다. 그러나 이것들은 소프트웨어 개발 프로세스에서 서로 다른 개념을 나타냅니다. 이 블로그 게시물에서는 Java 개발의 두 가지 중요한 측면 간의 차이점을 살펴보겠습니다.

Java 컴파일러

컴파일러는 사람이 읽을 수 있는 Java 소스 코드를 JVM(Java Virtual Machine)에서 실행할 수 있는 바이트 코드 또는 기계어 코드로 변환하는 전문 도구입니다. 컴파일 프로세스에는 어휘 분석, 구문 분석, 의미 분석, 최적화 및 코드 생성을 포함한 여러 단계가 포함됩니다. 최종 결과는 호환 가능한 JVM이 있는 모든 시스템에서 실행될 수 있는 ".class" 확장자를 가진 컴파일된 파일입니다.


Java 컴파일러에 대한 주요 사항

 

언어 번역: 컴파일러는 개발자가 작성한 Java 소스 코드를 JVM이 이해하고 실행할 수 있는 형식으로 번역합니다.

 

오류 검사: 컴파일하는 동안 컴파일러는 코드의 구문 오류, 논리적 문제 및 기타 잠재적인 문제를 검사합니다.

 

플랫폼 독립성: Java의 "한 번 작성하면 어디서나 실행 가능" 철학은 JVM이 있는 모든 시스템에서 실행될 수 있는 바이트코드를 생성하는 컴파일러의 사용을 통해 부분적으로 달성됩니다.


Java로 빌드

Java의 빌드 프로세스에는 단순한 컴파일 이상의 작업이 포함됩니다. 여기에는 소스 코드, 라이브러리 및 리소스를 배포 가능한 애플리케이션이나 실행 파일로 변환하는 일련의 단계가 포함됩니다. 컴파일러는 빌드 프로세스의 중요한 구성 요소이지만 수행되는 유일한 작업은 아닙니다.


Java 빌드 프로세스의 주요 사항

종속성 관리: 빌드 프로세스는 종속성을 관리하여 필요한 모든 라이브러리와 구성 요소가 사용 가능하고 애플리케이션에 올바르게 통합되도록 합니다.

 

리소스 처리: 리소스 패키징, 파일 압축, 애플리케이션 구조 구성 등의 작업이 포함됩니다.

 

테스트 및 품질 보증: 빌드 프로세스에는 소프트웨어의 안정성을 보장하기 위한 테스트 실행, 정적 코드 분석 및 기타 품질 보증 조치가 포함되는 경우가 많습니다.


링크(Link)

여러개로 분리된 소스파일들을 최종 실행 가능한 파일을 만들기 위해 서로 연결해주는 작업 

- 컴파일 후 Object 파일들이나 다른 파일들을 엮어주는 작업으로 소스코드와 라이브러리들을 연결시켜준다. 

 

정적 링크 : 컴파일된 Object 파일 연결

동적 링크 : 프로그램 실행 중 프로그램 외부에 존재하는 코드를 찾아서 연결


결론적으로, Java 컴파일러는 소스 코드를 실행에 적합한 형식으로 변환하는 역할을 담당하지만 Java의 빌드 프로세스는 컴파일은 물론 종속성 관리, 리소스 처리, 품질 보증과 같은 추가 작업을 포함하는 더 광범위한 활동 집합입니다. . Java 개발자가 애플리케이션을 효율적으로 개발, 테스트 및 배포하려면 Java 빌드 프로세스와 컴파일러 간의 차이점을 이해하는 것이 필수적입니다.

 

 

728x90

관련글 더보기