본문 바로가기

Programming Language/Java

Java 프로그램 개발과 구동

JDK는 플랫폼에 독립적이지 않다. 각 운영체제, 환경 별로 다른 버전이 필요하다. 하지만 각 플랫폼 별로 다른 목적(실행) 파일을 만들지는 않는다. 이에 대해서 알아보자.

Java 프로그램의 개발과 구동

C 언어의 개발과 구동

Java 이전 언어인 C 언어의 소스(코드) 파일 와 목적(실행) 파일은 어땠을까? C 언어는 하나의 소스 파일이 존재하고, 각 플랫폼 별 컴파일러가 해당 플랫폼에서 실행 가능한 목적 파일을 생성한다.

이는 이 전 플랫폼 별 소스 파일, 컴파일러, 목적 파일이 필요하던 어셈블리어 에서 개선된 형태이다.

장점

  • 하나의 소스 파일만 작성하면 된다.

단점

  • 각 플랫폼 별 컴파일러가 필요하다.
  • 각 플랫폼 별 목적 파일이 생성된다.

Java 언어의 개발과 구동

Java는 기존 C 언어의 불편함을 개선했다. 하나의 소스 파일과 하나의 컴파일러가 존재한다. 그렇기 때문에 목적 파일도 플랫폼 별로 동일하다. 컴파일러를 통해 생성된 목적 파일을 각 플랫폼 별 JRE에서 실행 한다.

장점

  • 하나의 소스 파일만 작성하면 된다.
  • 한번의 컴파일로 모든 플랫폼에서 실행 가능한 목적 파일을 생성한다.

정리

  어셈블리어 C Java
목적 파일 어셈블러로 기계어 생성 컴파일러로 해당 운영체제용 기계어 생성 기종이 몇개든 단 하나의 JVM용 기계어 생성
기계어 비교 기계어랑 1:1 대응하는 니모닉 기계어와 m:n 대응하는 수학적 기호 기계어와 m:n 대응하는 수학적 기호
비고 기종별 어셈블러 필요 기종별 컴파일러 필요 단 하나의 컴파일러만 필요
기종별 JRE 세팅 필요(한번만 설치해주면 됨)

 

참조

 

스프링 입문을 위한 자바 객체 지향의 원리와 이해

자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량 애플리케이션 프레임워크인 스프링은 자바와 객체 지향이라는 기반 위에 굳건히 세워져 있다. 따라서 스프링을 제대로 이해하고 활용

www.yes24.com

 

'Programming Language > Java' 카테고리의 다른 글

Mybatis Executor, PreparedStatement  (0) 2021.05.15
JVM, JDK, JRE 란?  (0) 2021.03.10
빌드도구란? (Maven, Gradle)  (0) 2021.02.01