1. 프로그램 기초 지식
프로그램언어는 개발자 측면에서 분류할 수 있고
실행하는 주체에 따라 분류하기도한다.
개발자 측면에서의 분류는 다음과 같다.
저급언어 | 고급언어 | |
주체 | 기계 중심 | 사용자 중심, 컴파일 언어 |
호환성 | 낮음 | 높음 |
프로그래밍 | 어려움 | 비교적 쉬움 |
속도 | 번역이 불필요해 빠름 | 번역의 과정이있어 상대적으로 느림 |
언어 | 어셈블리어, 기계어 | JAVA, C, C++, C# |
실행하는 주체에 따라 분류하는건 다음과 같다.
장점 | 단점 | 종류 | |
컴파일러언어 | 한번 컴파일하면 컴파일된 프로그램을 그대로 사용할 수 있어 빠르다. | 기계어로 번역되기 때문에 큰 기억용량이 필요하다. | JAVA, C, C++, C# |
인터프리터언어 | 한 라인씩 번역, 실행하여 기억용량이 많이 필요하지 않다. | 인터프리터에 의해 번역, 실행되기 때문에 처리에 많은 시간이 소요된다. | Basic, Lisp, 포스트스크립트 |
스크립트언어 | 특정 실행 환경에서 실행되어 플랫폼에 독립적이며 프로그램이 이해하기쉽다. | 별도의 환경을 구축해야한다. | JavaScript, Python, Ruby, Perl |
그 중에서 나는 고급언어이자 컴파일러언어인 JAVA에 대해 공부하려고한다.
※참고※
컴파일러 언어 : 컴파일러를 이용해 완성된 소스를 컴파일한 후에 만들어진 소스 코드가 실제 프로그램이된다. 일반적으로 실행될 운영체제에 대한 기계언어로 번역된다.
인터프리터언어 : 컴퓨터에 존재하는 인터프리터가 소스를 한 줄씩 읽어서 바로 실행한다.
스크립트언어 : 응용프로그램의 동작을 요구에 맞게 작동되도록 하기위한 목적으로 제공되는 스크립트 파일 작성용 언어.
2. JAVA 기초 지식
JAVA는 프로그래밍언어로 다음과 같은 특징이 있다.
- - 객체 지향 언어이다.
- - 플랫폼에 독립적이다.
- - 메모리를 자동으로 관리한다.
- - 멀티스레드 구현이 쉽다.
- - 라이브러리가 풍부하다.
JAVA의 프로그래밍 과정은 다음과 같다.
JAVA Source Code -> JAVA Compiler -> Java Byte Code -> JVM에 의한 재컴파일 -> 실행
이해를 돕기위해 풀어쓰자면 다음과 같다.
- JAVA언어를 이용해 소스 코드를 작성(.java)
- jdk(Java Development Kit)이 제공하는 컴파일러(javac)를 사용해 ByteCode 형식으로 소스코드 Compile(.class)
- 컴파일된 .class 파일을 jdk가 제공하는 java 인터프리터를 사용해 실행
실행시 필요한 클래스들이 JVM에 연결되며 클래스 로더가 필요한 클래스를 동적으로 로딩(Dynamic Loading)한다.
그렇다면 JVM은 무엇인가?
JVM(Java Virtual Machine)은 JRE(Java Runtime Environment)에 포함되어 배포되며, 자바 바이트코드를 운영체제에 맞는 기계어로 번역하면서 실행해주는 주체이다.
자바프로그램을 운영체제(플랫폼)에 독립적으로 동작할 수 있도록 해주는 중요한 녀석이다.
예전엔 자바가 JVM에 의해 재번역되는 과정때문에 무거워서 느리다는 단점이 치명적이였지만,
HW성능이 매우 좋아졌고 java 개발자는 많아져서 기업들이 HW에 투자를 좀더 하고 공급이 많은 java개발자를 저렴하게 고용하는 것이 더 효율적이게 되었다...
시작이 반이란 말이있듯이 개발환경을 구성하고 프로그램을 설치하는 것이 중요하다.
내용이 너무 길어지면 가독성이 떨어지기 때문에 설치는 다음글부터 작성하도록 해야겠다.
'dev' 카테고리의 다른 글
C언어 개발툴 Dev C++ (0) | 2020.05.16 |
---|---|
C언어 sprintf (0) | 2020.04.25 |
C언어 memset bzero 비교 (0) | 2020.04.22 |
[JAVA] 로또 코딩 (0) | 2020.02.02 |
[JAVA] java 설치 및 eclipse 설치 (0) | 2019.12.29 |
댓글