Home 자바란 무엇인가?
Post
Cancel

자바란 무엇인가?

자바란 무엇인가?

자바를 공부하기에 앞서 자바를 왜 써야하는지부터 알아야할거 같다. 그럼 자바가 탄생하게 된 배경부터 알아보자.

자바의 역사

자바는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이며 1995년에 처음으로 출시 되었다.

그렇다면 이러한 언어를 왜 만들었을까? C와 C++ 언어로 된 프로그램을 실행하기 위해서는 컴퓨터가 이해할 수 있도록 기계어로 변환을 해주어야 하며 이를 컴파일러라고 한다. 하지만 CPU의 종류에 따라 기계어가 다르기 때문에 CPU에 맞는 컴파일러가 필요했다. 즉 같은 프로그램이라도 CPU가 다르면 실행하기 위해 해당 CPU에 맞는 컴파일러가 필요했다.

이러한 불편함을 없애고자 고슬링은 코드를 한번 작성하고 어디에서나 실행될 수 있도록 하는 언어를 개발하였고 이것이 Java이다.

자바로 개발된 프로그램은 CPU나 운영 체제의 종류에 관계없이 어디서나 실행할 수 있으며, 이 점이 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기를 끌게 되었다.

철학

자바는 5가지의 핵심 목표를 지닌다.

  • 객체 지향 방법론을 사용
  • 같은 프로그램(바이트코드)이 여러 운영 체제에서 실행될 수 있어야 함
  • 컴퓨터 네트워크 접근 기능이 기본으로 탑재되어야 함
  • 원격 코드를 안전하게 실행할 수 있어야 함
  • 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 함

컴파일 과정

  • C/C++

    스크린샷_2022-05-13_오후_4 02 26

    • C/C++은 특정 CPU의 기계어 코드를 직접 생성하면 생성된 기계어 코드가 메모리에 적재되어 바로 실행된다. 그렇기 때문에 CPU가 달라지면 컴파일러가 달라져야 한다.
  • Java

    스크린샷_2022-05-13_오후_4 07 36

    • java로 작성한 .java 파일을 컴파일 하게 되면 .class파일이 생기고 .class는 JVM이 이해할 수 있는 바이트코드로 이루어진다.
    • JVM(자바 가상 머신)이 바이트 코드를 해석하여 실행한다.
    • JVM의 인터프리터와 JIT 컴파일러는 바이트코드를 각 OS가 실행할 수 있는 기계어로 변환시킨다.
    • 프로세서는 기계어에 따라 동작을 수행한다.
    • 사용자가 본인의 실행환경에 맞는 JVM만 설치한다면 같은 프로그램을 돌릴 수 있다.

JVM이란?

  • Java Virtual Machine으로CPU와 OS에 종속받지 않고 바이트코드를 실행할 수 있는 가상 컴퓨터 머신이다.
  • JVM은 바이트코드를 OS가 이해할 수 있도록 해석해준다.
  • java 파일만 있으면 어느 환경에서든 JVM 위에서 실행할 수 있기 때문에 Java가 플랫폼 독립적 언어가 될 수 있는 이유이다.

바이트 코드란?

  • 바이트코드는 JVM이 이해할 수 있는 저수준 언어이다.
  • 기존의 언어의 컴파일 결과로 생성되는 오브젝트파일(.obj)와 달리 바이트코드(.class)는 모든 플랫폼의 JVM에서 실행이 가능하다.
  • 직접 코드를 짜서 바이트 코드를 확인해보자
    • 다음은 Test라는 class를 만들어 1+2를 출력하는 코드이다.

      스크린샷_2022-05-13_오후_4 21 18

    • .java 파일을 컴파일 하면 .class 파일이 생기고 .class 파일을 javap -c로 열면 다음과 같이 나온다.

      스크린샷_2022-05-13_오후_4 23 35

참고 사이트

[Java] 자바의 컴파일 과정

자바 (프로그래밍 언어) - 위키백과, 우리 모두의 백과사전

This post is licensed under CC BY 4.0 by the author.