프로그램 언어 중 하나인 자바언어에 대해서 기초적인 내용을 알아보자
자바는 JVM에서 실행 되는 객체 지향 프로그래밍 언어다.
🤔 프로그래밍 언어
가 뭐고 JVM
은 뭔가 또 객체 지향
은?? 하나하나 천천히 알아보자
프로그램을 작성하는 언어는 크게 고급 언어와 저급 언어로 나뉠 수 있다.
저급언어 : 컴퓨터가 이해하기 쉬운 이진법(0,1)으로 이루어진 언어 기계어,어셈블리어 등이 있다.
고급언어 : 사람이 이해하기 쉽고, 복잡한 작업이나 알고리즘 등을 표현하기 위해 고안된 언어
프로그래밍을 할땐 고급언어로 작성 된 소스코드를 컴퓨터가 이해할 수 있도록 변환하는 컴파일과정이 반드시 필요하다.
자바 컴파일 과정
사용자🤔 → 소스코드작성💻 → 자바 컴파일러🚩 → 바이트코드로 변환📜 → JVM이 파일을 읽고 프로그램 실행📟
먼저 JVM
이란 Java Virtual Machine의 약자로 직역하면 자바 가상 기계다.
자바가 등장한 배경을 보면 애초에 각기 다른 플랫폼에서 동일한 환경으로 개발을 하기위해 고안된 언어이다.
여기서 다른 플랫폼이란 운영체제(Window, Mac, Linux 등)을 말한다.
그래서 동일한 환경의 개발을 가능케하는게 JVM,자바 가상 머신이다.
각기 다른 운영체제에서 컴파일된 코드는 어떤 JVM에서도 동작시킬 수 있다. 그러나 각각의 운영체제의 JVM은 다르다.
즉, JVM자체는 운영체제에 종속적이다.
그렇다면 JRE
는 뭘까?
JRE는 Java Runtime Environment의 약자로 자바 실행 환경이다.
말 그대로 JVM이 프로그램을 동작시킬 때(런타임 시) 필요한 라이브러리와 기타 파일등을 가지고 있다.
마지막으로 JDK
는 Java Development Kit, 자바 개발 도구다.
JDK는 JRE + 개발을 위해 필요한 도구들을 포함한다.
JVM < JRE < JDK
이처럼 자바는
하나의 언어라기 보다 언어, 컴파일러, 자바 가상 기계등 실행 환경을 모두 갖춘 하나의 플랫폼으로 이해하면 좋다.
자바는 대표적인 객체 지향 프로그램이다. 계속해서 객체 지향, 객체 지향 하는데 간단하게 알아보자
객체 지향에서 객체가 뭘까?
객체는 세상에 존재하는 모든 것이다. 주변에 있는 책, 스마트폰, 마스크 등 모든것이 객체다.
프로그래밍 관점에서 객체란 데이터의 분산을 막기 위해 데이터와 기능을 하나로 묶은 단위다.
각각의 객체가 데이터(상태)와 기능(행위)를 가지고 있다.
그 객체가 다른 객체와 메세지를 주고받고, 데이터를 처리해서 하나의 프로그램을 완성해가는것을 객체 지향 이라 한다.
크게 객체 지향의 특징은 다음과 같다.