본문 바로가기

school of computing/Object-Oriented programming

JAVA | Ch01. Java의 Compile과 Java 시작하기

1. Programming Languages Compilers and Interpreters

 프로그래밍 언어는 Low Level 과 Hight Level로 나눌 수 있다. 
 
Low level Language (저급언어)는 컴퓨터가 이해할 수 있는 언어로 생각하면 된다. ex) binary code, assembly language
High level Language (고급언어)는 사람이 비교적 쉽게 프로그래밍 할 수 있도록 만든 언어로 컴퓨터가 이해하기 힘들다. 때문에 Low level Language로 변환되어야 한다.
 
 
이때! High level language를 Low level Language로 변환 시켜주는것(Translator)을 Compiler or Interpreter이라고 부른다. Compiler에 의해 High level language를 Low leve Language로 변환시키는 것을 '파일을 compile 한다' 라고 한다.
 
컴파일 전 High level language로 적힌 프로그램 또는 코드를 Source code라 부르고, compiler에 의해 만들어진
프로그램 또는 코드를 Object code(program)이라고 부른다.

High level language 가 컴파일러에 의해 machin code로 변환되는 과정 (Compile과정)

 
그럼 이때 Compiler와 Interpreter의 차이점은 무엇일까?
 
Compiler : 특정 프로그래밍 언어로 쓰여 있는 문서(소스코드)를 다른 프로그래밍 언어로 옮기는 프로그램이다.
Interpreter : 프로그래밍 언어의 소스코드를 한줄 단위로 읽어와 바로 실행한다. ex)파이썬
 
전체 소스코드를 한번에 컴파일 하는 Compiler와 달리 Interpreter은 한 줄 단위로 translation과 실행이 번갈아 가면서 되기 때문에 일반적으로  Compiled program이 Interpreted program보다 더 바르다.
 
보통 High Level language로 적힌 프로그램을 compile하기 위해서 언어 또는 컴퓨터 시스템의 타입에 따라 각각 다른 Compiler가 필요하다. 더욱이 새로운 구조 시스템의 제품에 적용하기 위해서는 완전히 새로운 Compiler가 필요하다. 
하지만, JAVA는 다르게 접근한다. 
 
JAVA가 어떻게 이런 문제점을 해결하고 어떻게 접근하는지 알아보자.

2. JAVA의 Compile

일단 간단하게 왜 프로그램 언어, 컴퓨터 시스템 종류에 따라 다른 Compiler가 필요한지 알아보자.
 
OS와 Architecture를 합친 것을 Platform 이라고 하는데 이 platform은 각각 고유의 기계어가 있다. 그렇기 때문에 앱을 다운할때 자신의 OS와 arch를 고르고 그에 맞는 파일을 다운 받는 것이다. Assembly code와 Binary code는 일대일 대응 이기 때문에 compiler또한 platform마다 다르다.
 
자바는 platform마다 다른 컴파일러를 해결하기 위해 JAVA Bytecode를 사용한다.
자바는 compiler가 자바의 소스코드를 바로 machin code로 바꾸지 않고 java program을 Java Bytecode로 변환한다.
Java Bytecode는 JVM(Java Virtual Machine)의 machine language이다. 각 컴퓨터의 machine language가 아니기 때문에 JVM에서 Bytecode를 각 platform에 맞는 machine language로 바꿔줘야 한다.
Java의 독특한 compile방식덕분에 컴퓨터 시스템에 구애받지 않고 프로그래밍을 할 수 있다. >> portability(휴대성)

Java 소스코드 (.java)를 JAVAC compiler에 의해 Byte Code (.class)로 변환하고 JVM으로 각 platform에 맞는 machine language로 변환하여 실행(.exe)한다.
 

3. JAVA 시작하기

Java를 시작하기 위해 IDE 소프트웨어를 다운받아야 한다. IDE software은 Integrated Development Enviroment software의 준말로 이 소프트웨어는 프로그래밍을 위한 다양한 도구를 지원한다. (참고로 나는 IntelliJ를 설치했다.)

 

IntelliJ의 설치 주소

 

최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요

 

www.jetbrains.com

 

위 링크에서 일단 community Edition으로 다운을 하였다.

 

Java에서는 IDE와 별개로 다른 소프트웨어가 또 필요하는데 그것은 JDK(Java Development Kit)이다. 

 

JDK의 설치주소

 

Java Archive Downloads - Java SE 17

WARNING: These older versions of the JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production. For production use Oracle recommends downloading th

www.oracle.com

 

아래 주소에서 자신의 컴퓨터에 맞는 JDK를 설치해주면 된다.

 

JDK는 JRE와 Development Tool로 구성이 되어있다. JRE는 Java Runtime Enbiroment인데 JRE는 JVM과 Library classes로 구성되어있다. Java를 실행하기 위해서는 무조건 JVM이 필요하고 각종 Library classes도 실행하기 위해선 필요하다. 이 외의 개발 도구들까지 전부 포함되어 있는것이 JDK이다. 

JDK구성요소

 

전부 설치를 완료했으면 잘 설치 되었는지 확인이 필요하다.

 

터미널을 열고 각 버전을 확인 한다.

javac -version

: java의 컴파일러의 버전을 확인하는 명령어

 

java -version

: java의 JVM의 버전을 확인하는 명령어

 

잘 설치 됨을 알 수 있다.

 

 


앞으로 열심히 Java정리 해서 올려야지.. 시험기간 전에 꼭 다 적어서 올려야한다 호ㅏ이티잉~~!