우리는 흔히 '프로그래밍 언어'를 생각하면 C/C++, Python, Java와 같은 고급언어를 떠올린다.
고급언어란 기계보다 사람에 더 가까운 언어로 사람이 이해하기 쉽고,
복잡한 작업이나 자료 구조, 알고리즘을 표현하기 위해 개발된 언어이다.
" 절차 지향 언어 VS 객체 지향 언어 "
이 고급 언어는 절차 지향 언어 와 객체 지향 언어로 구분 지을 수 있다.
절차 지향 언어 란 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 언어이다.
순차적인 처리가 중요한 언어라고 할 수 있다. 대표적으로 C언어가 그렇다.
객체 지향 언어 란 프로그램을 여러 개의 독립된 단위,
즉 "객체"들의 모임으로 구성하여 만드는 프로그래밍 언어이다. 대표적으로 Java가 그렇다.
" 플랫폼 종속성 VS 플랫폼 독립성 "
인텔사의 CPU를 가진 리눅스 환경에서 C/C++을 사용해 프로그램 개발을 했다고 가정해보자.
이 프로그램을 컴파일한 기계어는 인텔 CPU와 리눅스 운영체제를 가진 컴퓨터에서는 실행되지만,
Apple의 MAC이라거나, 윈도우 운영체제 등에서는 실행되지 않는다.
이러한 문제는 다음과 같은 이유로부터 야기된다.
- 운영체제마다 실행파일 형식이 다르다. |
- 운영체제마다 API가 다르다. |
- 기계어가 CPU마다 다르다. |
이러한 이유때문에 C와 같은 언어에서는 플랫폼으로부터 자유롭지 못한, 플랫폼 종속성의 성격을 갖는다.
반면 플랫폼 독립성을 가진 Java는 프로그램을 '바이트코드'라는 것으로 컴파일된다.
이 '바이트코드'는 자바 가상 기계(JRM)가 설치되어있다면 프로그램을 실행시킬 수 있다.
즉, 컴퓨터 CPU에 의해 직접 실행되지 않고 자바 가상 기계가 작동하고 있는 플랫폼에서 실행한다는 것이다.
간단하게 내가 생각하는 자바의 기본을 포스팅해봤다.
원론적인 부분이기 때문에 딱딱한 감이 있지만, 원래 시작은 다 그런 것 아니겠는가.
다음 포스팅에서는 자바 개발 환경인 이클립스 내에서 아주 간단한 프로그램을 만들어 볼 것이다.
'Archive > Develop' 카테고리의 다른 글
[ JAVA ] 자바 프로젝트 CMD 창에서 실행 시키기. (0) | 2020.04.10 |
---|---|
[ JAVAFx ] JavaFx 사각형 만들기 , 테트리스 블록 만들기 (0) | 2020.04.10 |
[ JAVAFx ] JavaFx 소개 및 설치 (0) | 2020.03.20 |
[ JAVA ] 002 - "Hello, world" 를 출력해보자! (0) | 2020.03.16 |
chrome 개발자 도구를 이용해 티스토리 블로그 스킨편집을 해보자! (1) | 2020.03.11 |