프로그래밍 언어와 컴파일에 대해 알아보자!
참조사이트 : https://www.tiobe.com/tiobe-index/
JAVA 언어란?
[특징]
- 썬 마이크로시스템즈 사에서 제임스 고슬링 (James Gosling) 에 의해 95년 개발 (96년 JAVA로 발표)
- 기존의 주요 객체지향 언어인 C++ 의 단점 극복 -> 순수 객체지향 언어 필요
- 플랫폼 독립적인 언어
* 플랫폼 독립적 (Platform Independant) 이란?
+ 어느 플랫폼에서 개발했든 타 플랫폼에서도 동일하게 실행됨
+ 즉 플랫폼에 관계없이 실행가능하다는 의미 (플랫폼 독립)
+ 이것이 가능한 이유는 JVM (Java Virtual Machine) 덕분 (JDK 설치시 같이 실처되거나, 보통 OS에 거의 설치되어있음)
* 엔터프라이즈 환경에서 JAVA가 많이 사용되게 된 이유 중 하나
JAVA 소스코드 ----> 윈도우, 리눅스, 맥 ----> JAVA 실행파일 ----> 윈도우용 실행파일
(클래스파일) 컴파일 (Compile) (BYTE CODE) ----> 리눅스용 실행파일
(*.java) (*.class) ----> 맥용 실행파일
ex) 기존 언어(C 언어 등의 문제점)
- 컴파일 하여 빌드한 실행파일 해당 플랫폼 에서만 실행
- 심지어 C/C++ 은 플랫폼은 고사하고, 소스 차원에서도 호환되지 않는 문제
C 소스코드 ----> 윈도우에서 컴파일 ----> 윈도우용 실행파일
C 소스코드 ----> 리눅스에서 컴파일 ----> 리눅스용 실행파일
C 소스코드 ----> 맥에서 컴파일 ----> 맥용 실행파일
[장점]
- 국내에서는 특히 정부및 산업 프레임워크 표준으로 채택되었기에 자바 기반의 비중이 매우 높음
- C, C++ 에 비해 프로그래밍 상의 안정성이 높고, 배우기도 상대적으로 쉽다.
(ex: Garbage Collecting 등은 메모리 관리로 부터 프로그래머 해방)
- 읽기에 편하다. 인간의 언어에 유사.
[단점]
- 속도 문제
- 소스코드 가 타 언어에 비해 길~~~다 (타이핑이 많다..)
[종류]
1. Java SE(Java Standard Edition / J2SE)
- 대부분의 사람들이 가장 많이 접하는 표준 에디션. Java의 핵심 API와 기능들을 제공한다.
2. Jakarta EE, 구 Java EE(Java Enterprise Edition / J2EE)
- 기업에서 운영하는 서버 페이지에 특화된 에디션이다.
- JSP와 서블릿을 비롯한 웹 애플리케이션 서버에 관련된 기술들이 포함되어 있다.
3. Java ME(Java Micro Edition / J2ME)
- PDA나 셋톱박스, 센서 등의 임베디드 시스템 환경에 특화된 에디션이다.
4. JavaFX데스크톱
- 애플리케이션 개발 및 배포를 위한 에디션으로, 크로스플랫폼 이식과 GUI 라이브러리를 제공한다.
사람이 이해하고 만들 수 있는 언어 -----------------------> 컴퓨터가 이해하고 실행할 수 있는 언어
Programming Language Complier(or Interpreter) binary code
커맨드 라인에서 아래와 같이 확인 가능
- java ← 자바 실행 파일 / *.class 파일을 실행
- javac ← 자바 컴파일러 / *.java 파일을 컴파일
클래스파일 바이트코드(Byte Code)
(프로그램 소스) ----------> JVM에서 실행가능한 결과물
*.java 컴파일 *.class
그래서 등장한것이 바로 ‘통합 개발 환경 IDE: Integrated Development Environment’
다음에는 JAVA 통합 개발 환경인 'Eclipse'에 대해 더 공부!