4. 자바 실행 환경 : 즐거운 메모장 코딩 2편.
메모장 코딩 1편에서는 'Hello, World' 문자열을 콘솔에 출력하는 예제를 살펴보았다.
2편에서는 앞서 얼렁뚱땅 넘어갔던 컴파일과 관련된 내용을 살펴보려 한다.
프로그래밍 언어에도 등급이 있다.
고급, 저급.
조금의 노력으로 드라마틱한 결과를 만들어낼 수 있어서 고급언어.
엄청난 노력과 시간을 쏟아 Hello World 한 줄 출력해내기 어려워서 저급언어.
라고 하진 않는다.
소스코드를 사람이 이해하기 쉬울수록 고급언어, 기계가 이해하기 쉬울수록 저급언어 라고 한다.
자바 정도면 사람이 이해하기 좋은 언어로 고급언어에 속한다.
잘 와닿지 않는다면 다음 저급언어의 예로 기계어를 구경해보자.
x = 10 + 2 y = x + 4 |
자바 언어에서는 위와 같이 표현할 수 있는 것을 기계어로 작성하면 다음과 같다고 한다.
001001 11101 11101 1111111111111000 001000 00001 00000 0000000000001010 001000 00001 00001 0000000000000010 101011 11101 00001 0000000000000000 001000 00010 00001 0000000000000100 101011 11101 00010 0000000000000100 001001 11101 11101 0000000000001000 |
가독을 위해 4자리씩 끊어 16진수로 표현하면 다음과 같다고 한다.
27BDFFF8 2020000A 20210002 AFA10000 20410004 AFA20004 27BD0008 |
확실히 자바 언어로 작성된 소스가 읽기에 편하다.
문제는 컴퓨터라는 기계는 고급언어가 아닌 저급언어인 기계어를 이해한다는 것이다.
그래서 우리는 고급언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 번역해주는 과정을 거쳐야 한다.
그리고 이 과정을 컴파일이라고 한다.
여기까지만 알아도 좋지만, 자바 언어에 대해 알아가는 만큼 조금만 더 자세히 알아보자.
.java의 확장자를 갖는 자바 프로그램은 컴파일 과정을 거치면 실행 가능한 실행파일(보통 .exe 확장자를 갖는다.)이 아닌
.class 라는 바이트코드 파일이 생성된다.
왜 그런걸까?
앞서 JVM에 대해 언급할 때 소개한 그림을 다시 살펴보며 이해해보자.
자바는 플랫폼의 제약에서 벗어나기 위해 JVM이라는 자바 가상 머신을 사용하고 있다.
그렇기 때문에 자바 소스를 컴파일 하면 실행의 주체인 JVM이 이해할 수 있는 '바이트 코드'라는 파일이 만들어 진다.
이 바이트 코드 파일의 확장자는 .class 를 갖는다.
그리고 자바 프로그램은 플랫폼에 의해 실행의 주체인 JVM을 통해 미리 컴파일 된 class파일을 읽고 실행한다.
이번 포스팅은 메모장 코딩 1편 내용의 약간 보충으로 분량을 적게 잡았다.
그럼 다음 시간엔 IDE 라고 하는 통합 개발 환경 (IDE : Integrated Development Environment) 에 대해 알아보자.
'프로그래밍 언어 > 나 혼자 떠드는 자바' 카테고리의 다른 글
나 혼자 떠드는 자바 : 자바 실행 환경 (조금 더 즐거운 통합 개발 환경) (0) | 2021.05.01 |
---|---|
나 혼자 떠드는 자바 : 자바 실행 환경 (즐거운 메모장 코딩 1편) (0) | 2021.05.01 |
나 혼자 떠드는 자바 : 자바 실행 환경 (자바 설치 방법) (0) | 2021.05.01 |
나 혼자 떠드는 자바 : 자료의 형태(data type) : 상수, 변수, 배열, (구조체), 클래스 그리고 사용자 정의 자료형 (0) | 2021.05.01 |
나 혼자 떠드는 자바 : 자바 언어가 가지는 특징 '배워본 언어가 없는데 어떻게 비교를 해' (0) | 2021.05.01 |