코학다식

Java 시작하기 :: 자바란 무엇일까? 본문

Programming/Java

Java 시작하기 :: 자바란 무엇일까?

copeng 2019. 9. 4. 23:40

Java 시작하기(1)

 

1. 자바(Java)란 무엇일까?

 

  • general-purpose 프로그래밍 언어이다.
  • 2019년 현재 가장 인기 있는 프로그래밍 언어이다.

 

 

1-1. 그렇다면, 프로그래밍 언어란 무엇일까?


 

  • 컴퓨터에서 명령을 수행하기 위해 쓰이는 언어이다.
  • 왜 필요할까?
    • CPU는 기계어의 집합을 이해한다.
    • 기계어는 인간이 이해하고, 사용하기에 너무 어렵다!
    • 그래서 프로그래머들은 기계어로 compile 혹은 interpret되고 실행되는 프로그래밍 언어를 사용해서 응용 프로그램을 만든다.

 

 

1-2. 프로그래밍 언어에는 두 가지 종류가 있다.


 

  • Compiled language
    • 컴파일러(compiler)가 전체 프로그램을 읽고 object code(= machine code or binary code)로 변환한다.
    • 실행 시간에 변역할 필요가 없으므로 실행이 빠르다.
    • C, C++, Go 등

 

  • Interpreted language
    • 인터프리터(Interpreter)가 프로그램의 소스 코드를 한 번에 한 줄씩 읽고, 그 라인에 포함된 특정 명령을 수행한다.
    • 코드가 실행 시간에 번역되므로 속도가 느리다.
    • 런타임 동안 명령을 바꿀 수 있어 디버깅/프로토타이핑에 적합하다.
    • Perl, Python 등

 

 

1-3. 그렇다면 자바는 어디에 속할까?


 

  • 자바로 소스 코드를 쓰고 나면, 코드를 컴파일한다.
  • 자바 컴파일러는 byte code를 만들어낸다.
    • 이는 기계어가 아니다!

 

  • byte code를 실행하면, Java Virtual Machine(JVM)에 의해 interpret된다.
    • 빠른 프로세싱을 위해, JVM은 Just-In-Time compilation을 하고 byte code를 기계어로 번역한다.

 

  • 그래서 프로그래머는 윈도우 환경에서 자바 프로그램을 쓰고 코드를 컴파일해도, 리눅스 환경에서 코드를 실행할 수 있다!

 

 

1-4. 자바의 특징


 

  • 객체 지향 언어(Object-Oriented Language)이다.
    • C++보다 깔끔한 문법을 가지고 있다.
    • 헤더 파일, 포인터, 구조체, 유니온(Union) 등이 없다.

 

  • Garbage Collection이 존재한다.
    • garbage collector가 사용되지 않는 메모리 공간을 모아서 프로그래머는 사용되지 않은 메모리 공간을 명시적으로 확인하고 리턴할 필요가 없다.

 

  • 네트워킹과 멀티 스레딩(multi-threading)을 잘 지원한다.
    • 자바는 네트워크 프로그래밍과 멀티 스레딩 프로그래밍을 위한 많은 라이브러리를 제공한다.

 

 

1-5. JVM(Java Virtual Machine)


 

  • 운영체제와 자바 응용 프로그램 사이에 있는 소프트웨어 층이다.
  • 자바 byte code를 실행하기 위한 환경을 제공한다.
  • byte code는 JVM 덕분에 플랫폼에 독립적이다.

Comments