본문 바로가기

Programming

[JAVA] JDK 란?JRE 란? 빌드도구란? Ant란? Gradle이란? Maven이란?(build tools)

안녕하세요 ~! 민제로입니당. 오랜만에 올리는 블로그 ,,

감회가 새롭습니다 ,,, 이제 주기적으로 블로깅 잘할거에요 ㅠㅠ 😁

 

요즘 스프링부트로 프로젝트 한참 진행 중인데 

자바에 대해 조금 자세히 조사해봤어요롤

같이 봅시다

 


[JAVA의 개발 환경]

Java SE의 JDK 구조

Java SE의 JDK 구조

 

JDK : Java Development Kit (할아버지)

JDK = JRE + 개발/디버깅 도구

JRE : Java Runtime Environment (아버지)

JRE = JVM + Java 패키지 클래스(util, math, lang, awt, 스윙 등) + 런타임 라이브러리.

JVM : Java Virtual Machine (아들)

JVM = 클래스 로더 시스템 + 런타임 데이터 영역 + 실행 엔진

 

JDK > JRE > JVM
JDK 설치 후 사용자 디렉터리 구조

 

bin/: Java 실행 프로그램이 포함되어 있다.

conf/: 사용자가 편집할 수 있는 구성 파일(configuration files)이 있다.

lib/: 여러가지 supporting 파일이 존재한다. .jar 구성 파일, 속성 파일, 글꼴 등이 있다. 가장 중요한 모듈도 있다. 자바 표준 라이브러리의 .class 파일을 포함하는 모듈이 있다.

 

  • <bin> 디렉터리에 들어있는 주요 개발 소프트웨어
    • javac: 자바 컴파일러, 자바 소스를 바이트 코드로(0과 1) 변환
    • java: 자바 프로그램 실행기, JVM 작동시켜 프로그램 실행
    • javadoc: 자바 소스를 HTML 형식의 API 문서 생성
    • jar: 자바 클래스 파일을 압축한 자바 아카이브(Java Archive) 파일(.jar) 생성 및 관리
    • jmod: 자바의 모듈 파일(.jmod)을 만들거나 모듈 파일의 내용 출력
    • jlink: 응용프로그램에 맞춘 맞춤형(custom) JRE 생성
    • jdb: 자바 응용프로그램의 실행 중 오류를 찾는 데 사용하는 디버거
    • javap: 클래스 파일의 바이트 코드를 소스와 함께 보여주는 디어셈블러

[JAVA Build Tools]

빌드 도구(Build Tool)란?

  • 소스 코드를 컴파일, 테스트, 정적 분석(*static analysis) 등을 실시하여 실행 가능한 애플리케이션으로 자동 생성하는 프로그램
  • 계속해서 늘어나는 라이브러리 자동 추가 및 관리
  • 프로젝트를 진행하며 시간이 지남에 따라 라이브러리의 버전을 자동으로 동기화

*정적 분석(static analysis)은 실제 실행 없이 컴퓨터 소프트웨어를 분석하는 것을 말한다.

 

빌드 도구 종류

각 디렉토리 프로젝트 구조(directory project structure)

  • Ant

  • Maven

  • Gradle

 

 


푸하항 다음 글에서 Maven과 Gradle에 대해 자세히 알아볼게요 ㅎ


[JAVA] 빌드도구(Build Tools)란? Maven, Gradle 차이점, 장단점/spring build tools

 

[JAVA] 빌드도구(Build Tools)란? Maven, Gradle 차이점, 장단점/spring build tools

안녕하세욥 민zero입니다 ㅎ 저번 글에서 자바에 대한 개발 환경, 자바 빌드 도구 종류 등에 대해 알아봤습니다. [JAVA] JDK 란?JRE 란? 빌드도구란? Ant란? Gradle이란? Maven이란?(build tools) [JAVA] JDK 란?J..

min-0.tistory.com