코학다식
Java 시작하기 :: 자바란 무엇일까? 본문
Java 시작하기(1)
1. 자바(Java)란 무엇일까?
- general-purpose 프로그래밍 언어이다.
- 2019년 현재 가장 인기 있는 프로그래밍 언어이다.
1-1. 그렇다면, 프로그래밍 언어란 무엇일까?
- 컴퓨터에서 명령을 수행하기 위해 쓰이는 언어이다.
- 왜 필요할까?
- CPU는 기계어의 집합을 이해한다.
- 기계어는 인간이 이해하고, 사용하기에 너무 어렵다!
- 그래서 프로그래머들은 기계어로 compile 혹은 interpret되고 실행되는 프로그래밍 언어를 사용해서 응용 프로그램을 만든다.
1-2. 프로그래밍 언어에는 두 가지 종류가 있다.
- Compiled language
- 컴파일러(compiler)가 전체 프로그램을 읽고 object code(= machine code or binary code)로 변환한다.
- 실행 시간에 변역할 필요가 없으므로 실행이 빠르다.
- C, C++, Go 등
- Interpreted language
- 인터프리터(Interpreter)가 프로그램의 소스 코드를 한 번에 한 줄씩 읽고, 그 라인에 포함된 특정 명령을 수행한다.
- 코드가 실행 시간에 번역되므로 속도가 느리다.
- 런타임 동안 명령을 바꿀 수 있어 디버깅/프로토타이핑에 적합하다.
- Perl, Python 등
1-3. 그렇다면 자바는 어디에 속할까?
- 자바로 소스 코드를 쓰고 나면, 코드를 컴파일한다.
- 자바 컴파일러는 byte code를 만들어낸다.
- 이는 기계어가 아니다!
- byte code를 실행하면, Java Virtual Machine(JVM)에 의해 interpret된다.
- 빠른 프로세싱을 위해, JVM은 Just-In-Time compilation을 하고 byte code를 기계어로 번역한다.
- 그래서 프로그래머는 윈도우 환경에서 자바 프로그램을 쓰고 코드를 컴파일해도, 리눅스 환경에서 코드를 실행할 수 있다!
1-4. 자바의 특징
- 객체 지향 언어(Object-Oriented Language)이다.
- C++보다 깔끔한 문법을 가지고 있다.
- 헤더 파일, 포인터, 구조체, 유니온(Union) 등이 없다.
- Garbage Collection이 존재한다.
- garbage collector가 사용되지 않는 메모리 공간을 모아서 프로그래머는 사용되지 않은 메모리 공간을 명시적으로 확인하고 리턴할 필요가 없다.
- 네트워킹과 멀티 스레딩(multi-threading)을 잘 지원한다.
- 자바는 네트워크 프로그래밍과 멀티 스레딩 프로그래밍을 위한 많은 라이브러리를 제공한다.
1-5. JVM(Java Virtual Machine)
- 운영체제와 자바 응용 프로그램 사이에 있는 소프트웨어 층이다.
- 자바 byte code를 실행하기 위한 환경을 제공한다.
- byte code는 JVM 덕분에 플랫폼에 독립적이다.
'Programming > Java' 카테고리의 다른 글
Java 시작하기 :: OOP(3) : 인터페이스를 사용한 추상화 (1) | 2019.09.26 |
---|---|
Java 시작하기 :: OOP(2): 클래스, 변수, 메서드 (0) | 2019.09.24 |
Java 시작하기 :: OOP(1): 클래스, 변수, 메서드 (0) | 2019.09.24 |
Java 시작하기 :: 자바 프로그래밍 기초(2) (0) | 2019.09.10 |
Java 시작하기 :: 자바 프로그래밍 기초 (0) | 2019.09.08 |
Comments