자바 시작하기

yuriyaam·2021년 1월 4일
1

Java

목록 보기
1/6
post-thumbnail

01. 프로그래밍 언어

인간은 자연어를 이해하지만, 컴퓨터는 0과 1만 이해할 수 있다.
따라서 인간과 컴퓨터 사이를 연결할 수 있는 매개체인 프로그래밍 언어가 필요하다.

보통 프로그래밍 언어는 고급 언어를 의미하며, C, C++, Java 등이 있다.

이 고급언어로 작성된 소스코드는 컴퓨터에서 바로 실행할 수 없기 때문에, 컴파일러라는 시스템 소프트웨어를 이용해 기계어로 구성된 실행코드로 변환해야 한다.

02. 자바의 역사와 특징

자바는 선마이크로시스템즈의 제임스 고슬링이 이끄는 연구팀이 개발했다.
소프트웨어마다 운영체제가 다르면 서로 호환되지 않는데, 제임스 고슬링은 운영체제와 자바 프로그램 사이에 중계자 역할을 하는 가상 머신(virtual machine)을 만들어 모든 운영체제에서 프로그램이 작동되도록 했다.

📌 자바의 특징

  • 단순하다.
  • 객체 지향 언어이다.
  • 함수형 코딩을 지원한다.
  • 플랫폼 독립적이다.
  • 분산 처리를 지원한다.
  • 견고, 안전하다.
  • 이식성이 좋다.
  • 멀티스레딩을 지원한다.
  • 동적이다.

자바의 특징중, '플랫폼 독립적이다.'는 가상 머신의 역할WORA(Write Once, Run Anywhere) 라는 자바 표어와 일맥상통한다.

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

고급 언어로 작성한 프로그램은 컴퓨터가 이해할 수 있도록 컴파일해야 한다.
하지만 하드웨어나 소프트웨어 환경인 플랫폼에 따라 프로그램을 다르게 컴파일해야 한다.

WHY

1) 하드웨어 아키텍처(CPU)에 따라 사용하는 기계어 종류가 다르다.
2) 운영체제마다 사용하는 애플리케이션 프로그래밍 인터페이스(API)와 실행 파일 형식이 다르다.
3) 프로그램을 실행하려면 운영체제가 제어하는 메모리를 사용해야 하는데, 운영체제마다 메모리를 관리하는 방식이 다르다.

반면, 자바 프로그램은 자바 가상 머신(JVM) 개념을 도입했기 때문에 플랫폼에 독립적이다.

JVM의 개념이 어렵다면, 예를 들어보자.

국제회의에서 한국어로 연설을 한다면 대부분이 알아듣지 못한다.
이때 자국어와 영어에 능통한 통역관과 한국어를 영어로 번역하는 번역기가 있다면 한국어 연설을 모든 참가자가 이해할 수 있을 것이다. 번역기가 영어로 번역을 해주면, 통역관이 각 나라에게 통역해주는 것이다.
여기서 번역기 = 컴파일러, 통역관 = JVM 이라고 생각한다.



** 도서 '쉽게 배우는 자바 프로그래밍'을 참고하여 작성하였습니다.

0개의 댓글