Java 실행

shinebrightly·2023년 3월 8일
0

먼저 자바는 컴퓨터와 대화를 할 수 있는 하나의 수단이고
우리가 대화 하려고 문법을 익혀 어떤 코드를 작성한뒤 실행을 누르면
내부에서 현 시점 으로서는 전혀 알 수 없는 어떤 과정을 거치며
내가 작성한 글이 컴퓨터가 이해할 수 있도록 해석된다.
그리고 우리가 보는 화면에 결과가 보이게 된다.

( 코드 작성 )

( 실행 결과 )


여기서 어떻게 동작 되는가를 최대한 쉽고 간단히 알아볼것이다.
( 개인적으로 처음부터 자세히 알고싶어 공부 했었으나 이해가 안가고 무슨소린가 하다가 금새 까먹었다.
  그래서 나처럼 막 시작하는 단계의 사람이라면 자바를 쭉 훑고
  이후에 자세히 공부하는 것을 추천 하기에 이 글에서는 자세히 설명되지 않을 예정이다. )



실행 = 번역

 
실행은 번역의 과정과 같다.
앞서 말했듯 자바는 하나의 언어이고 아무리 우리가 컴퓨터와 대화하는 언어를 배운다지만
컴퓨터와 바로 대화를 할 수 있는 언어인 것은 아니다.
이 언어는 하나의 중간역할에 불과 하기에 컴퓨터가 이해하기 위한 번역의 과정을 거치게 되기 때문이다.
( 알아둘 것은 컴퓨터는 0 과 1만 이해한다. 그래서 언어를 배워도 바로 대화가 불가능한 것이다. )
우리가 알아볼 것은 번역의 과정과도 같다.

사람 -> 언어를 학습 -> 학습한 언어로 글을 작성
-> 컴파일러라는 변환 프로그램을 통해 바이트코드로 변환
-> 바이트코드를 JVM 이 읽고 기계어로 변환 -> 컴퓨터에 전달

즉, 오늘 알아볼 과정은 컴파일(번역) 과정과 같다.


  1. 컴파일러(번역가)
    우리가 외국인에게 말이 통하지 않을때 번역해주는 사람을 통해 대화를 나누듯이
    이 컴파일러는 기계어로 번역을 해주는 기계라고 생각하면 편할것같다.
    컴파일러(번역가)가 컴파일(번역) 해준다.
    이 자바에서의 컴파일러는 javac 이다.

  2. 바이트 코드
    컴파일러가 번역을 시작하면 우리는 읽을 수 없지만 JVM 이 읽을 수 있는
    특별한 바이트코드로 번역해서 JVM 에 전달한다.
    이 바이트 코드는 실행파일도 아니고, 그렇다고 기계어도 아니다.
    그리고 이 바이트코드를 받은 JVM 이 운영체제로 전달 해준다.
    ( JVM 은 공부를 따로 해야할 만큼 중요하고도 양이 많기에
      지금은 그냥 내부에 있고 최종적으로 컴퓨터에 번역 해주는 기계 정도로 생각하자. )



오늘 설명한 과정은 여기에 해당된다.
코드 -> 컴파일 -> 바이트코드 -> JVM

코드 -> jvm -> 운영체제 -> 하드웨어 ( 최종 )




아마 처음에 딱 봐서는 이해가 안갈수도 있을것같다.
그러나 괜찮다.
지금은 이해가 가지 않아도 자바를 한번 훑고 다시 본다면 자연스럽게 이해가 될거라 생각한다.
이해가 안된다해도 흐름은 알게될것이라 생각한다. ( 나의 경험은 그랬다. )

+++ 만약 조금 더 자세한 부분이 궁금하다면
        검색 키워드 - java 컴파일 과정, javac 컴파일, jvm .. 으로 검색해보길 좋겠다

profile
n번째 공부중

0개의 댓글