자바 개요
1. 기계어
: CPU가 입력받아 해석할 수 있는 0과 1로 이루어진 명령어
2. 어셈블리어
: 인간이 읽을 수 있는 형태의 프로그래밍 언어이지만,, 여전히 Low Level programming language임
>> 두 언어는 가독성이 매우 떨어지고, 컴퓨터 구조에 대해 잘 알아야 하고, 컴퓨터 (CPU)에 따라 작성해야 하는 코드가 다르다.. 비효율적...ㅠㅡ
3. High level language
: 사람이 이해하기 좀더 편한 언어. 많은 단계에 추상화가 이뤄져서 컴퓨터 구조에 대해 알아야 할 내용이 비교적 적다.
>> 생산성이 높아짐 !!
High Level Language 자체를 CPU가 직접 실행할 수는 없다.
어느 시점에 다시 기계어로 변환되는데,,,, > 변환 시점이 언어마다 다르다 !
1) 컴파일 언어 : 실행 전에 기계어로 미리 번역됨
2) 스크립트 언어 : 실행 하면 그때그때 기계어로 번역됨
** JAVA **
- Java : 컴파일 언어
- 모토 : Write Once Run Anywhere 한 번 작성한 코드를 어떤 컴퓨터에서든 실행할 수 있도록~~~!
- 자바 언어를 컴파일 하면 ? Java Bytecode라는 특수 형태의 언어 (JVM을 위한 어셈블리어) >> JVM >> CPU가 이해할 수 있는 기계어로 번역.
> JVM을 쓰려면 JDK(Java Development Kit) 설치! : 자바 언어를 Java Bytecode로 변환하는 컴파일러 등 도구 모음집.
프로그램을 쓰기만 하는데 개발도구를 다 갖출 필요가 없다 ! > 프로그램 실행을 위한 것들만 모으자 ~~~~~~!
>> JRE (Java Runtime Environment) : JVM과 JVM이 사용할 기타 라이브러리를 포함한 자바로 작성된 프로그램의 실행 환경
** JVM, JRE, JDK의 차이를 정확히 알고 관계, 어떻게 컴퓨터에서 실행되는지에 대한 답변을 고민해보기 !
* 코드 작성 도구들
1) Code Editor : 코드를 작성하는데 도움을 주는 도구 (문법 검사, 글자 색 조정 등). 규모가 작은 어플리케이션 개발에 비교적 유리 (HTML, Python Script, Javascript)
2) IDE (Integrated Development Environment) : 단순 코드 문법 검사를 넘어, 프로젝트의 시작부터 완성까지 도움을 주는 도구를 갖춘 통합 개발 환경. 규모가 큰 어플리케이션 개발에 비교적 유리 (Spring, Django, Mobile Application 등)
>> 결국 IDE는 도우미이다. 자신이 사용하고자 하는 언어/ 프레임워크가 어떤 원리로 작동하는지 알 필요가 있다
'Programming > Java' 카테고리의 다른 글
클래스 (Class) (1) | 2023.11.28 |
---|---|
메서드 (Methods) (1) | 2023.11.23 |
제어문 (Control Statements) (1) | 2023.11.22 |
연산자 (Operators) (0) | 2023.11.21 |
변수와 자료형 (Variables and Types) (1) | 2023.11.20 |