Java 의 이해

Java 를 공부하기전 Java 가 어떤 특성을 가졌고, 어떤 환경에서 실행되는지 간략한 개요를 설명한다.

Java 란?

가정용 단말기에 사용하려는 목적으로 만들어진 OAK언어에서 비롯 되었어 만들어진 가장 대표적인 객체 지향 언어이다. 현재 Java 언어는 앱개발, 웹개발 등 에서 사용되는 대표적인 프로그래밍 언어이다.

Java란?

Java 의 특징

  • 이식성이 좋다
    • 컴파일러에 의해 생성된 Java Byte Code는 하드웨어 또는 소프트웨어 플랫폼에서 효율적으로 전송이 가능하다
    • 어떤 환경이든 관계없이 JVM만 설치되어 있다면 Java Byte Code를 실행할 수 있다.
  • 객체지향 언어
    • Java는 대표적인 객체 지향 언어이다.
  • 꾸준한 버젼 업데이트
    • Java는 꾸준한 버젼 업데이트를 제공한다.
    • 최근 버젼 9 까지 제공되었다
    • 버젼 8에서는 함수형 프로그래밍이 추가 되었다.
  • 가비지 컬렉션을 통한 메모리 관리
    • Java는 특별한 메모리 관리를 하지 않아도 가비지 컬렉터가 자동 실행 되어 메모리 공간을 효율적으로 다룰 수 있다.
  • 다양한 어플리케이션 개발
    • Java는 안드로이드 앱부터 웹까지 애플리케이션을 개발하는 전범위적인 프로그래밍 언어로 자리잡았다.

Java 컴파일러

Java 코드는 .java 파일로 작성되어 있다. 이 파일은 사용자가 작성했거나 다른 누군가가 작성한 코드로 사람이 보기 좋은(사람이 알아볼 수 있는) 코드로 되어 있다. 하지만 컴퓨터는 오직 0과 1만 읽을 수 있기 때문에 .java 파일을 읽을 수 없다. _때문에,_ .java 파일을 컴퓨터가 알아볼 수 있는 Java Byte Code 로 변환을 시켜주어야 하는데 이 역할을 담당하는 것이 바로 Java 컴파일러 이다. Java 컴파일러를 거친 .java 파일은 .class 파일로 변환되어 컴퓨터가 알아볼 수 있는 class 파일로 변환된다. 또한, 운영체제에 독립적이기 때문에 운영체제에 가상 머신만 설치되어 있다면 언제든 Java 컴파일러를 실행 가능하다.

자바 가상 머신 JVM (Java Virtual Machine)

자바 가상 머신(이하 JVM)은 운영체제가 _Java 컴파일러_ 에 의해 변환 된 자바 바이트 코드를 실행할 수 있도록 해주는 주체이다. JVM의 가장 큰 장점은 어떤 플랫폼(CPU, OS)에 상관없이 동일한 형태로 _자바 바이트 코드_ 를 실행할 수 있다는 점이다. > JVM이 깔려 있다면 어떠한 컴퓨터 또는 어떠한 환경이든 상관없이 Java Byte Code (class 파일)를 실행할 수 있다.

자바 가상 머신이란?

Java의 동작 원리

  • 우리가 작성한 코드는 소스코드 라고 하고 .java 파일로 생성, 저장 된다.
  • .java 파일을 컴파일러가 .class 파일( Java Byte Code )로 컴파일한다.
  • JVM은 .java 파일을 읽을 수 없지만 컴파일러가 변환한 .class 파일은 읽고 실행할 수 있다

Java 의 역사

1991년 6월 자바는 제임스 고슬링에 의해 탄생했다. 제임스 고슬링의 목표는 C/C++ 스타일의 언어와 가상 머신을 만드는 것이었다.

1995년에 자바 1.0이 공개되었고, ” Write Once, Run Anywhere “ 한번 만들면 어디서든 실행 가능하게 하겠다는 약속과 함께 인기 플랫폼에 무료 런타임을 제공하였다.

자바2의 출현으로 여러 플랫폼에서 사용할 수 있는 설정들이 만들어졌다.

  • Java EE
    • 자바 플랫폼, 엔터프라이즈 에디션
    • 자바를 이용한 서버측 개발을 위한 플랫폼
    • PC에 동작하는 표준 플랫폼인 Java SE에 부가하여, 웹 애플케이션 서버에 기능을 추가한 서버를 위한 플랫폼
    • 명칭이 J2EE 에서 Java EE로 개정된
  • Java SE
    • 자바 플랫폼 스탠더드 에디션
    • 데스크톱 및 서버, 최근 고사양 임베디드 시스템을 위한 표준 자바 플랫폼
  • Java ME
    • 자바 플랫폼, 마이크로 에디션(Java Platform, Micro Edition)은 Java 2 Platform, Micro Edition
    • 자바 ME(Java ME) 혹은 J2ME 등으로도 널리 알려져 있다.
    • 제한된 자원을 가진 휴대 전화, PDA, 세트톱박스 등에서 Java 프로그래밍 언어를 지원하기 위해 만들어진 플랫폼 중 하나를 가리킨다.

Parker - 2017.10.25

Comments