JAVA의 가장 기본이 되는 내용

JAVA란

cwchoiit 2024. 3. 18. 22:32
728x90
반응형
SMALL

참고 자료:

 

김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런

김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바

www.inflearn.com

 

JAVA의 표준 스펙과 구현

JAVA는 표준 스펙과 구현으로 나뉘어진다. 마치 인터페이스와 그 인터페이스를 구현한 구현클래스가 있듯이.

 

그래서 위 그림과 같이 자바는 이런 구조를 가지고 이런 형태로 만들어져야 한다. 라는 표준 스펙을 토대로 여러 회사에서 자바를 만들어낸다. 그리고 각 JDK(자바)는 장단점이 있다. 예를 들어, Amazon Corretto는 AWS에 최적화되어 있다. 그렇다고 한들 자바 구현들은 모두 표준 스펙에 맞도록 개발되어 있어서 오라클 JDK를 사용하다가 Amazon Corretto 자바로 변경해도 대부분은 문제 없이 작동한다. 이게 표준 스펙과 그것을 구현해낸 구현체의 장점이다.

 

컴파일과 실행

자바 프로그램은 컴파일과 실행 단계를 거친다.

위 그림과 같이 순차적으로 진행된다.

  • Hello.java와 같은 자바 소스 코드를 개발자가 작성한다.
  • 자바 컴파일러를 통해 소스 코드를 컴파일한다.
    • 자바가 제공하는 javac라는 프로그램을 사용한다.
    • .java 파일에서 .class 라는 파일이 생성된다.
    • 자바 소스 코드를 바이트코드로 변환하며 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출한다.
  • 자바 프로그램을 실행한다.
    • 자바가 제공하는 java라는 프로그램을 사용한다. (java Hello) << 뒤에 확장자명은 입력하지 않는다.
    • 자바 가상 머신(JVM)이 실행되면서 프로그램이 작동한다.

 

실제로 이것을 해보면 다음과 같다.

자바 소스 코드 작성

자바 소스 코드를 컴파일

 

.class 파일을 실행

 

자바 프로그램 실행 확인

 

인텔리제이와 같은 IDEA에서의 자바 실행 과정

위 과정을 반드시 거쳐야만 자바 소스 코드를 JVM에서 실행할 수 있는데 인텔리제이나 이와 같은 IDEA에서는 저런 과정을 거치지 않았다. 그 이유는 대신 해주기 때문이다.

어떤 파일을 만들고 그 파일을 실행하면 인텔리제이가 자동으로 해당 파일을 컴파일 해준다. 그 파일은 실제로 확인도 가능한데 다음 화면을 보자. 인텔리제이를 사용하면 작성한 소스 코드를 실행하면서 out이라는 폴더에 패키지별로 .class 파일이 보여진다.

 

이 파일을 실제로 열어보면 다음과 같이 .class 파일임을 확인할 수 있다.

그리고 사실 이 파일은 컴퓨터만 읽을 수 있는 컴파일된 파일이고 이 파일을 이런 IDEA로 여는게 아니라 메모장으로 열면 다음과 같이 생겼다.

즉, IntelliJ가 우리를 위해 사람이 읽을 수 있게 Decompile해준것. 여튼 IntelliJ가 우릴 위해 대신 컴파일을 해주고 컴파일된 .class 파일을 실행해준다. 

 

자바와 운영체제 독립성

일반적인 프로그램은 다른 운영체제에서 실행할 수 없다. 예를 들어 윈도우 프로글매은 MAC이나 리눅스에서 작동하지 않는다. 그 이유는 윈도우 프로그램은 윈도우 OS가 사용하는 명령어로 구성되어 있기 때문이다. 해당 명령어는 다른 OS와는 호환되지 않는다.

그러나, 자바 프로그램은 자바가 설치된 모든 OS에서 실행할 수 있다. OS 호환성 문제는 자바가 해결해주기 때문이다.

 

윈도우 자바는 윈도우 OS가 사용하는 명령어들로 구성되어 있고 MAC이나 리눅스 자바도 본인의 OS가 사용하는 명령어들로 구성되어 있기 때문에 어떤 OS이든지 자바 소스 코드만 있다면 본인 OS에 맞게 컴파일해준다는 의미이다. 

 

 

 

728x90
반응형
LIST